Created
November 19, 2021 12:21
-
-
Save AndreasArne/433f902f9b986c301f2b2877454a581f to your computer and use it in GitHub Desktop.
Grafana dashboard for a Flask app
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"__inputs": [ | |
{ | |
"name": "DS_PROMETHEUS", | |
"label": "Prometheus", | |
"description": "", | |
"type": "datasource", | |
"pluginId": "prometheus", | |
"pluginName": "Prometheus" | |
} | |
], | |
"__requires": [ | |
{ | |
"type": "grafana", | |
"id": "grafana", | |
"name": "Grafana", | |
"version": "6.0.2" | |
}, | |
{ | |
"type": "panel", | |
"id": "graph", | |
"name": "Graph", | |
"version": "5.0.0" | |
}, | |
{ | |
"type": "datasource", | |
"id": "prometheus", | |
"name": "Prometheus", | |
"version": "5.0.0" | |
}, | |
{ | |
"type": "panel", | |
"id": "singlestat", | |
"name": "Singlestat", | |
"version": "5.0.0" | |
} | |
], | |
"annotations": { | |
"list": [ | |
{ | |
"builtIn": 1, | |
"datasource": "-- Grafana --", | |
"enable": true, | |
"hide": true, | |
"iconColor": "rgba(0, 211, 255, 1)", | |
"name": "Annotations & Alerts", | |
"type": "dashboard" | |
} | |
] | |
}, | |
"description": "Example dashboard for monitoring Flask webapps using prometheus_flask_exporter", | |
"editable": true, | |
"gnetId": null, | |
"graphTooltip": 0, | |
"id": 6, | |
"links": [], | |
"panels": [ | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"dashLength": 10, | |
"dashes": false, | |
"datasource": "${DS_PROMETHEUS}", | |
"fieldConfig": { | |
"defaults": { | |
"custom": {} | |
}, | |
"overrides": [] | |
}, | |
"fill": 1, | |
"fillGradient": 0, | |
"gridPos": { | |
"h": 4, | |
"w": 10, | |
"x": 0, | |
"y": 0 | |
}, | |
"hiddenSeries": false, | |
"id": 2, | |
"legend": { | |
"alignAsTable": true, | |
"avg": true, | |
"current": true, | |
"max": false, | |
"min": false, | |
"rightSide": true, | |
"show": true, | |
"sort": "avg", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 1, | |
"links": [], | |
"nullPointMode": "null", | |
"percentage": false, | |
"pluginVersion": "7.1.0", | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"spaceLength": 10, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "rate(flask_http_request_duration_seconds_count{status=\"200\"}[1m])", | |
"format": "time_series", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "{{ path }}", | |
"refId": "A" | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeRegions": [], | |
"timeShift": null, | |
"title": "Requests per second", | |
"tooltip": { | |
"shared": true, | |
"sort": 0, | |
"value_type": "individual" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"buckets": null, | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
], | |
"yaxis": { | |
"align": false, | |
"alignLevel": null | |
} | |
}, | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"dashLength": 10, | |
"dashes": false, | |
"datasource": "${DS_PROMETHEUS}", | |
"fieldConfig": { | |
"defaults": { | |
"custom": {} | |
}, | |
"overrides": [] | |
}, | |
"fill": 1, | |
"fillGradient": 0, | |
"gridPos": { | |
"h": 4, | |
"w": 6, | |
"x": 10, | |
"y": 0 | |
}, | |
"hiddenSeries": false, | |
"id": 4, | |
"legend": { | |
"avg": true, | |
"current": true, | |
"max": true, | |
"min": false, | |
"show": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 1, | |
"links": [], | |
"nullPointMode": "null", | |
"percentage": false, | |
"pluginVersion": "7.1.0", | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [ | |
{ | |
"alias": "errors", | |
"color": "#c15c17" | |
} | |
], | |
"spaceLength": 10, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "sum(rate(flask_http_request_duration_seconds_count{status!=\"200\"}[1m]))", | |
"format": "time_series", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "errors", | |
"refId": "A" | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeRegions": [], | |
"timeShift": null, | |
"title": "Errors per second", | |
"tooltip": { | |
"shared": true, | |
"sort": 0, | |
"value_type": "individual" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"buckets": null, | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
], | |
"yaxis": { | |
"align": false, | |
"alignLevel": null | |
} | |
}, | |
{ | |
"aliasColors": {}, | |
"bars": true, | |
"dashLength": 10, | |
"dashes": false, | |
"datasource": "${DS_PROMETHEUS}", | |
"fieldConfig": { | |
"defaults": { | |
"custom": {} | |
}, | |
"overrides": [] | |
}, | |
"fill": 1, | |
"fillGradient": 0, | |
"gridPos": { | |
"h": 4, | |
"w": 8, | |
"x": 16, | |
"y": 0 | |
}, | |
"hiddenSeries": false, | |
"id": 13, | |
"legend": { | |
"avg": true, | |
"current": false, | |
"max": true, | |
"min": false, | |
"show": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": false, | |
"linewidth": 1, | |
"links": [], | |
"nullPointMode": "null", | |
"percentage": false, | |
"pluginVersion": "7.1.0", | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [ | |
{ | |
"alias": "HTTP 500", | |
"color": "#bf1b00" | |
} | |
], | |
"spaceLength": 10, | |
"stack": true, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "increase(flask_http_request_total[1m])", | |
"format": "time_series", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "HTTP {{ status }}", | |
"refId": "A" | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeRegions": [], | |
"timeShift": null, | |
"title": "Total requests per minute", | |
"tooltip": { | |
"shared": true, | |
"sort": 0, | |
"value_type": "individual" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"buckets": null, | |
"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 | |
} | |
], | |
"yaxis": { | |
"align": false, | |
"alignLevel": null | |
} | |
}, | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"dashLength": 10, | |
"dashes": false, | |
"datasource": "${DS_PROMETHEUS}", | |
"decimals": null, | |
"fieldConfig": { | |
"defaults": { | |
"custom": {} | |
}, | |
"overrides": [] | |
}, | |
"fill": 1, | |
"fillGradient": 0, | |
"gridPos": { | |
"h": 5, | |
"w": 10, | |
"x": 0, | |
"y": 4 | |
}, | |
"hiddenSeries": false, | |
"id": 6, | |
"legend": { | |
"alignAsTable": true, | |
"avg": false, | |
"current": true, | |
"max": false, | |
"min": false, | |
"rightSide": true, | |
"show": true, | |
"sort": "avg", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 1, | |
"links": [], | |
"nullPointMode": "null", | |
"percentage": false, | |
"pluginVersion": "7.1.0", | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"spaceLength": 10, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "rate(flask_http_request_duration_seconds_sum{status=\"200\"}[1m])\n/\nrate(flask_http_request_duration_seconds_count{status=\"200\"}[1m])", | |
"format": "time_series", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "{{ path }}", | |
"refId": "A" | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeRegions": [], | |
"timeShift": null, | |
"title": "Average response time [1m]", | |
"tooltip": { | |
"shared": true, | |
"sort": 0, | |
"value_type": "individual" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"buckets": null, | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"decimals": null, | |
"format": "s", | |
"label": "", | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
], | |
"yaxis": { | |
"align": false, | |
"alignLevel": null | |
} | |
}, | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"dashLength": 10, | |
"dashes": false, | |
"datasource": "${DS_PROMETHEUS}", | |
"description": "", | |
"fieldConfig": { | |
"defaults": { | |
"custom": {} | |
}, | |
"overrides": [] | |
}, | |
"fill": 1, | |
"fillGradient": 0, | |
"gridPos": { | |
"h": 5, | |
"w": 9, | |
"x": 10, | |
"y": 4 | |
}, | |
"hiddenSeries": false, | |
"id": 15, | |
"legend": { | |
"alignAsTable": true, | |
"avg": true, | |
"current": true, | |
"max": true, | |
"min": true, | |
"rightSide": true, | |
"show": true, | |
"sort": "avg", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 1, | |
"links": [], | |
"nullPointMode": "null", | |
"percentage": false, | |
"pluginVersion": "7.1.0", | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"spaceLength": 10, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "histogram_quantile(0.5, rate(flask_http_request_duration_seconds_bucket{status=\"200\"}[1m]))", | |
"format": "time_series", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "{{ path }}", | |
"refId": "A" | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeRegions": [], | |
"timeShift": null, | |
"title": "Request duration [s] - p50", | |
"tooltip": { | |
"shared": true, | |
"sort": 0, | |
"value_type": "individual" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"buckets": null, | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "none", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
], | |
"yaxis": { | |
"align": false, | |
"alignLevel": null | |
} | |
}, | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"dashLength": 10, | |
"dashes": false, | |
"datasource": "${DS_PROMETHEUS}", | |
"fieldConfig": { | |
"defaults": { | |
"custom": {} | |
}, | |
"overrides": [] | |
}, | |
"fill": 1, | |
"fillGradient": 0, | |
"gridPos": { | |
"h": 5, | |
"w": 10, | |
"x": 0, | |
"y": 9 | |
}, | |
"hiddenSeries": false, | |
"id": 11, | |
"legend": { | |
"alignAsTable": true, | |
"avg": false, | |
"current": true, | |
"max": false, | |
"min": false, | |
"rightSide": true, | |
"show": true, | |
"sort": "current", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 1, | |
"links": [], | |
"nullPointMode": "null", | |
"percentage": false, | |
"pluginVersion": "7.1.0", | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"spaceLength": 10, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "increase(flask_http_request_duration_seconds_bucket{status=\"200\",le=\"0.25\"}[1m]) \n/ ignoring (le) increase(flask_http_request_duration_seconds_count{status=\"200\"}[1m])", | |
"format": "time_series", | |
"instant": false, | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "{{ path }}", | |
"refId": "A" | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeRegions": [], | |
"timeShift": null, | |
"title": "Requests under 250ms", | |
"tooltip": { | |
"shared": true, | |
"sort": 0, | |
"value_type": "individual" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"buckets": null, | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"decimals": null, | |
"format": "percentunit", | |
"label": null, | |
"logBase": 1, | |
"max": "1", | |
"min": "0", | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
], | |
"yaxis": { | |
"align": false, | |
"alignLevel": null | |
} | |
}, | |
{ | |
"aliasColors": {}, | |
"bars": false, | |
"dashLength": 10, | |
"dashes": false, | |
"datasource": "${DS_PROMETHEUS}", | |
"fieldConfig": { | |
"defaults": { | |
"custom": {} | |
}, | |
"overrides": [] | |
}, | |
"fill": 1, | |
"fillGradient": 0, | |
"gridPos": { | |
"h": 5, | |
"w": 9, | |
"x": 10, | |
"y": 9 | |
}, | |
"hiddenSeries": false, | |
"id": 16, | |
"legend": { | |
"alignAsTable": true, | |
"avg": true, | |
"current": true, | |
"max": true, | |
"min": true, | |
"rightSide": true, | |
"show": true, | |
"sort": "avg", | |
"sortDesc": true, | |
"total": false, | |
"values": true | |
}, | |
"lines": true, | |
"linewidth": 1, | |
"links": [], | |
"nullPointMode": "null", | |
"percentage": false, | |
"pluginVersion": "7.1.0", | |
"pointradius": 5, | |
"points": false, | |
"renderer": "flot", | |
"seriesOverrides": [], | |
"spaceLength": 10, | |
"stack": false, | |
"steppedLine": false, | |
"targets": [ | |
{ | |
"expr": "histogram_quantile(0.9, rate(flask_http_request_duration_seconds_bucket{status=\"200\"}[1m]))", | |
"format": "time_series", | |
"interval": "", | |
"intervalFactor": 1, | |
"legendFormat": "{{ path }}", | |
"refId": "A" | |
} | |
], | |
"thresholds": [], | |
"timeFrom": null, | |
"timeRegions": [], | |
"timeShift": null, | |
"title": "Request duration [s] - p90", | |
"tooltip": { | |
"shared": true, | |
"sort": 0, | |
"value_type": "individual" | |
}, | |
"type": "graph", | |
"xaxis": { | |
"buckets": null, | |
"mode": "time", | |
"name": null, | |
"show": true, | |
"values": [] | |
}, | |
"yaxes": [ | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
}, | |
{ | |
"format": "short", | |
"label": null, | |
"logBase": 1, | |
"max": null, | |
"min": null, | |
"show": true | |
} | |
], | |
"yaxis": { | |
"align": false, | |
"alignLevel": null | |
} | |
} | |
], | |
"refresh": "5s", | |
"schemaVersion": 26, | |
"style": "dark", | |
"tags": [], | |
"templating": { | |
"list": [] | |
}, | |
"time": { | |
"from": "now-5m", | |
"to": "now" | |
}, | |
"timepicker": { | |
"refresh_intervals": [], | |
"time_options": [ | |
"5m", | |
"15m", | |
"1h", | |
"6h", | |
"12h", | |
"24h", | |
"2d", | |
"7d", | |
"30d" | |
] | |
}, | |
"timezone": "", | |
"title": "Prometheus Flask exporter example dashboard", | |
"uid": "_eX4mpl3", | |
"version": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment