예제 #1
0
def test_retry_invalid_metric():
    with pytest.raises(UnknownMetric):
        parse_metric(
            "cluster.ms-catalog-category-appli.default.eu-west-3-stg.internal"
            ".ba3374ca-fb2a-3f3e-9ea6-79e021188673.consul.http2.dropped_headers_with_underscores",
            retry=True,
        )
예제 #2
0
    def test_runtime(self):
        metric = 'runtime.num_keys'
        tags = [tag for tags in METRICS[metric]['tags'] for tag in tags]

        assert parse_metric(metric) == (
            METRIC_PREFIX + metric,
            list(tags),
            METRICS[metric]['method']
        )
예제 #3
0
    def test_http2(self):
        metric = 'http2.rx_reset'
        tags = [tag for tags in METRICS[metric]['tags'] for tag in tags]

        assert parse_metric(metric) == (
            METRIC_PREFIX + metric,
            list(tags),
            METRICS[metric]['method']
        )
예제 #4
0
    def test_cluster_manager(self):
        metric = 'cluster_manager.cluster_added'
        tags = [tag for tags in METRICS[metric]['tags'] for tag in tags]

        assert parse_metric(metric) == (
            METRIC_PREFIX + metric,
            list(tags),
            METRICS[metric]['method']
        )
예제 #5
0
    def test_redis_splitter(self):
        metric = 'redis{}.splitter.invalid_request'
        untagged_metric = metric.format('')
        tags = METRICS[untagged_metric]['tags']
        tag0 = 'some_stat_prefix'
        tagged_metric = metric.format('.{}'.format(tag0))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric, ['{}:{}'.format(tags[0], tag0)],
            METRICS[untagged_metric]['method'])
예제 #6
0
    def test_redis(self):
        metric = 'redis{}.downstream_rq_total'
        untagged_metric = metric.format('')
        tags = METRICS[untagged_metric]['tags']
        tag0 = 'some_stat_prefix'
        tagged_metric = metric.format('.{}'.format(tag0))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric, ['{}:{}'.format(tags[0], tag0)],
            METRICS[untagged_metric]['method'])
예제 #7
0
    def test_network_rate_limit(self):
        metric = 'ratelimit{}.total'
        untagged_metric = metric.format('')
        tags = METRICS[untagged_metric]['tags']
        tag0 = 'some_stat_prefix'
        tagged_metric = metric.format('.{}'.format(tag0))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric, ['{}:{}'.format(tags[0], tag0)],
            METRICS[untagged_metric]['method'])
예제 #8
0
    def test_tls(self):
        metric = 'auth.clientssl{}.update_success'
        untagged_metric = metric.format('')
        tags = METRICS[untagged_metric]['tags']
        tag0 = 'some_stat_prefix'
        tagged_metric = metric.format('.{}'.format(tag0))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric, ['{}:{}'.format(tags[0], tag0)],
            METRICS[untagged_metric]['method'])
예제 #9
0
    def test_mongo(self):
        metric = 'mongo{}.op_insert'
        untagged_metric = metric.format('')
        tags = METRICS[untagged_metric]['tags']
        tag0 = 'some_stat_prefix'
        tagged_metric = metric.format('.{}'.format(tag0))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric, ['{}:{}'.format(tags[0], tag0)],
            METRICS[untagged_metric]['method'])
예제 #10
0
    def test_http_router_filter(self):
        metric = 'http{}.rq_total'
        untagged_metric = metric.format('')
        tags = METRICS[untagged_metric]['tags']
        tag0 = 'some_stat_prefix'
        tagged_metric = metric.format('.{}'.format(tag0))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric, ['{}:{}'.format(tags[0], tag0)],
            METRICS[untagged_metric]['method'])
예제 #11
0
    def test_cluster_load_balancer_subsets(self):
        metric = 'cluster{}.lb_subsets_active'
        untagged_metric = metric.format('')
        tags = METRICS[untagged_metric]['tags']
        tag0 = 'some_name'
        tagged_metric = metric.format('.{}'.format(tag0))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric, ['{}:{}'.format(tags[0], tag0)],
            METRICS[untagged_metric]['method'])
예제 #12
0
    def test_http_rate_limit(self):
        metric = 'cluster{}.ratelimit.ok'
        untagged_metric = metric.format('')
        tags = METRICS[untagged_metric]['tags']
        tag0 = 'some_route_target_cluster'
        tagged_metric = metric.format('.{}'.format(tag0))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric, ['{}:{}'.format(tags[0], tag0)],
            METRICS[untagged_metric]['method'])
