From df17b1ca3836da4767aab0bb54b412d1df7e85f9 Mon Sep 17 00:00:00 2001
From: Frederic Branczyk <fbranczyk@gmail.com>
Date: Tue, 2 Apr 2019 11:43:01 +0200
Subject: [PATCH] kube-prometheus: Fix double accounting of pod usage

cAdvisor exposes metrics for each cgroup hierachy step, and containers
are part of the respective pod's hierarchy, causing double accounting
when not filtered appropriately.
---
 .../prometheus-adapter/prometheus-adapter.libsonnet           | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/jsonnet/kube-prometheus/prometheus-adapter/prometheus-adapter.libsonnet b/jsonnet/kube-prometheus/prometheus-adapter/prometheus-adapter.libsonnet
index 193a36a5..6d6604bc 100644
--- a/jsonnet/kube-prometheus/prometheus-adapter/prometheus-adapter.libsonnet
+++ b/jsonnet/kube-prometheus/prometheus-adapter/prometheus-adapter.libsonnet
@@ -19,7 +19,7 @@ local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet';
       config: |||
         resourceRules:
           cpu:
-            containerQuery: sum(rate(container_cpu_usage_seconds_total{<<.LabelMatchers>>}[1m])) by (<<.GroupBy>>)
+            containerQuery: sum(rate(container_cpu_usage_seconds_total{<<.LabelMatchers>>,container_name!="POD",container_name!="",pod_name!=""}[1m])) by (<<.GroupBy>>)
             nodeQuery: sum(1 - rate(node_cpu_seconds_total{mode="idle"}[1m]) * on(namespace, pod) group_left(node) node_namespace_pod:kube_pod_info:{<<.LabelMatchers>>}) by (<<.GroupBy>>)
             resources:
               overrides:
@@ -31,7 +31,7 @@ local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet';
                   resource: pod
             containerLabel: container_name
           memory:
-            containerQuery: sum(container_memory_working_set_bytes{<<.LabelMatchers>>}) by (<<.GroupBy>>)
+            containerQuery: sum(container_memory_working_set_bytes{<<.LabelMatchers>>,container_name!="POD",container_name!="",pod_name!=""}) by (<<.GroupBy>>)
             nodeQuery: sum(node:node_memory_bytes_total:sum{<<.LabelMatchers>>} - node:node_memory_bytes_available:sum{<<.LabelMatchers>>}) by (<<.GroupBy>>)
             resources:
               overrides:
-- 
GitLab