From b7a4035ba69f0ded089e523bf8370e0aa42cafba Mon Sep 17 00:00:00 2001 From: Anthony Woods <awoods@grafana.com> Date: Sat, 19 Jan 2019 10:28:29 +0800 Subject: [PATCH] add container_name label to logs fixes #190 Pods can have multiple containers. This fix ensures that we collect logs for all containers. --- .../helm/templates/promtail/configmap.yaml | 10 ++++++++++ .../ksonnet/promtail/promtail.libsonnet | 20 +++++++++++++++++++ tools/promtail.sh | 10 ++++++++++ 3 files changed, 40 insertions(+) diff --git a/production/helm/templates/promtail/configmap.yaml b/production/helm/templates/promtail/configmap.yaml index e90695e9..291320cb 100644 --- a/production/helm/templates/promtail/configmap.yaml +++ b/production/helm/templates/promtail/configmap.yaml @@ -36,6 +36,12 @@ data: source_labels: - __meta_kubernetes_pod_name target_label: instance + - action: replace + source_labels: + - __meta_kubernetes_container_name + target_label: container_name + - action: labelmap + regex: __meta_kubernetes_pod_label_(.+) - replacement: /var/log/pods/$1/0.log separator: / source_labels: @@ -68,6 +74,10 @@ data: source_labels: - __meta_kubernetes_pod_name target_label: instance + - action: replace + source_labels: + - __meta_kubernetes_container_name + target_label: container_name - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - replacement: /var/log/pods/$1/0.log diff --git a/production/ksonnet/promtail/promtail.libsonnet b/production/ksonnet/promtail/promtail.libsonnet index 7c85c2c5..9088f223 100644 --- a/production/ksonnet/promtail/promtail.libsonnet +++ b/production/ksonnet/promtail/promtail.libsonnet @@ -82,6 +82,19 @@ k { target_label: 'instance', }, + // Include container_name label + { + source_labels: ['__meta_kubernetes_container_name'], + action: 'replace', + target_label: 'container_name', + }, + + // Also include all the other labels on the pod. + { + action: 'labelmap', + regex: '__meta_kubernetes_pod_label_(.+)', + }, + // Kubernetes puts logs under subdirectories keyed pod UID and container_name. { source_labels: ['__meta_kubernetes_pod_uid', '__meta_kubernetes_pod_container_name'], @@ -135,6 +148,13 @@ k { target_label: 'instance', }, + // Include container_name label + { + source_labels: ['__meta_kubernetes_container_name'], + action: 'replace', + target_label: 'container_name', + }, + // Also include all the other labels on the pod. { action: 'labelmap', diff --git a/tools/promtail.sh b/tools/promtail.sh index eb5eb096..4d36c614 100644 --- a/tools/promtail.sh +++ b/tools/promtail.sh @@ -42,6 +42,12 @@ data: source_labels: - __meta_kubernetes_pod_name target_label: instance + - action: replace + source_labels: + - __meta_kubernetes_container_name + target_label: container_name + - action: labelmap + regex: __meta_kubernetes_pod_label_(.+) - replacement: /var/log/pods/$1 separator: / source_labels: @@ -74,6 +80,10 @@ data: source_labels: - __meta_kubernetes_pod_name target_label: instance + - action: replace + source_labels: + - __meta_kubernetes_container_name + target_label: container_name - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - replacement: /var/log/pods/$1 -- GitLab