From a7d8d9b233b9cba8a7aad3158c403120b7bc0ed8 Mon Sep 17 00:00:00 2001 From: Roland Schilter Date: Thu, 13 Jul 2017 19:23:32 +0200 Subject: [PATCH] Update Deployment and DaemonSet queries --- render/detailed/links.go | 46 ++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 28 deletions(-) diff --git a/render/detailed/links.go b/render/detailed/links.go index fa9084d4a..0835186db 100644 --- a/render/detailed/links.go +++ b/render/detailed/links.go @@ -41,37 +41,25 @@ var ( }, report.Deployment: { // `container_memory_usage_bytes` is provided by cAdvisor in Kubelets. - docker.MemoryUsage: parsedTemplate(`sum(container_memory_usage_bytes{pod_name=~"{{.Label}}-[^-]+-[^-]+"})`), + // Pod names are automatically generated by k8s using the deployment name: + // https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#pod-template-hash-label + docker.MemoryUsage: parsedTemplate(`sum(container_memory_usage_bytes{pod_name=~"^{{.Label}}-[^-]+-[^-]+$"})`), // `container_cpu_usage_seconds_total` is provided by cAdvisor in Kubelets. - docker.CPUTotalUsage: parsedTemplate(`sum(rate(container_cpu_usage_seconds_total{pod_name=~"{{.Label}}-[^-]+-[^-]+"}[1m]))`), + docker.CPUTotalUsage: parsedTemplate(`sum(rate(container_cpu_usage_seconds_total{pod_name=~"^{{.Label}}-[^-]+-[^-]+$"}[1m]))`), }, report.DaemonSet: { - /* - A recording rule defines `namespace_name:container_memory_usage_bytes:sum`: - - namespace_name:container_memory_usage_bytes:sum = - sum by (namespace, name) ( - sum(container_memory_usage_bytes{image!=""}) by (pod_name, namespace) - * on (pod_name) group_left(name) - k8s_pod_labels{job="monitoring/kube-api-exporter"} - ) - - Additionally, we filter by `monitor=""` for cortex-only data. - */ - docker.MemoryUsage: parsedTemplate(`namespace_name:container_memory_usage_bytes:sum{name="{{.Label}}",monitor=""}`), - - /* - A recording rule defines `namespace_name:container_cpu_usage_seconds_total:sum_rate`: - - namespace_name:container_cpu_usage_seconds_total:sum_rate = - sum by (namespace, name) ( - sum(rate(container_cpu_usage_seconds_total{image!=""}[5m])) by (pod_name, namespace) - * on (pod_name) group_left(name) - k8s_pod_labels{job="monitoring/kube-api-exporter"} - ) - */ - docker.CPUTotalUsage: parsedTemplate(`namespace_name:container_cpu_usage_seconds_total:sum_rate{name="{{.Label}}"}`), + // `container_memory_usage_bytes` is provided by cAdvisor in Kubelets. + // Pod names are automatically generated by k8s using the DaemonSet name. + docker.MemoryUsage: parsedTemplate(`sum(container_memory_usage_bytes{pod_name=~"^{{.Label}}-[^-]+$"})`), + // `container_cpu_usage_seconds_total` is provided by cAdvisor in Kubelets. + docker.CPUTotalUsage: parsedTemplate(`sum(rate(container_cpu_usage_seconds_total{pod_name=~"^{{.Label}}-[^-]+$"}[1m]))`), }, + + /* + NB: requirements for the Service yaml are + - The `spec.selector` needs to select on `name` + - The `metadata.name` needs to be the same value as `spec.selector.name` + */ report.Service: { /* A recording rule defines `namespace_name:container_memory_usage_bytes:sum`: @@ -96,8 +84,10 @@ var ( * on (pod_name) group_left(name) k8s_pod_labels{job="monitoring/kube-api-exporter"} ) + + Additionally, we filter by `monitor=""` for cortex-only data. */ - docker.CPUTotalUsage: parsedTemplate(`namespace_name:container_cpu_usage_seconds_total:sum_rate{name="{{.Label}}"}`), + docker.CPUTotalUsage: parsedTemplate(`namespace_name:container_cpu_usage_seconds_total:sum_rate{name="{{.Label}},monitor=""}`), }, } )