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 == []
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
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
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