{ | |
"__inputs": [ | |
{ | |
"name": "DS_PROMETHEUS", | |
"label": "prometheus", | |
"description": "", | |
"type": "datasource", | |
"pluginId": "prometheus", | |
"pluginName": "Prometheus" | |
} | |
], | |
"__requires": [ | |
{ | |
"type": "grafana", | |
"id": "grafana", | |
"name": "Grafana", | |
"version": "4.1.1" | |
}, | |
{ | |
"type": "panel", | |
"id": "graph", | |
"name": "Graph", | |
"version": "" | |
}, | |
{ | |
"type": "datasource", | |
"id": "prometheus", | |
"name": "Prometheus", | |
"version": "1.0.0" | |
} | |
], | |
"annotations": { | |
"list": [] | |
}, | |
"editable": true, | |
"gnetId": 1471, | |
"graphTooltip": 1, | |
"hideControls": false, | |
"id": null, | |
"links": [], | |
"refresh": "30s", | |
"rows": [ | |
{ | |
"collapse": false, | |
"height": "250px", | |
"panels": [ | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"datasource": "Prometheus", | |
"editable": true, | |
"error": false, | |
"fill": 1, | |
"grid": {}, | |
"id": 3, | |
"legend": { | |
"alignAsTable": true, | |
"avg": true, | |
"current": false, | |
"max": true, | |
"min": false, | |
"rightSide": true, | |
"show": true, | |
"sort": "avg", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 2, | |
"links": [], | |
"nullPointMode": "connected", | |
"percentage": false, | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"span": 6, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "sum(irate(http_requests_total{app=\"$container\", handler!=\"prometheus\", kubernetes_namespace=\"$namespace\"}[30s])) by (kubernetes_namespace,app,code)", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "native | {{code}}", | |
"refId": "A", | |
"step": 10 | |
}, | |
{ | |
"expr": "sum(irate(nginx_http_requests_total{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (kubernetes_namespace,app,status)", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "nginx | {{status}}", | |
"refId": "B", | |
"step": 10 | |
}, | |
{ | |
"expr": "sum(irate(haproxy_backend_http_responses_total{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (app,kubernetes_namespace,code)", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "haproxy | {{code}}", | |
"refId": "C", | |
"step": 10 | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeShift": null, | |
"title": "Request rate", | |
"tooltip": { | |
"msResolution": true, | |
"shared": false, | |
"sort": 0, | |
"value_type": "cumulative" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "ops", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
] | |
}, | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"datasource": "Prometheus", | |
"fill": 1, | |
"id": 15, | |
"legend": { | |
"alignAsTable": true, | |
"avg": true, | |
"current": false, | |
"max": true, | |
"min": false, | |
"rightSide": true, | |
"show": true, | |
"sort": "avg", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 1, | |
"links": [], | |
"nullPointMode": "null", | |
"percentage": false, | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"span": 6, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "sum(irate(haproxy_backend_http_responses_total{app=\"$container\", kubernetes_namespace=\"$namespace\",code=\"5xx\"}[30s])) by (app,kubernetes_namespace) / sum(irate(haproxy_backend_http_responses_total{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (app,kubernetes_namespace)", | |
"interval": "", | |
"intervalFactor": 2, | |
"legendFormat": "haproxy", | |
"refId": "A", | |
"step": 20 | |
}, | |
{ | |
"expr": "sum(irate(http_requests_total{app=\"$container\", handler!=\"prometheus\", kubernetes_namespace=\"$namespace\", code=~\"5[0-9]+\"}[30s])) by (kubernetes_namespace,app) / sum(irate(http_requests_total{app=\"$container\", handler!=\"prometheus\", kubernetes_namespace=\"$namespace\"}[30s])) by (kubernetes_namespace,app)", | |
"intervalFactor": 2, | |
"legendFormat": "native", | |
"refId": "B", | |
"step": 20 | |
}, | |
{ | |
"expr": "sum(irate(nginx_http_requests_total{app=\"$container\", kubernetes_namespace=\"$namespace\", status=~\"5[0-9]+\"}[30s])) by (kubernetes_namespace,app) / sum(irate(nginx_http_requests_total{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (kubernetes_namespace,app)", | |
"intervalFactor": 2, | |
"legendFormat": "nginx", | |
"refId": "C", | |
"step": 20 | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeShift": null, | |
"title": "Error rate", | |
"tooltip": { | |
"shared": true, | |
"sort": 0, | |
"value_type": "individual" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "percentunit", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": "0", | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
] | |
} | |
], | |
"repeat": null, | |
"repeatIteration": null, | |
"repeatRowId": null, | |
"showTitle": false, | |
"title": "Request rate", | |
"titleSize": "h6" | |
}, | |
{ | |
"collapse": true, | |
"height": 224, | |
"panels": [ | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"datasource": "Prometheus", | |
"editable": true, | |
"error": false, | |
"fill": 1, | |
"grid": {}, | |
"id": 5, | |
"legend": { | |
"alignAsTable": true, | |
"avg": true, | |
"current": false, | |
"max": true, | |
"min": false, | |
"rightSide": true, | |
"show": true, | |
"sort": "max", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 2, | |
"links": [], | |
"nullPointMode": "connected", | |
"percentage": false, | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"span": 12, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (app,kubernetes_namespace,le))", | |
"intervalFactor": 1, | |
"legendFormat": "native | 0.99", | |
"refId": "A", | |
"step": 1 | |
}, | |
{ | |
"expr": "histogram_quantile(0.90, sum(rate(http_request_duration_seconds_bucket{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (app,kubernetes_namespace,le))", | |
"intervalFactor": 1, | |
"legendFormat": "native | 0.90", | |
"refId": "B", | |
"step": 1 | |
}, | |
{ | |
"expr": "histogram_quantile(0.5, sum(rate(http_request_duration_seconds_bucket{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (app,kubernetes_namespace,le))", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "native | 0.50", | |
"refId": "C", | |
"step": 1 | |
}, | |
{ | |
"expr": "histogram_quantile(0.99, sum(rate(nginx_http_request_duration_seconds_bucket{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (app,kubernetes_namespace,le))", | |
"intervalFactor": 1, | |
"legendFormat": "nginx | 0.99", | |
"refId": "D", | |
"step": 1 | |
}, | |
{ | |
"expr": "histogram_quantile(0.9, sum(rate(nginx_http_request_duration_seconds_bucket{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (app,kubernetes_namespace,le))", | |
"intervalFactor": 1, | |
"legendFormat": "nginx | 0.90", | |
"refId": "E", | |
"step": 1 | |
}, | |
{ | |
"expr": "histogram_quantile(0.5, sum(rate(nginx_http_request_duration_seconds_bucket{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (app,kubernetes_namespace,le))", | |
"intervalFactor": 1, | |
"legendFormat": "nginx | 0.50", | |
"refId": "F", | |
"step": 1 | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeShift": null, | |
"title": "Response time percentiles", | |
"tooltip": { | |
"msResolution": true, | |
"shared": true, | |
"sort": 0, | |
"value_type": "cumulative" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "s", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
] | |
} | |
], | |
"repeat": null, | |
"repeatIteration": null, | |
"repeatRowId": null, | |
"showTitle": false, | |
"title": "Response time", | |
"titleSize": "h6" | |
}, | |
{ | |
"collapse": false, | |
"height": 250, | |
"panels": [ | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"datasource": "Prometheus", | |
"editable": true, | |
"error": false, | |
"fill": 1, | |
"id": 7, | |
"legend": { | |
"alignAsTable": true, | |
"avg": true, | |
"current": false, | |
"max": true, | |
"min": false, | |
"rightSide": true, | |
"show": true, | |
"sort": "avg", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 1, | |
"links": [], | |
"nullPointMode": "connected", | |
"percentage": false, | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"span": 12, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "count(count(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (pod_name))", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "pods", | |
"refId": "A", | |
"step": 5 | |
}, | |
{ | |
"expr": "count(count(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (kubernetes_io_hostname))", | |
"interval": "", | |
"intervalFactor": 2, | |
"legendFormat": "hosts", | |
"refId": "B", | |
"step": 10 | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeShift": null, | |
"title": "Number of pods", | |
"tooltip": { | |
"msResolution": false, | |
"shared": true, | |
"sort": 0, | |
"value_type": "individual" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": "0", | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
] | |
} | |
], | |
"repeat": null, | |
"repeatIteration": null, | |
"repeatRowId": null, | |
"showTitle": false, | |
"title": "Pod count", | |
"titleSize": "h6" | |
}, | |
{ | |
"collapse": false, | |
"height": 250, | |
"panels": [ | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"datasource": "Prometheus", | |
"editable": true, | |
"error": false, | |
"fill": 1, | |
"id": 12, | |
"legend": { | |
"alignAsTable": true, | |
"avg": true, | |
"current": false, | |
"max": true, | |
"min": false, | |
"rightSide": true, | |
"show": true, | |
"sort": "avg", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 1, | |
"links": [], | |
"nullPointMode": "connected", | |
"percentage": false, | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [ | |
{ | |
"alias": "elasticsearch-logging-data-20170207a (logging) - system", | |
"color": "#BF1B00" | |
}, | |
{ | |
"alias": "elasticsearch-logging-data-20170207a (logging) - user", | |
"color": "#508642" | |
} | |
], | |
"span": 12, | |
"stack": true, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "sum(irate(container_cpu_system_seconds_total{container_name=\"$container\", namespace=\"$namespace\"}[30s])) by (namespace,container_name) / sum(container_spec_cpu_shares{container_name=\"$container\", namespace=\"$namespace\"} / 1024) by (namespace,container_name)", | |
"intervalFactor": 2, | |
"legendFormat": "system", | |
"refId": "C", | |
"step": 10 | |
}, | |
{ | |
"expr": "sum(irate(container_cpu_user_seconds_total{container_name=\"$container\", namespace=\"$namespace\"}[30s])) by (namespace,container_name) / sum(container_spec_cpu_shares{container_name=\"$container\", namespace=\"$namespace\"} / 1024) by (namespace,container_name)", | |
"interval": "", | |
"intervalFactor": 2, | |
"legendFormat": "user", | |
"refId": "B", | |
"step": 10 | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeShift": null, | |
"title": "Cpu usage (relative to request)", | |
"tooltip": { | |
"msResolution": false, | |
"shared": true, | |
"sort": 0, | |
"value_type": "individual" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "percentunit", | |
"label": "", | |
"logBase": 1, | |
"max": "1", | |
"min": "0", | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
] | |
} | |
], | |
"repeat": null, | |
"repeatIteration": null, | |
"repeatRowId": null, | |
"showTitle": false, | |
"title": "Usage relative to request", | |
"titleSize": "h6" | |
}, | |
{ | |
"collapse": true, | |
"height": 250, | |
"panels": [ | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"datasource": "Prometheus", | |
"editable": true, | |
"error": false, | |
"fill": 1, | |
"id": 10, | |
"legend": { | |
"alignAsTable": true, | |
"avg": true, | |
"current": false, | |
"max": true, | |
"min": false, | |
"rightSide": true, | |
"show": true, | |
"sort": "avg", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 1, | |
"links": [], | |
"nullPointMode": "connected", | |
"percentage": false, | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"span": 6, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "sum(irate(container_cpu_usage_seconds_total{container_name=\"$container\", namespace=\"$namespace\"}[30s])) by (namespace,container_name) / sum(container_spec_cpu_quota{container_name=\"$container\", namespace=\"$namespace\"} / container_spec_cpu_period{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name)", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "actual", | |
"metric": "", | |
"refId": "A", | |
"step": 1 | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeShift": null, | |
"title": "Cpu usage (relative to limit)", | |
"tooltip": { | |
"msResolution": false, | |
"shared": true, | |
"sort": 0, | |
"value_type": "individual" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "percentunit", | |
"label": "", | |
"logBase": 1, | |
"max": "1", | |
"min": "0", | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
] | |
}, | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"datasource": "Prometheus", | |
"editable": true, | |
"error": false, | |
"fill": 1, | |
"id": 11, | |
"legend": { | |
"alignAsTable": true, | |
"avg": true, | |
"current": false, | |
"max": true, | |
"min": false, | |
"rightSide": true, | |
"show": true, | |
"sort": "avg", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 1, | |
"links": [], | |
"nullPointMode": "connected", | |
"percentage": false, | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"span": 6, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "sum(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) / sum(container_spec_memory_limit_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name)", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "actual", | |
"refId": "A", | |
"step": 1 | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeShift": null, | |
"title": "Memory usage (relative to limit)", | |
"tooltip": { | |
"msResolution": false, | |
"shared": true, | |
"sort": 0, | |
"value_type": "individual" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "percentunit", | |
"label": null, | |
"logBase": 1, | |
"max": "1", | |
"min": "0", | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
] | |
} | |
], | |
"repeat": null, | |
"repeatIteration": null, | |
"repeatRowId": null, | |
"showTitle": false, | |
"title": "Usage relative to limit", | |
"titleSize": "h6" | |
}, | |
{ | |
"collapse": true, | |
"height": 250, | |
"panels": [ | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"datasource": "Prometheus", | |
"fill": 1, | |
"id": 13, | |
"legend": { | |
"alignAsTable": true, | |
"avg": true, | |
"current": false, | |
"max": true, | |
"min": false, | |
"rightSide": true, | |
"show": true, | |
"sort": "avg", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 1, | |
"links": [], | |
"nullPointMode": "null", | |
"percentage": false, | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"span": 6, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "sum(irate(container_cpu_usage_seconds_total{container_name=\"$container\", namespace=\"$namespace\"}[30s])) by (id,pod_name)", | |
"interval": "", | |
"intervalFactor": 2, | |
"legendFormat": "{{pod_name}}", | |
"refId": "A", | |
"step": 2 | |
}, | |
{ | |
"expr": "sum(container_spec_cpu_quota{container_name=\"$container\", namespace=\"$namespace\"} / container_spec_cpu_period{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) / count(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) ", | |
"intervalFactor": 2, | |
"legendFormat": "limit", | |
"refId": "B", | |
"step": 2 | |
}, | |
{ | |
"expr": "sum(container_spec_cpu_shares{container_name=\"$container\", namespace=\"$namespace\"} / 1024) by (namespace,container_name) / count(container_spec_cpu_shares{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) ", | |
"intervalFactor": 2, | |
"legendFormat": "request", | |
"refId": "C", | |
"step": 2 | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeShift": null, | |
"title": "Cpu usage (per pod)", | |
"tooltip": { | |
"shared": true, | |
"sort": 0, | |
"value_type": "individual" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "short", | |
"label": "cores", | |
"logBase": 1, | |
"max": null, | |
"min": "0", | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
] | |
}, | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"datasource": "Prometheus", | |
"fill": 1, | |
"id": 14, | |
"legend": { | |
"alignAsTable": true, | |
"avg": true, | |
"current": false, | |
"max": true, | |
"min": false, | |
"rightSide": true, | |
"show": true, | |
"sort": "avg", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 1, | |
"links": [], | |
"nullPointMode": "null", | |
"percentage": false, | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"span": 6, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "sum(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (id,pod_name)", | |
"interval": "", | |
"intervalFactor": 2, | |
"legendFormat": "{{pod_name}}", | |
"refId": "A", | |
"step": 2 | |
}, | |
{ | |
"expr": "sum(container_spec_memory_limit_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) / count(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (container_name,namespace)", | |
"intervalFactor": 2, | |
"legendFormat": "limit", | |
"refId": "B", | |
"step": 2 | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeShift": null, | |
"title": "Memory usage (per pod)", | |
"tooltip": { | |
"shared": true, | |
"sort": 0, | |
"value_type": "individual" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "bytes", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": "0", | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
] | |
} | |
], | |
"repeat": null, | |
"repeatIteration": null, | |
"repeatRowId": null, | |
"showTitle": false, | |
"title": "Usage per pod", | |
"titleSize": "h6" | |
}, | |
{ | |
"collapse": true, | |
"height": 250, | |
"panels": [ | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"datasource": "Prometheus", | |
"editable": true, | |
"error": false, | |
"fill": 1, | |
"id": 8, | |
"legend": { | |
"alignAsTable": true, | |
"avg": true, | |
"current": false, | |
"max": true, | |
"min": false, | |
"rightSide": true, | |
"show": true, | |
"sort": "avg", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 1, | |
"links": [], | |
"nullPointMode": "connected", | |
"percentage": false, | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"span": 6, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "sum(irate(container_cpu_usage_seconds_total{container_name=\"$container\", namespace=\"$namespace\"}[30s])) by (namespace,container_name) / count(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) ", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "actual", | |
"refId": "A", | |
"step": 1 | |
}, | |
{ | |
"expr": "sum(container_spec_cpu_quota{container_name=\"$container\", namespace=\"$namespace\"} / container_spec_cpu_period{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) / count(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) ", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "limit", | |
"refId": "B", | |
"step": 1 | |
}, | |
{ | |
"expr": "sum(container_spec_cpu_shares{container_name=\"$container\", namespace=\"$namespace\"} / 1024) by (namespace,container_name) / count(container_spec_cpu_shares{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) ", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "request", | |
"refId": "C", | |
"step": 1 | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeShift": null, | |
"title": "Cpu usage (avg per pod)", | |
"tooltip": { | |
"msResolution": false, | |
"shared": true, | |
"sort": 0, | |
"value_type": "individual" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "none", | |
"label": "cores", | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
] | |
}, | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"datasource": "Prometheus", | |
"editable": true, | |
"error": false, | |
"fill": 1, | |
"id": 9, | |
"legend": { | |
"alignAsTable": true, | |
"avg": true, | |
"current": false, | |
"max": true, | |
"min": false, | |
"rightSide": true, | |
"show": true, | |
"sort": "avg", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 1, | |
"links": [], | |
"nullPointMode": "connected", | |
"percentage": false, | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"span": 6, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "sum(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) / count(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) ", | |
"intervalFactor": 1, | |
"legendFormat": "actual", | |
"metric": "", | |
"refId": "A", | |
"step": 1 | |
}, | |
{ | |
"expr": "sum(container_spec_memory_limit_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) / count(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) ", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "limit", | |
"refId": "B", | |
"step": 1 | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeShift": null, | |
"title": "Memory usage (avg per pod)", | |
"tooltip": { | |
"msResolution": false, | |
"shared": true, | |
"sort": 0, | |
"value_type": "individual" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "bytes", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": "0", | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
] | |
} | |
], | |
"repeat": null, | |
"repeatIteration": null, | |
"repeatRowId": null, | |
"showTitle": false, | |
"title": "Usage per pod (average)", | |
"titleSize": "h6" | |
}, | |
{ | |
"collapse": true, | |
"height": 259.4375, | |
"panels": [ | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"datasource": "Prometheus", | |
"editable": true, | |
"error": false, | |
"fill": 1, | |
"grid": {}, | |
"id": 1, | |
"legend": { | |
"alignAsTable": true, | |
"avg": true, | |
"current": false, | |
"max": true, | |
"min": false, | |
"rightSide": true, | |
"show": true, | |
"sort": "avg", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 2, | |
"links": [], | |
"nullPointMode": "connected", | |
"percentage": false, | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"span": 6, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "sum(irate(container_cpu_usage_seconds_total{container_name=\"$container\", namespace=\"$namespace\"}[30s])) by (namespace,container_name)", | |
"hide": false, | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "actual", | |
"metric": "", | |
"refId": "A", | |
"step": 1 | |
}, | |
{ | |
"expr": "sum(container_spec_cpu_quota{container_name=\"$container\", namespace=\"$namespace\"} / container_spec_cpu_period{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name)", | |
"intervalFactor": 1, | |
"legendFormat": "limit", | |
"refId": "B", | |
"step": 1 | |
}, | |
{ | |
"expr": "sum(container_spec_cpu_shares{container_name=\"$container\", namespace=\"$namespace\"} / 1024) by (namespace,container_name) ", | |
"intervalFactor": 1, | |
"legendFormat": "request", | |
"refId": "C", | |
"step": 1 | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeShift": null, | |
"title": "Cpu usage (total)", | |
"tooltip": { | |
"msResolution": true, | |
"shared": false, | |
"sort": 0, | |
"value_type": "cumulative" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "none", | |
"label": "cores", | |
"logBase": 1, | |
"max": null, | |
"min": 0, | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
] | |
}, | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"datasource": "Prometheus", | |
"editable": true, | |
"error": false, | |
"fill": 1, | |
"grid": {}, | |
"id": 2, | |
"legend": { | |
"alignAsTable": true, | |
"avg": true, | |
"current": false, | |
"max": true, | |
"min": false, | |
"rightSide": true, | |
"show": true, | |
"sort": "avg", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 2, | |
"links": [], | |
"nullPointMode": "connected", | |
"percentage": false, | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"span": 6, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "sum(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name)", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "actual", | |
"refId": "A", | |
"step": 1 | |
}, | |
{ | |
"expr": "sum(container_spec_memory_limit_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name)", | |
"intervalFactor": 1, | |
"legendFormat": "limit", | |
"refId": "B", | |
"step": 1 | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeShift": null, | |
"title": "Memory usage (total)", | |
"tooltip": { | |
"msResolution": true, | |
"shared": false, | |
"sort": 0, | |
"value_type": "cumulative" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "bytes", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": "0", | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
] | |
} | |
], | |
"repeat": null, | |
"repeatIteration": null, | |
"repeatRowId": null, | |
"showTitle": false, | |
"title": "Usage total", | |
"titleSize": "h6" | |
} | |
], | |
"schemaVersion": 14, | |
"style": "dark", | |
"tags": [ | |
"nem-monitoring" | |
], | |
"templating": { | |
"list": [ | |
{ | |
"allValue": ".+", | |
"current": {}, | |
"datasource": "Prometheus", | |
"hide": 0, | |
"includeAll": false, | |
"label": null, | |
"multi": false, | |
"name": "namespace", | |
"options": [], | |
"query": "label_values(container_memory_usage_bytes{namespace=~\".+\",container_name!=\"POD\"},namespace)", | |
"refresh": 1, | |
"regex": "", | |
"sort": 1, | |
"tagValuesQuery": null, | |
"tags": [], | |
"tagsQuery": null, | |
"type": "query", | |
"useTags": false | |
}, | |
{ | |
"allValue": ".+", | |
"current": {}, | |
"datasource": "Prometheus", | |
"hide": 0, | |
"includeAll": false, | |
"label": null, | |
"multi": false, | |
"name": "container", | |
"options": [], | |
"query": "label_values(container_memory_usage_bytes{namespace=~\"$namespace\",container_name!=\"POD\"},container_name)", | |
"refresh": 1, | |
"regex": "", | |
"sort": 1, | |
"tagValuesQuery": null, | |
"tags": [], | |
"tagsQuery": null, | |
"type": "query", | |
"useTags": false | |
} | |
] | |
}, | |
"time": { | |
"from": "now-3h", | |
"to": "now" | |
}, | |
"timepicker": { | |
"refresh_intervals": [ | |
"5s", | |
"10s", | |
"30s", | |
"1m", | |
"5m", | |
"15m", | |
"30m", | |
"1h", | |
"2h", | |
"1d" | |
], | |
"time_options": [ | |
"5m", | |
"15m", | |
"1h", | |
"6h", | |
"12h", | |
"24h", | |
"2d", | |
"7d", | |
"30d" | |
] | |
}, | |
"timezone": "browser", | |
"title": "Kubernetes App Metrics", | |
"version": 37, | |
"description": "After selecting your namespace and container you get a wealth of metrics like request rate, error rate, response times, pod count, cpu and memory usage. You can view cpu and memory usage in a variety of ways, compared to the limit, compared to the request, per pod, average per pod, etc." | |
} |