def tagger(): from datadog_checks.base.stubs import tagger tagger.reset() # We filter out slices unknown by the tagger, mock a non-empty taglist tagger.set_default_tags(["foo:bar"]) return tagger
def test_process_stats_summary_not_source_linux(monkeypatch, aggregator, tagger): check = KubeletCheck('kubelet', {}, [{}]) pod_list_utils = PodListUtils(json.loads(mock_from_file('pods.json'))) stats = json.loads(mock_from_file('stats_summary.json')) tagger.reset() tagger.set_tags(COMMON_TAGS) tags = ["instance:tag"] check.process_stats_summary(pod_list_utils, stats, tags, False) # As we did not activate `use_stats_summary_as_source`, # we only have ephemeral storage metrics and kubelet stats aggregator.assert_metric('kubernetes.ephemeral_storage.usage', 69406720.0, ['instance:tag', 'pod_name:dd-agent-ntepl']) aggregator.assert_metric( 'kubernetes.ephemeral_storage.usage', 49152.0, ['instance:tag', 'pod_name:demo-app-success-c485bc67b-klj45']) aggregator.assert_metric('kubernetes.runtime.cpu.usage', 19442853.0, ['instance:tag']) aggregator.assert_metric('kubernetes.kubelet.cpu.usage', 36755862.0, ['instance:tag']) aggregator.assert_metric('kubernetes.runtime.memory.rss', 101273600.0, ['instance:tag']) aggregator.assert_metric('kubernetes.kubelet.memory.rss', 88477696.0, ['instance:tag'])
def test_no_tags_no_metrics(monkeypatch, aggregator, tagger): # Reset tagger without tags tagger.reset() tagger.set_tags({}) check = mock_kubelet_check(monkeypatch, [{}]) check.check({ "cadvisor_metrics_endpoint": "http://dummy/metrics/cadvisor", "kubelet_metrics_endpoint": "" }) # Test that we get only the node related metrics (no calls to the tagger for these ones) aggregator.assert_metric('kubernetes.memory.capacity') aggregator.assert_metric('kubernetes.cpu.capacity') aggregator.assert_all_metrics_covered()
def test_process_stats_summary_not_source_windows(monkeypatch, aggregator, tagger): check = KubeletCheck('kubelet', {}, [{}]) pod_list_utils = PodListUtils(json.loads(mock_from_file('pods_windows.json'))) stats = json.loads(mock_from_file('stats_summary_windows.json')) tagger.reset() tagger.set_tags(WINDOWS_TAGS) tags = ["instance:tag"] check.process_stats_summary(pod_list_utils, stats, tags, False) # As we did not activate `use_stats_summary_as_source`, we only have ephemeral storage metrics # Kubelet stats not present as they are not returned on Windows aggregator.assert_metric( 'kubernetes.ephemeral_storage.usage', 919980.0, tags + ['kube_namespace:default', 'pod_name:dd-datadog-lbvkl'] )
def test_static_pods(monkeypatch, aggregator, tagger): tagger.reset() tagger.set_tags( { "kubernetes_pod_uid://260c2b1d43b094af6d6b4ccba082c2db": [ 'pod_name:kube-proxy-gke-haissam-default-pool-be5066f1-wnvn' ] } ) check = mock_kubelet_check(monkeypatch, [{}]) check.check({"cadvisor_metrics_endpoint": "http://dummy/metrics/cadvisor", "kubelet_metrics_endpoint": ""}) # Test that we get metrics for this static pod aggregator.assert_metric( 'kubernetes.cpu.user.total', 109.76, ['kube_container_name:kube-proxy', 'pod_name:kube-proxy-gke-haissam-default-pool-be5066f1-wnvn'], )
def tagger(): from datadog_checks.base.stubs import tagger tagger.reset() tagger.set_tags(COMMON_TAGS) return tagger
def test_process_stats_summary_as_source(monkeypatch, aggregator, tagger): check = KubeletCheck('kubelet', {}, [{}]) pod_list_utils = PodListUtils( json.loads(mock_from_file('pods_windows.json'))) stats = json.loads(mock_from_file('stats_summary_windows.json')) tagger.reset() tagger.set_tags(WINDOWS_TAGS) tags = ["instance:tag"] check.process_stats_summary(pod_list_utils, stats, tags, True) aggregator.assert_metric( 'kubernetes.ephemeral_storage.usage', 919980.0, tags + ['kube_namespace:default', 'pod_name:dd-datadog-lbvkl']) aggregator.assert_metric( 'kubernetes.network.tx_bytes', 163670.0, tags + ['kube_namespace:default', 'pod_name:dd-datadog-lbvkl']) aggregator.assert_metric( 'kubernetes.network.rx_bytes', 694636.0, tags + ['kube_namespace:default', 'pod_name:dd-datadog-lbvkl']) aggregator.assert_metric( 'kubernetes.network.tx_bytes', 258157.0, tags + [ 'kube_namespace:default', 'pod_name:windows-server-iis-6c68545d57-gwtn9' ], ) aggregator.assert_metric( 'kubernetes.network.rx_bytes', 509185.0, tags + [ 'kube_namespace:default', 'pod_name:windows-server-iis-6c68545d57-gwtn9' ], ) aggregator.assert_metric( 'kubernetes.cpu.usage.total', 13796875000.0, tags + [ 'kube_container_name:agent', 'kube_namespace:default', 'pod_name:dd-datadog-lbvkl' ], ) aggregator.assert_metric( 'kubernetes.cpu.usage.total', 9359375000.0, tags + [ 'kube_container_name:process-agent', 'kube_namespace:default', 'pod_name:dd-datadog-lbvkl' ], ) aggregator.assert_metric( 'kubernetes.cpu.usage.total', 70140625000.0, tags + [ 'kube_container_name:windows-server-iis', 'kube_namespace:default', 'pod_name:windows-server-iis-6c68545d57-gwtn9', ], ) aggregator.assert_metric( 'kubernetes.memory.working_set', 136089600.0, tags + [ 'kube_container_name:agent', 'kube_namespace:default', 'pod_name:dd-datadog-lbvkl' ], ) aggregator.assert_metric( 'kubernetes.memory.working_set', 65474560.0, tags + [ 'kube_container_name:process-agent', 'kube_namespace:default', 'pod_name:dd-datadog-lbvkl' ], ) aggregator.assert_metric( 'kubernetes.memory.working_set', 136814592.0, tags + [ 'kube_container_name:windows-server-iis', 'kube_namespace:default', 'pod_name:windows-server-iis-6c68545d57-gwtn9', ], ) aggregator.assert_metric( 'kubernetes.filesystem.usage', 0.0, tags + [ 'kube_container_name:agent', 'kube_namespace:default', 'pod_name:dd-datadog-lbvkl' ], ) aggregator.assert_metric( 'kubernetes.filesystem.usage', 0.0, tags + [ 'kube_container_name:process-agent', 'kube_namespace:default', 'pod_name:dd-datadog-lbvkl' ], ) aggregator.assert_metric( 'kubernetes.filesystem.usage', 0.0, tags + [ 'kube_container_name:windows-server-iis', 'kube_namespace:default', 'pod_name:windows-server-iis-6c68545d57-gwtn9', ], ) aggregator.assert_metric( 'kubernetes.filesystem.usage_pct', 0.0, tags + [ 'kube_container_name:agent', 'kube_namespace:default', 'pod_name:dd-datadog-lbvkl' ], ) aggregator.assert_metric( 'kubernetes.filesystem.usage_pct', 0.0, tags + [ 'kube_container_name:process-agent', 'kube_namespace:default', 'pod_name:dd-datadog-lbvkl' ], ) aggregator.assert_metric( 'kubernetes.filesystem.usage_pct', 0.0, tags + [ 'kube_container_name:windows-server-iis', 'kube_namespace:default', 'pod_name:windows-server-iis-6c68545d57-gwtn9', ], )