コード例 #1
0
def test_get_kube_container_name():
    tags = CadvisorPrometheusScraperMixin._get_kube_container_name(
        {
            "container": "datadog-agent",
            "id": "/kubepods/burstable/"
            "podc2319815-10d0-11e8-bd5a-42010af00137/"
            "a335589109ce5506aa69ba7481fc3e6c943abd23c5277016c92dac15d0f40479",
            "image": "datadog/agent-dev@sha256:894fb66f89be0332a47388d7219ab8b365520ff0e3bbf597bd0a378b19efa7ee",
            "name": "k8s_datadog-agent_datadog-agent-jbm2k_default_c2319815-10d0-11e8-bd5a-42010af00137_0",
            "namespace": "default",
            "pod": "datadog-agent-jbm2k",
        }
    )
    assert tags == ["kube_container_name:datadog-agent"]

    # k8s < 1.16
    tags = CadvisorPrometheusScraperMixin._get_kube_container_name(
        {
            "container_name": "datadog-agent",
            "id": "/kubepods/burstable/"
            "podc2319815-10d0-11e8-bd5a-42010af00137/"
            "a335589109ce5506aa69ba7481fc3e6c943abd23c5277016c92dac15d0f40479",
            "image": "datadog/agent-dev@sha256:894fb66f89be0332a47388d7219ab8b365520ff0e3bbf597bd0a378b19efa7ee",
            "name": "k8s_datadog-agent_datadog-agent-jbm2k_default_c2319815-10d0-11e8-bd5a-42010af00137_0",
            "namespace": "default",
            "pod_name": "datadog-agent-jbm2k",
        }
    )
    assert tags == ["kube_container_name:datadog-agent"]

    tags = CadvisorPrometheusScraperMixin._get_kube_container_name([])
    assert tags == []
コード例 #2
0
def test_is_container_metric():
    false_metrics = [
        MockMetric('foo', []),
        MockMetric(
            'bar',
            {
                'container_name': 'POD',
                'namespace': 'default',
                'pod_name': 'pod0',
                'name': 'foo',
                'image': 'foo',
                'id': 'deadbeef',
            },
        ),
        MockMetric(
            'baz',
            {
                'container': 'POD',
                'namespace': 'default',
                'pod': 'pod0',
                'name': 'foo',
                'image': 'foo',
                'id': 'deadbeef',
            },
        ),
        MockMetric(  # missing container_name
            'foobar', {'namespace': 'default', 'pod_name': 'pod0', 'name': 'foo', 'image': 'foo', 'id': 'deadbeef'}
        ),
    ]
    for metric in false_metrics:
        assert CadvisorPrometheusScraperMixin._is_container_metric(
            metric.label) is False

    true_metrics = [
        MockMetric(
            'foo',
            {
                'container_name': 'ctr0',
                'namespace': 'default',
                'pod_name': 'pod0',
                'name': 'foo',
                'image': 'foo',
                'id': 'deadbeef',
            },
        ),
        MockMetric(
            'bar',
            {
                'container': 'ctr0',
                'namespace': 'default',
                'pod': 'pod0',
                'name': 'foo',
                'image': 'foo',
                'id': 'deadbeef',
            },
        ),
    ]
    for metric in true_metrics:
        assert CadvisorPrometheusScraperMixin._is_container_metric(
            metric.label) is True
コード例 #3
0
def test_is_pod_metric():
    false_metrics = [
        MockMetric('foo', {}),
        MockMetric('bar', {'container_name': 'ctr0'}),
        MockMetric('foobar', {
            'container_name': 'ctr0',
            'id': 'deadbeef'
        }),
    ]

    true_metrics = [
        MockMetric('foo', {'container_name': 'POD'}),
        MockMetric('bar', {
            'id':
            '/kubepods/burstable/pod531c80d9-9fc4-11e7-ba8b-42010af002bb'
        }),
        MockMetric(
            'foobar', {
                'container_name': 'POD',
                'id':
                '/kubepods/burstable/pod531c80d9-9fc4-11e7-ba8b-42010af002bb'
            }),
    ]

    for metric in false_metrics:
        assert CadvisorPrometheusScraperMixin._is_pod_metric(
            metric.label) is False

    for metric in true_metrics:
        assert CadvisorPrometheusScraperMixin._is_pod_metric(
            metric.label) is True
コード例 #4
0
def test_get_container_label():
    labels = {
        "container_name": "POD",
        "id": "/kubepods/burstable/pod531c80d9-9fc4-11e7-ba8b-42010af002bb"
    }
    assert CadvisorPrometheusScraperMixin._get_container_label(
        labels, "container_name") == "POD"
    assert CadvisorPrometheusScraperMixin._get_container_label(
        {}, "not-in") is None