def test_linkerd(aggregator, linkerd_fixture): """ Test the full check """ c = LinkerdCheck('linkerd', None, {}, [MOCK_INSTANCE]) c.check(MOCK_INSTANCE) for metric in LINKERD_FIXTURE_VALUES: aggregator.assert_metric(metric, LINKERD_FIXTURE_VALUES[metric])
def test_linkerd_v2(aggregator): check = LinkerdCheck('linkerd', {}, [MOCK_INSTANCE]) with requests_mock.Mocker() as metric_request: metric_request.get('http://fake.tld/prometheus', text=get_response('linkerd_v2.txt')) check.check(MOCK_INSTANCE) for metric_name, metric_type in EXPECTED_METRICS_V2.items(): aggregator.assert_metric(metric_name, metric_type=metric_type) aggregator.assert_all_metrics_covered() aggregator.assert_service_check( 'linkerd.prometheus.health', status=LinkerdCheck.OK, tags=['endpoint:http://fake.tld/prometheus'], count=1 )
def test_linkerd(aggregator): """ Test the full check """ check = LinkerdCheck('linkerd', {}, [MOCK_INSTANCE]) with requests_mock.Mocker() as metric_request: metric_request.get('http://fake.tld/prometheus', text=get_response('linkerd.txt')) check.check(MOCK_INSTANCE) for metric in LINKERD_FIXTURE_VALUES: aggregator.assert_metric(metric, LINKERD_FIXTURE_VALUES[metric]) aggregator.assert_metric('linkerd.prometheus.health', metric_type=aggregator.GAUGE) aggregator.assert_all_metrics_covered() aggregator.assert_service_check( 'linkerd.prometheus.health', status=check.OK, tags=['endpoint:http://fake.tld/prometheus'], count=1 )
def test_linkerd_v2_new(aggregator, dd_run_check, mock_http_response): mock_http_response(file_path=get_fixture_path('linkerd_v2.txt')) check = LinkerdCheck('linkerd', {}, [MOCK_INSTANCE_NEW]) dd_run_check(check) for metric_name, metric_type in EXPECTED_METRICS_V2_NEW.items(): aggregator.assert_metric(metric_name, metric_type=metric_type) aggregator.assert_all_metrics_covered() aggregator.assert_service_check( 'linkerd.prometheus.health', status=LinkerdCheck.OK, tags=['endpoint:http://fake.tld/prometheus'], count=1 )
def test_openmetrics_error(monkeypatch): check = LinkerdCheck('linkerd', None, {}, [MOCK_INSTANCE]) with requests_mock.Mocker() as metric_request: metric_request.get('http://fake.tld/prometheus', exc="Exception") with pytest.raises(Exception): check.check(MOCK_INSTANCE)
def test_linkerd_v2(aggregator): check = LinkerdCheck('linkerd', None, {}, [MOCK_INSTANCE]) with requests_mock.Mocker() as metric_request: metric_request.get('http://fake.tld/prometheus', text=get_response('linkerd_v2.txt')) check.check(MOCK_INSTANCE) aggregator.assert_metric('linkerd.request_total', metric_type=aggregator.MONOTONIC_COUNT) aggregator.assert_metric('linkerd.response_total', metric_type=aggregator.MONOTONIC_COUNT) aggregator.assert_metric('linkerd.response_latency.count', metric_type=aggregator.GAUGE) aggregator.assert_metric('linkerd.response_latency.sum', metric_type=aggregator.GAUGE) aggregator.assert_metric('linkerd.route.request_total', metric_type=aggregator.MONOTONIC_COUNT) aggregator.assert_metric('linkerd.route.response_latency.count', metric_type=aggregator.GAUGE) aggregator.assert_metric('linkerd.route.response_latency.sum', metric_type=aggregator.GAUGE) aggregator.assert_metric('linkerd.route.response_total', metric_type=aggregator.MONOTONIC_COUNT) aggregator.assert_metric('linkerd.route.actual_request_total', metric_type=aggregator.MONOTONIC_COUNT) aggregator.assert_metric('linkerd.route.actual_response_latency.count', metric_type=aggregator.GAUGE) aggregator.assert_metric('linkerd.route.actual_response_latency.sum', metric_type=aggregator.GAUGE) aggregator.assert_metric('linkerd.route.actual_response_total', metric_type=aggregator.MONOTONIC_COUNT) aggregator.assert_metric('linkerd.tcp.open_total', metric_type=aggregator.MONOTONIC_COUNT) aggregator.assert_metric('linkerd.tcp.open_connections', metric_type=aggregator.GAUGE) aggregator.assert_metric('linkerd.tcp.read_bytes_total', metric_type=aggregator.MONOTONIC_COUNT) aggregator.assert_metric('linkerd.tcp.write_bytes_total', metric_type=aggregator.MONOTONIC_COUNT) aggregator.assert_metric('linkerd.tcp.close_total', metric_type=aggregator.MONOTONIC_COUNT) aggregator.assert_metric('linkerd.tcp.connection_duration.count', metric_type=aggregator.GAUGE) aggregator.assert_metric('linkerd.tcp.connection_duration.sum', metric_type=aggregator.GAUGE) aggregator.assert_metric('linkerd.control.request_total', metric_type=aggregator.MONOTONIC_COUNT) aggregator.assert_metric('linkerd.control.response_latency.count', metric_type=aggregator.GAUGE) aggregator.assert_metric('linkerd.control.response_latency.sum', metric_type=aggregator.GAUGE) aggregator.assert_metric('linkerd.control.response_total', metric_type=aggregator.MONOTONIC_COUNT) aggregator.assert_metric('linkerd.process.start_time', metric_type=aggregator.GAUGE) aggregator.assert_metric('linkerd.process.cpu_seconds_total', metric_type=aggregator.MONOTONIC_COUNT) aggregator.assert_metric('linkerd.process.open_fds', metric_type=aggregator.GAUGE) aggregator.assert_metric('linkerd.process.max_fds', metric_type=aggregator.GAUGE) aggregator.assert_metric('linkerd.process.virtual_memory', metric_type=aggregator.GAUGE) aggregator.assert_metric('linkerd.process.resident_memory', metric_type=aggregator.GAUGE) aggregator.assert_metric('linkerd.prometheus.health', metric_type=aggregator.GAUGE) aggregator.assert_all_metrics_covered() aggregator.assert_service_check( 'linkerd.prometheus.health', status=check.OK, tags=['endpoint:http://fake.tld/prometheus'], count=1)