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')
def test_stats_for_version(): # v0.90 metrics = stats_for_version([0, 90, 0]) assert len(metrics) == 133 # v0.90.5 metrics = stats_for_version([0, 90, 5]) assert len(metrics) == 134 # v0.90.10 metrics = stats_for_version([0, 90, 10]) assert len(metrics) == 132 # v1 metrics = stats_for_version([1, 0, 0]) assert len(metrics) == 140 # v1.3.0 metrics = stats_for_version([1, 3, 0]) assert len(metrics) == 142 # v1.4.0 metrics = stats_for_version([1, 4, 0]) assert len(metrics) == 162 # v1.5.0 metrics = stats_for_version([1, 5, 0]) assert len(metrics) == 165 # v1.6.0 metrics = stats_for_version([1, 6, 0]) assert len(metrics) == 173 # v2 metrics = stats_for_version([2, 0, 0]) assert len(metrics) == 172 # v2.1.0 metrics = stats_for_version([2, 1, 0]) assert len(metrics) == 177 # v5 metrics = stats_for_version([5, 0, 0]) assert len(metrics) == 180 # v6.3.0 metrics = stats_for_version([6, 3, 0]) assert len(metrics) == 180 # v7.2.0 metrics = stats_for_version([7, 2, 0]) assert len(metrics) == 177
def test_stats_for_version(version, jvm_rate, expected_metric_count): metrics = stats_for_version(version, jvm_rate) assert len(metrics) == expected_metric_count
def test_stats_for_version(): # v0.90 metrics = stats_for_version([0, 90, 0]) assert len(metrics) == 123 # v0.90.5 metrics = stats_for_version([0, 90, 5]) assert len(metrics) == 124 # v0.90.10 metrics = stats_for_version([0, 90, 10]) assert len(metrics) == 122 # v1 metrics = stats_for_version([1, 0, 0]) assert len(metrics) == 130 # v1.3.0 metrics = stats_for_version([1, 3, 0]) assert len(metrics) == 132 # v1.4.0 metrics = stats_for_version([1, 4, 0]) assert len(metrics) == 152 # v1.5.0 metrics = stats_for_version([1, 5, 0]) assert len(metrics) == 155 # v1.6.0 metrics = stats_for_version([1, 6, 0]) assert len(metrics) == 163 # v2 metrics = stats_for_version([2, 0, 0]) assert len(metrics) == 162 # v2.1.0 metrics = stats_for_version([2, 1, 0]) assert len(metrics) == 167 # v5 metrics = stats_for_version([5, 0, 0]) assert len(metrics) == 167 # v6.3.0 metrics = stats_for_version([6, 3, 0]) assert len(metrics) == 167