Exemplo n.º 1
0
def _test_check(elastic_check, instance, aggregator, cluster_tags, node_tags):
    config = from_instance(instance)
    es_version = elastic_check._get_es_version()

    # node stats, blacklist metrics that can't be tested in a small, single node instance
    blacklist = [
        'elasticsearch.indices.segments.index_writer_max_memory_in_bytes'
    ]
    blacklist.extend(ADDITIONAL_METRICS_1_x)
    for m_name in stats_for_version(es_version):
        if m_name in blacklist:
            continue
        aggregator.assert_metric(m_name, at_least=1, tags=node_tags)

    # cluster stats
    expected_metrics = health_stats_for_version(es_version)
    expected_metrics.update(CLUSTER_PENDING_TASKS)
    for m_name in expected_metrics:
        aggregator.assert_metric(m_name, at_least=1, tags=cluster_tags)

    aggregator.assert_service_check('elasticsearch.can_connect',
                                    status=ESCheck.OK,
                                    tags=config.service_check_tags)

    # Assert service metadata
    # self.assertServiceMetadata(['version'], count=3)
    # FIXME: 0.90.13 returns randomly a red status instead of yellow,
    # so we don't do a coverage test for it
    # Remove me when we stop supporting 0.90.x (not supported anymore by ES)
    if es_version != [0, 90, 13]:
        # Warning because elasticsearch status should be yellow, according to
        # http://chrissimpson.co.uk/elasticsearch-yellow-cluster-status-explained.html
        aggregator.assert_service_check('elasticsearch.cluster_health')
Exemplo n.º 2
0
def test_disable_cluster_tag(dd_environment, instance, aggregator, new_cluster_tags):
    disable_instance = deepcopy(instance)
    disable_instance['disable_legacy_cluster_tag'] = True
    elastic_check = ESCheck('elastic', {}, instances=[disable_instance])
    elastic_check.check(None)
    es_version = elastic_check._get_es_version()

    # cluster stats
    expected_metrics = health_stats_for_version(es_version)
    expected_metrics.update(CLUSTER_PENDING_TASKS)
    for m_name in expected_metrics:
        aggregator.assert_metric(m_name, at_least=1, tags=new_cluster_tags)
Exemplo n.º 3
0
def test_health_stats_for_version():
    # v0.90
    metrics = health_stats_for_version([0, 90, 0])
    assert len(metrics) == 8

    # v0.90.5
    metrics = health_stats_for_version([0, 90, 5])
    assert len(metrics) == 8

    # v0.90.10
    metrics = health_stats_for_version([0, 90, 10])
    assert len(metrics) == 8

    # v1
    metrics = health_stats_for_version([1, 0, 0])
    assert len(metrics) == 8

    # v1.3.0
    metrics = health_stats_for_version([1, 3, 0])
    assert len(metrics) == 8

    # v1.4.0
    metrics = health_stats_for_version([1, 4, 0])
    assert len(metrics) == 8

    # v1.5.0
    metrics = health_stats_for_version([1, 5, 0])
    assert len(metrics) == 8

    # v1.6.0
    metrics = health_stats_for_version([1, 6, 0])
    assert len(metrics) == 8

    # v2
    metrics = health_stats_for_version([2, 0, 0])
    assert len(metrics) == 8

    # v2.1.0
    metrics = health_stats_for_version([2, 1, 0])
    assert len(metrics) == 8

    # v5
    metrics = health_stats_for_version([5, 0, 0])
    assert len(metrics) == 9

    # v6.3.0
    metrics = health_stats_for_version([6, 3, 0])
    assert len(metrics) == 9
Exemplo n.º 4
0
def test_health_stats_for_version(version, expected_metric_count):
    metrics = health_stats_for_version(version)
    assert len(metrics) == expected_metric_count