예제 #13
0
def test_cluster():
    metric = 'cluster{}.upstream_cx_total'
    untagged_metric = metric.format('')
    tags = [tag for tags in METRICS[untagged_metric]['tags'] for tag in tags]
    tag0 = 'some_name'
    tagged_metric = metric.format('.{}'.format(tag0))

    assert parse_metric(tagged_metric, disable_legacy_cluster_tag=True) == (
        METRIC_PREFIX + untagged_metric,
        ['{}:{}'.format(tags[0], tag0)],
        METRICS[untagged_metric]['method'],
    )

    # Legacy tag
    assert parse_metric(tagged_metric) == (
        METRIC_PREFIX + untagged_metric,
        ['{}:{}'.format(tags[0], tag0), 'cluster_name:{}'.format(tag0)],
        METRICS[untagged_metric]['method'],
    )
예제 #14
0
    def test_cluster_dynamic_http(self):
        metric = 'cluster{}.upstream_rq_time'
        untagged_metric = metric.format('')
        tags = METRICS[untagged_metric]['tags']
        tag0 = 'some_name'
        tagged_metric = metric.format('.{}'.format(tag0))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric, ['{}:{}'.format(tags[0], tag0)],
            METRICS[untagged_metric]['method'])
예제 #15
0
    def test_cluster_outlier_detection(self):
        metric = 'cluster{}.outlier_detection.ejections_enforced_total'
        untagged_metric = metric.format('')
        tags = METRICS[untagged_metric]['tags']
        tag0 = 'some_name'
        tagged_metric = metric.format('.{}'.format(tag0))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric, ['{}:{}'.format(tags[0], tag0)],
            METRICS[untagged_metric]['method'])
예제 #16
0
    def test_cluster_health_check(self):
        metric = 'cluster{}.health_check.healthy'
        untagged_metric = metric.format('')
        tags = METRICS[untagged_metric]['tags']
        tag0 = 'some_name'
        tagged_metric = metric.format('.{}'.format(tag0))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric, ['{}:{}'.format(tags[0], tag0)],
            METRICS[untagged_metric]['method'])
예제 #17
0
def test_retry_metric():
    metric = "cluster{}.upstream_cx_total"
    untagged_metric = metric.format('')
    tags = [tag for tags in METRICS[untagged_metric]['tags'] for tag in tags]
    tag0 = 'service-foo.default.eu-west-3-prd.internal.a4d363d6-a669-b02c-a274-52c1df12bd41.consul'
    tagged_metric = metric.format('.{}'.format(tag0))
    assert parse_metric(tagged_metric, retry=True) == (
        METRIC_PREFIX + untagged_metric,
        ['{}:{}'.format(tags[0], tag0)],
        METRICS[untagged_metric]['method'],
    )
예제 #18
0
    def test_http_buffer_filter(self):
        metric = 'http{}.buffer.rq_timeout'
        untagged_metric = metric.format('')
        tags = [tag for tags in METRICS[untagged_metric]['tags'] for tag in tags]
        tag0 = 'some_stat_prefix'
        tagged_metric = metric.format('.{}'.format(tag0))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric,
            ['{}:{}'.format(tags[0], tag0)],
            METRICS[untagged_metric]['method'],
        )
예제 #19
0
def test_cluster_health_check():
    metric = 'cluster{}.health_check.healthy'
    untagged_metric = metric.format('')
    tags = [tag for tags in METRICS[untagged_metric]['tags'] for tag in tags]
    tag0 = 'some_name'
    tagged_metric = metric.format('.{}'.format(tag0))

    assert parse_metric(tagged_metric, disable_legacy_cluster_tag=True) == (
        METRIC_PREFIX + untagged_metric,
        ['{}:{}'.format(tags[0], tag0)],
        METRICS[untagged_metric]['method'],
    )
예제 #20
0
def test_cluster_outlier_detection():
    metric = 'cluster{}.outlier_detection.ejections_enforced_total'
    untagged_metric = metric.format('')
    tags = [tag for tags in METRICS[untagged_metric]['tags'] for tag in tags]
    tag0 = 'some_name'
    tagged_metric = metric.format('.{}'.format(tag0))

    assert parse_metric(tagged_metric, disable_legacy_cluster_tag=True) == (
        METRIC_PREFIX + untagged_metric,
        ['{}:{}'.format(tags[0], tag0)],
        METRICS[untagged_metric]['method'],
    )
예제 #21
0
def test_cluster_load_balancer_subsets():
    metric = 'cluster{}.lb_subsets_active'
    untagged_metric = metric.format('')
    tags = [tag for tags in METRICS[untagged_metric]['tags'] for tag in tags]
    tag0 = 'some_name'
    tagged_metric = metric.format('.{}'.format(tag0))

    assert parse_metric(tagged_metric, disable_legacy_cluster_tag=True) == (
        METRIC_PREFIX + untagged_metric,
        ['{}:{}'.format(tags[0], tag0)],
        METRICS[untagged_metric]['method'],
    )
