From 2bdf975d5b5d35d81b669b5b026ad0b244e34633 Mon Sep 17 00:00:00 2001 From: Ryan Phillips Date: Fri, 26 Jul 2019 14:59:43 -0500 Subject: [PATCH] kubelet: add UID to kubelet_container_log_filesystem_used_bytes metric buildPodRef creates a unique key with the {podName, namespace, UID} tuple. By omitting the UID in the metric, duplicate metrics can be sent to prometheus causing 500's on the /metrics endpoint. --- pkg/kubelet/metrics/collectors/log_metrics.go | 2 ++ pkg/kubelet/metrics/collectors/log_metrics_test.go | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/kubelet/metrics/collectors/log_metrics.go b/pkg/kubelet/metrics/collectors/log_metrics.go index c43915e0708..23194106efa 100644 --- a/pkg/kubelet/metrics/collectors/log_metrics.go +++ b/pkg/kubelet/metrics/collectors/log_metrics.go @@ -28,6 +28,7 @@ var ( "kubelet_container_log_filesystem_used_bytes", "Bytes used by the container's logs on the filesystem.", []string{ + "uid", "namespace", "pod", "container", @@ -67,6 +68,7 @@ func (c *logMetricsCollector) Collect(ch chan<- prometheus.Metric) { descLogSize, prometheus.GaugeValue, float64(*c.Logs.UsedBytes), + ps.PodRef.UID, ps.PodRef.Namespace, ps.PodRef.Name, c.Name, diff --git a/pkg/kubelet/metrics/collectors/log_metrics_test.go b/pkg/kubelet/metrics/collectors/log_metrics_test.go index 40ffc0e0ab5..6a7710d0fa0 100644 --- a/pkg/kubelet/metrics/collectors/log_metrics_test.go +++ b/pkg/kubelet/metrics/collectors/log_metrics_test.go @@ -51,6 +51,7 @@ func TestMetricsCollected(t *testing.T) { PodRef: statsapi.PodReference{ Namespace: "some-namespace", Name: "podName1", + UID: "UID_some_id", }, Containers: []statsapi.ContainerStats{ { @@ -68,7 +69,7 @@ func TestMetricsCollected(t *testing.T) { err := testutil.CollectAndCompare(collector, strings.NewReader(` # HELP kubelet_container_log_filesystem_used_bytes Bytes used by the container's logs on the filesystem. # TYPE kubelet_container_log_filesystem_used_bytes gauge - kubelet_container_log_filesystem_used_bytes{container="containerName1",namespace="some-namespace",pod="podName1"} 18 + kubelet_container_log_filesystem_used_bytes{container="containerName1",namespace="some-namespace",pod="podName1",uid="UID_some_id"} 18 `), "kubelet_container_log_filesystem_used_bytes") if err != nil { t.Fatal(err)