Skip to content

Commit 325c6ca

Browse files
authored
Merge pull request #2990 from tarvip/kubernetes-tags
[kubernetes] add image_name and image_tag to container metrics
2 parents de297cc + 3f48936 commit 325c6ca

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

checks.d/kubernetes.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,16 @@ def _update_container_metrics(self, instance, subcontainer, kube_labels):
251251
if container_image:
252252
tags.append('container_image:%s' % container_image)
253253

254+
split = container_image.split(":")
255+
if len(split) > 2:
256+
# if the repo is in the image name and has the form 'docker.clearbit:5000'
257+
# the split will be like [repo_url, repo_port/image_name, image_tag]. Let's avoid that
258+
split = [':'.join(split[:-1]), split[-1]]
259+
260+
tags.append('image_name:%s' % split[0])
261+
if len(split) == 2:
262+
tags.append('image_tag:%s' % split[1])
263+
254264
try:
255265
cont_labels = subcontainer['spec']['labels']
256266
except KeyError:

tests/checks/mock/test_kubernetes.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -225,14 +225,15 @@ def test_metrics_1_2(self, *args):
225225
expected_tags = [
226226
(['container_name:/kubelet', 'pod_name:no_pod'], [MEM, CPU, NET, DISK]),
227227
(['container_name:k8s_POD.35220667_dd-agent-1rxlh_default_12c7be82-33ca-11e6-ac8f-42010af00003_f5cf585f',
228-
'container_image:gcr.io/google_containers/pause:2.0', 'pod_name:default/dd-agent-1rxlh',
229-
'kube_namespace:default', 'kube_app:dd-agent', 'kube_foo:bar','kube_bar:baz',
230-
'kube_replication_controller:dd-agent'],
228+
'container_image:gcr.io/google_containers/pause:2.0', 'image_name:gcr.io/google_containers/pause',
229+
'image_tag:2.0', 'pod_name:default/dd-agent-1rxlh', 'kube_namespace:default', 'kube_app:dd-agent',
230+
'kube_foo:bar','kube_bar:baz', 'kube_replication_controller:dd-agent'],
231231
[MEM, CPU, FS, NET, NET_ERRORS]),
232232
(['container_name:/', 'pod_name:no_pod'], [MEM, CPU, FS, NET, NET_ERRORS, DISK]),
233233
(['container_name:/system', 'pod_name:no_pod'], [MEM, CPU, NET, DISK]),
234234
(['container_name:k8s_dd-agent.7b520f3f_dd-agent-1rxlh_default_12c7be82-33ca-11e6-ac8f-42010af00003_321fecb4',
235-
'container_image:datadog/docker-dd-agent:massi_ingest_k8s_events', 'pod_name:default/dd-agent-1rxlh',
235+
'container_image:datadog/docker-dd-agent:massi_ingest_k8s_events', 'image_name:datadog/docker-dd-agent',
236+
'image_tag:massi_ingest_k8s_events','pod_name:default/dd-agent-1rxlh',
236237
'kube_namespace:default', 'kube_app:dd-agent', 'kube_foo:bar',
237238
'kube_bar:baz', 'kube_replication_controller:dd-agent'], [LIM, REQ, MEM, CPU, NET, DISK, DISK_USAGE]),
238239
(['kube_replication_controller:dd-agent', 'kube_namespace:default'], [PODS]),
@@ -278,10 +279,12 @@ def test_historate_1_2(self, *args):
278279
metric_suffix = ["count", "avg", "median", "max", "95percentile"]
279280

280281
expected_tags = [
281-
(['container_image:datadog/docker-dd-agent:massi_ingest_k8s_events', 'pod_name:default/dd-agent-1rxlh',
282+
(['container_image:datadog/docker-dd-agent:massi_ingest_k8s_events', 'image_name:datadog/docker-dd-agent',
283+
'image_tag:massi_ingest_k8s_events', 'pod_name:default/dd-agent-1rxlh',
282284
'kube_namespace:default', 'kube_app:dd-agent', 'kube_foo:bar','kube_bar:baz',
283285
'kube_replication_controller:dd-agent'], [MEM, CPU, NET, DISK, DISK_USAGE, LIM, REQ]),
284-
(['container_image:gcr.io/google_containers/pause:2.0', 'pod_name:default/dd-agent-1rxlh',
286+
(['container_image:gcr.io/google_containers/pause:2.0', 'image_name:gcr.io/google_containers/pause',
287+
'image_tag:2.0', 'pod_name:default/dd-agent-1rxlh',
285288
'kube_namespace:default', 'kube_app:dd-agent', 'kube_foo:bar','kube_bar:baz',
286289
'kube_replication_controller:dd-agent'], [MEM, CPU, NET, NET_ERRORS, DISK_USAGE]),
287290
(['pod_name:no_pod'], [MEM, CPU, FS, NET, NET_ERRORS, DISK]),

0 commit comments

Comments
 (0)