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
This commit is contained in:
Mike Bryant
2017-03-09 21:23:55 +00:00
parent cf5f99793b
commit b85b5b6bcf

View File

@@ -302,7 +302,7 @@
"targets": [ "targets": [
{ {
"refId": "A", "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, "intervalFactor": 2,
"step": 600, "step": 600,
"metric": "kube_deployment_spec_replicas" "metric": "kube_deployment_spec_replicas"
@@ -381,7 +381,7 @@
"targets": [ "targets": [
{ {
"refId": "A", "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, "intervalFactor": 2,
"step": 600 "step": 600
} }
@@ -505,7 +505,7 @@
}, },
"targets": [ "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, "intervalFactor": 2,
"legendFormat": "", "legendFormat": "",
"refId": "A", "refId": "A",
@@ -583,7 +583,7 @@
}, },
"targets": [ "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, "intervalFactor": 2,
"legendFormat": "", "legendFormat": "",
"refId": "A", "refId": "A",
@@ -649,35 +649,35 @@
"steppedLine": false, "steppedLine": false,
"targets": [ "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, "intervalFactor": 2,
"legendFormat": "current replicas", "legendFormat": "current replicas",
"refId": "A", "refId": "A",
"step": 30 "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, "intervalFactor": 2,
"legendFormat": "available", "legendFormat": "available",
"refId": "B", "refId": "B",
"step": 30 "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, "intervalFactor": 2,
"legendFormat": "unavailable", "legendFormat": "unavailable",
"refId": "C", "refId": "C",
"step": 30 "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, "intervalFactor": 2,
"legendFormat": "updated", "legendFormat": "updated",
"refId": "D", "refId": "D",
"step": 30 "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, "intervalFactor": 2,
"legendFormat": "desired", "legendFormat": "desired",
"refId": "E", "refId": "E",