From bd5cfd95700d002c138894a925469bfbef08c857 Mon Sep 17 00:00:00 2001 From: Alfonso Acosta Date: Tue, 12 Jan 2016 18:20:11 +0000 Subject: [PATCH] k8s: Render container names from label "io.kubernetes.container.name" --- render/mapping.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/render/mapping.go b/render/mapping.go index a76f35741..30e1b1caa 100644 --- a/render/mapping.go +++ b/render/mapping.go @@ -28,7 +28,8 @@ const ( processesKey = "processes" servicesKey = "services" - AmazonECSContainerNameLabel = "com.amazonaws.ecs.container-name" + AmazonECSContainerNameLabel = "com.amazonaws.ecs.container-name" + KubernetesContainerNameLabel = "io.kubernetes.container.name" ) // MapFunc is anything which can take an arbitrary RenderableNode and @@ -154,6 +155,14 @@ func GetRenderableContainerName(nmd report.Node) (string, bool) { return labelValue, true } + // Kubernetes also mangles its Docker container names and provides a + // label with the original container name. However, note that this label + // is only provided by Kubernetes versions >= 1.2 (see + // https://github.com/kubernetes/kubernetes/pull/17234/ ) + if labelValue, ok := nmd.Metadata[docker.LabelPrefix+KubernetesContainerNameLabel]; ok { + return labelValue, true + } + name, ok := nmd.Metadata[docker.ContainerName] return name, ok }