예제 #22
0
    def test_http(self):
        metric = 'http{}.downstream_cx_total'
        untagged_metric = metric.format('')
        tags = [tag for tags in METRICS[untagged_metric]['tags'] for tag in tags]
        tag0 = 'some_stat_prefix'
        tagged_metric = metric.format('.{}'.format(tag0))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric,
            ['{}:{}'.format(tags[0], tag0)],
            METRICS[untagged_metric]['method'],
        )
예제 #23
0
def test_http_rate_limit():
    metric = 'cluster{}.ratelimit.ok'
    untagged_metric = metric.format('')
    tags = [tag for tags in METRICS[untagged_metric]['tags'] for tag in tags]
    tag0 = 'some_route_target_cluster'
    tagged_metric = metric.format('.{}'.format(tag0))

    assert parse_metric(tagged_metric, disable_legacy_cluster_tag=True) == (
        METRIC_PREFIX + untagged_metric,
        ['{}:{}'.format(tags[0], tag0)],
        METRICS[untagged_metric]['method'],
    )
예제 #24
0
    def test_tag_with_dots(self):
        metric = 'cluster{}.lb_healthy_panic'
        untagged_metric = metric.format('')
        tags = [tag for tags in METRICS[untagged_metric]['tags'] for tag in tags]
        tag0 = 'out.alerting-event-evaluator-test.datadog.svc.cluster.local|iperf'
        tagged_metric = metric.format('.{}'.format(tag0))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric,
            ['{}:{}'.format(tags[0], tag0)],
            METRICS[untagged_metric]['method'],
        )
예제 #25
0
    def test_cluster_load_balancer(self):
        metric = 'cluster{}.lb_healthy_panic'
        untagged_metric = metric.format('')
        tags = [tag for tags in METRICS[untagged_metric]['tags'] for tag in tags]
        tag0 = 'some_name'
        tagged_metric = metric.format('.{}'.format(tag0))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric,
            ['{}:{}'.format(tags[0], tag0)],
            METRICS[untagged_metric]['method'],
        )
예제 #26
0
    def test_cluster(self):
        metric = 'cluster{}.upstream_cx_total'
        untagged_metric = metric.format('')
        tags = [tag for tags in METRICS[untagged_metric]['tags'] for tag in tags]
        tag0 = 'some_name'
        tagged_metric = metric.format('.{}'.format(tag0))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric,
            ['{}:{}'.format(tags[0], tag0)],
            METRICS[untagged_metric]['method'],
        )
예제 #27
0
    def test_dynamodb_operation(self):
        metric = 'http{}.dynamodb.operation{}.upstream_rq_total'
        untagged_metric = metric.format('', '')
        tags = [tag for tags in METRICS[untagged_metric]['tags'] for tag in tags]
        tag0 = 'some_stat_prefix'
        tag1 = 'some_operation_name'
        tagged_metric = metric.format('.{}'.format(tag0), '.{}'.format(tag1))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric,
            ['{}:{}'.format(tags[0], tag0), '{}:{}'.format(tags[1], tag1)],
            METRICS[untagged_metric]['method'],
        )
예제 #28
0
    def test_ip_tagging(self):
        metric = 'http{}.ip_tagging{}.hit'
        untagged_metric = metric.format('', '')
        tags = [tag for tags in METRICS[untagged_metric]['tags'] for tag in tags]
        tag0 = 'some_stat_prefix'
        tag1 = 'some_tag_name'
        tagged_metric = metric.format('.{}'.format(tag0), '.{}'.format(tag1))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric,
            ['{}:{}'.format(tags[0], tag0), '{}:{}'.format(tags[1], tag1)],
            METRICS[untagged_metric]['method'],
        )
예제 #29
0
    def test_http_router_filter_vhost(self):
        metric = 'vhost{}.vcluster{}.upstream_rq_time'
        untagged_metric = metric.format('', '')
        tags = [tag for tags in METRICS[untagged_metric]['tags'] for tag in tags]
        tag0 = 'some_vhost_name'
        tag1 = 'some_vcluster_name'
        tagged_metric = metric.format('.{}'.format(tag0), '.{}'.format(tag1))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric,
            ['{}:{}'.format(tags[0], tag0), '{}:{}'.format(tags[1], tag1)],
            METRICS[untagged_metric]['method'],
        )
예제 #30
0
    def test_http_listener(self):
        metric = 'listener{}.http{}.downstream_rq_2xx'
        untagged_metric = metric.format('', '')
        tags = [tag for tags in METRICS[untagged_metric]['tags'] for tag in tags]
        tag0 = '0.0.0.0_80'
        tag1 = 'some_stat_prefix'
        tagged_metric = metric.format('.{}'.format(tag0), '.{}'.format(tag1))

        assert parse_metric(tagged_metric) == (
            METRIC_PREFIX + untagged_metric,
            ['{}:{}'.format(tags[0], tag0), '{}:{}'.format(tags[1], tag1)],
            METRICS[untagged_metric]['method'],
        )