From b85b5b6bcf3a17e4d850b43d6aae4aee54f2416c Mon Sep 17 00:00:00 2001 From: Mike Bryant <m@ocado.com> Date: Thu, 9 Mar 2017 21:23:55 +0000 Subject: [PATCH] Account for multiple copies of kube-state-metrics This can happen if you run multiple replicas, or if you redeploy kube-state-metrics. In either case, prometheus records multiple metrics with the instance ip in, and the dashboard fails. Use aggregation functions to get sensible output in either case --- assets/grafana/deployment-dashboard.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/assets/grafana/deployment-dashboard.json b/assets/grafana/deployment-dashboard.json index 69638d15..357bd8e6 100644 --- a/assets/grafana/deployment-dashboard.json +++ b/assets/grafana/deployment-dashboard.json @@ -302,7 +302,7 @@ "targets": [ { "refId": "A", - "expr": "kube_deployment_spec_replicas{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}", + "expr": "max(kube_deployment_spec_replicas{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}) without (instance)", "intervalFactor": 2, "step": 600, "metric": "kube_deployment_spec_replicas" @@ -381,7 +381,7 @@ "targets": [ { "refId": "A", - "expr": "kube_deployment_status_replicas_available{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}", + "expr": "min(kube_deployment_status_replicas_available{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}) without (instance)", "intervalFactor": 2, "step": 600 } @@ -505,7 +505,7 @@ }, "targets": [ { - "expr": "kube_deployment_status_observed_generation{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}", + "expr": "max(kube_deployment_status_observed_generation{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}) without (instance)", "intervalFactor": 2, "legendFormat": "", "refId": "A", @@ -583,7 +583,7 @@ }, "targets": [ { - "expr": "kube_deployment_metadata_generation{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}", + "expr": "max(kube_deployment_metadata_generation{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}) without (instance)", "intervalFactor": 2, "legendFormat": "", "refId": "A", @@ -649,35 +649,35 @@ "steppedLine": false, "targets": [ { - "expr": "kube_deployment_status_replicas{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}", + "expr": "max(kube_deployment_status_replicas{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}) without (instance)", "intervalFactor": 2, "legendFormat": "current replicas", "refId": "A", "step": 30 }, { - "expr": "kube_deployment_status_replicas_available{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}", + "expr": "min(kube_deployment_status_replicas_available{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}) without (instance)", "intervalFactor": 2, "legendFormat": "available", "refId": "B", "step": 30 }, { - "expr": "kube_deployment_status_replicas_unavailable{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}", + "expr": "max(kube_deployment_status_replicas_unavailable{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}) without (instance)", "intervalFactor": 2, "legendFormat": "unavailable", "refId": "C", "step": 30 }, { - "expr": "kube_deployment_status_replicas_updated{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}", + "expr": "min(kube_deployment_status_replicas_updated{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}) without (instance)", "intervalFactor": 2, "legendFormat": "updated", "refId": "D", "step": 30 }, { - "expr": "kube_deployment_spec_replicas{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}", + "expr": "max(kube_deployment_spec_replicas{deployment=\"$deployment_name\",namespace=\"$deployment_namespace\"}) without (instance)", "intervalFactor": 2, "legendFormat": "desired", "refId": "E", -- GitLab