deploy-templates/dashboards/grafana-dashboard-kong-public-api.yaml (1,438 lines of code) (raw):

apiVersion: v1 kind: ConfigMap metadata: name: grafana-dashboard-kong-public-api data: grafana-dashboard-kong-public-api.json: |- { "annotations": { "list": [ { "builtIn": 1, "datasource": "Prometheus", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "description": "Dashboard that graphs metrics exported via Prometheus plugin in Kong (http://github.com/kong/kong)", "editable": true, "gnetId": 7424, "graphTooltip": 0, "id": 136, "iteration": 1688466515742, "links": [], "panels": [ { "collapsed": true, "datasource": "Prometheus", "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 38, "panels": [ { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "graph": false, "legend": false, "tooltip": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "reqps" }, "overrides": [] }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 7, "w": 24, "x": 0, "y": 1 }, "hiddenSeries": false, "id": 1, "legend": { "alignAsTable": false, "avg": false, "current": false, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "options": { "alertThreshold": true, "legend": { "calcs": [], "displayMode": "hidden", "placement": "bottom" }, "tooltip": { "mode": "multi", "sort": "none" }, "tooltipOptions": { "mode": "single" } }, "paceLength": 10, "percentage": false, "pluginVersion": "8.4.5", "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(rate(kong_http_requests_total{namespace=~\"$namespace\",instance=~\"$instance\"}[1m]))", "format": "time_series", "interval": "", "intervalFactor": 2, "legendFormat": "Requests/second", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Total requests per second (RPS)", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "timeseries", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "s", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "graph": false, "legend": false, "tooltip": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "reqps" }, "overrides": [] }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 7, "w": 24, "x": 0, "y": 8 }, "hiddenSeries": false, "id": 16, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "options": { "alertThreshold": true, "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi", "sort": "none" }, "tooltipOptions": { "mode": "single" } }, "paceLength": 10, "percentage": false, "pluginVersion": "8.4.5", "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(rate(kong_http_requests_total{route=~\"(.*)$route(.*)\",namespace=~\"$namespace\",instance=~\"$instance\"}[1m])) by (route)", "format": "time_series", "interval": "", "intervalFactor": 2, "legendFormat": "{{route}}", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "RPS per route ($route)", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "transformations": [ { "id": "renameByRegex", "options": { "regex": ".*platform-gateway-(.*)\\.(.*)", "renamePattern": "$1" } } ], "type": "timeseries", "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 } } ], "title": "Request rate", "type": "row" }, { "collapsed": true, "datasource": null, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 1 }, "id": 46, "panels": [ { "aliasColors": {}, "bars": true, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fieldConfig": { "defaults": { "color": {}, "custom": {}, "thresholds": { "mode": "absolute", "steps": [] }, "unit": "none" }, "overrides": [] }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 12, "w": 24, "x": 0, "y": 2 }, "hiddenSeries": false, "id": 39, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": false, "linewidth": 1, "links": [], "nullPointMode": "null", "options": { "alertThreshold": false }, "percentage": false, "pluginVersion": "7.4.5", "pointradius": 2, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "idelta(kong_http_requests_total{route=~\"(.*)$route(.*)\",namespace=\"$namespace\",instance=~\"$instance\",code=~\"2.*\"}[40s])", "format": "time_series", "instant": false, "interval": "", "intervalFactor": 2, "legendFormat": "{{route}}:{{code}}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Requests with status codes - 2xx", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "transformations": [ { "id": "renameByRegex", "options": { "regex": ".*platform-gateway-(.*)\\.(.*):", "renamePattern": "$1:" } } ], "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "$$hashKey": "object:242", "format": "none", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "$$hashKey": "object:243", "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": "Prometheus", "fieldConfig": { "defaults": { "color": {}, "custom": {}, "links": [], "thresholds": { "mode": "absolute", "steps": [] }, "unit": "none" }, "overrides": [] }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 11, "w": 24, "x": 0, "y": 14 }, "hiddenSeries": false, "id": 47, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": false, "linewidth": 1, "links": [], "nullPointMode": "null", "options": { "alertThreshold": false }, "percentage": false, "pluginVersion": "7.4.5", "pointradius": 2, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "idelta(kong_http_requests_total{route=~\"(.*)$route(.*)\",namespace=~\"$namespace\",instance=~\"$instance\",code=~\"4.*\"}[40s])", "format": "time_series", "interval": "", "intervalFactor": 2, "legendFormat": "{{route}}:{{code}}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Requests with status codes - 4xx", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "transformations": [ { "id": "renameByRegex", "options": { "regex": ".*platform-gateway-(.*)\\.(.*):", "renamePattern": "$1:" } } ], "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "$$hashKey": "object:122", "format": "none", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "$$hashKey": "object:123", "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": true, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fieldConfig": { "defaults": { "color": {}, "custom": {}, "links": [], "thresholds": { "mode": "absolute", "steps": [] }, "unit": "none" }, "overrides": [] }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 11, "w": 24, "x": 0, "y": 25 }, "hiddenSeries": false, "id": 48, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": false, "linewidth": 1, "links": [], "nullPointMode": "null", "options": { "alertThreshold": false }, "percentage": false, "pluginVersion": "7.4.5", "pointradius": 2, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "idelta(kong_http_requests_total{route=~\"(.*)$route(.*)\",namespace=~\"$namespace\",instance=~\"$instance\",code=~\"5.*\"}[40s])", "format": "time_series", "interval": "", "intervalFactor": 2, "legendFormat": "{{route}}:{{code}}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Requests with status codes - 5xx", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "transformations": [ { "id": "renameByRegex", "options": { "regex": ".*platform-gateway-(.*)\\.(.*):", "renamePattern": "$1:" } } ], "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "$$hashKey": "object:192", "format": "none", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "$$hashKey": "object:193", "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": true, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fieldConfig": { "defaults": { "color": {}, "custom": {}, "links": [], "thresholds": { "mode": "absolute", "steps": [] }, "unit": "reqps" }, "overrides": [] }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 11, "w": 24, "x": 0, "y": 36 }, "hiddenSeries": false, "id": 50, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": false, "linewidth": 1, "links": [], "nullPointMode": "null", "options": { "alertThreshold": false }, "percentage": false, "pluginVersion": "7.4.5", "pointradius": 2, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "idelta(kong_http_requests_total{route=~\"(.*)$route(.*)\",namespace=~\"$namespace\",instance=~\"$instance\",code!~\"2.*|4.*|5.*\"}[40s])", "format": "time_series", "interval": "", "intervalFactor": 2, "legendFormat": "{{route}}:{{code}}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Requests with status codes - other", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "transformations": [ { "id": "renameByRegex", "options": { "regex": ".*platform-gateway-(.*)\\.(.*):", "renamePattern": "$1:" } } ], "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "$$hashKey": "object:134", "format": "none", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "$$hashKey": "object:135", "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } } ], "title": "Requests by status code", "type": "row" }, { "collapsed": true, "datasource": "Prometheus", "gridPos": { "h": 1, "w": 24, "x": 0, "y": 2 }, "id": 36, "panels": [ { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "graph": false, "legend": false, "tooltip": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "ms" }, "overrides": [] }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 11, "w": 24, "x": 0, "y": 3 }, "hiddenSeries": false, "id": 41, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "options": { "alertThreshold": true, "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi", "sort": "none" }, "tooltipOptions": { "mode": "single" } }, "paceLength": 10, "percentage": false, "pluginVersion": "8.4.5", "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(histogram_quantile(0.95, sum(rate(kong_request_latency_ms_bucket{route=~\"(.*)$route(.*)\",namespace=~\"$namespace\",instance=~\"$instance\"}[1m])) by (route,le)), \"cut_route\", \"$1\", \"route\", \".*platform-gateway-(.*).[0-9][0-9]\")", "format": "time_series", "interval": "", "intervalFactor": 2, "legendFormat": "{{cut_route}} (p95)", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Request Time per Route", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "transformations": [], "type": "timeseries", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "ms", "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": "Prometheus", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "graph": false, "legend": false, "tooltip": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "ms" }, "overrides": [] }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 11, "w": 24, "x": 0, "y": 14 }, "hiddenSeries": false, "id": 42, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "options": { "alertThreshold": true, "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi", "sort": "none" }, "tooltipOptions": { "mode": "single" } }, "paceLength": 10, "percentage": false, "pluginVersion": "8.4.5", "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(histogram_quantile(0.95, sum(rate(kong_kong_latency_ms_bucket{ route=~\"(.*)$route(.*)\",namespace=\"$namespace\",instance=~\"$instance\"}[1m])) by (route,le)), \"cut_route\", \"$1\", \"route\", \".*platform-gateway-(.*).[0-9][0-9]\")", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{cut_route}} (p95)", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Kong Proxy Latency per Route", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "transformations": [], "type": "timeseries", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "ms", "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": "Prometheus", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "graph": false, "legend": false, "tooltip": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "ms" }, "overrides": [] }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 11, "w": 24, "x": 0, "y": 25 }, "height": "250", "hiddenSeries": false, "id": 40, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "options": { "alertThreshold": true, "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi", "sort": "none" }, "tooltipOptions": { "mode": "single" } }, "paceLength": 10, "percentage": false, "pluginVersion": "8.4.5", "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(histogram_quantile(0.95, sum(rate(kong_upstream_latency_ms_bucket{route=~\"(.*)$route(.*)\",namespace=~\"$namespace\",instance=~\"$instance\"}[1m])) by (route,le)), \"cut_route\", \"$1\", \"route\", \".*platform-gateway-(.*).[0-9][0-9]\")", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{cut_route}} (p95)", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Upstream Time across per Route", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "transformations": [], "type": "timeseries", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "ms", "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 } } ], "title": "Latencies", "type": "row" } ], "refresh": "10s", "schemaVersion": 27, "style": "dark", "tags": [], "templating": { "list": [ { "allValue": ".*", "current": {}, "datasource": "Prometheus", "definition": "label_values(kube_pod_info, namespace)", "description": null, "error": null, "hide": 0, "includeAll": false, "label": "namespace", "multi": false, "name": "namespace", "options": [], "query": { "query": "label_values(kube_pod_info, namespace)", "refId": "StandardVariableQuery" }, "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 0, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": ".*", "current": { "selected": false, "text": [ "All" ], "value": [ "$__all" ] }, "datasource": "Prometheus", "definition": "label_values(kong_http_requests_total{namespace=\"$namespace\"},route)", "description": "Ingress", "error": null, "hide": 0, "includeAll": true, "label": "public endpoint", "multi": true, "name": "route", "options": [], "query": { "query": "label_values(kong_http_requests_total{namespace=\"$namespace\"},route)", "refId": "StandardVariableQuery" }, "refresh": 1, "regex": ".*platform-gateway-(.*)\\.(.*)", "skipUrlSync": false, "sort": 1, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": ".*", "current": { "selected": true, "text": [ "All" ], "value": [ "$__all" ] }, "datasource": "Prometheus", "definition": "label_values(kong_nginx_connections_total{namespace=\"$namespace\"},instance)", "description": null, "error": null, "hide": 0, "includeAll": true, "label": "", "multi": true, "name": "instance", "options": [], "query": { "query": "label_values(kong_nginx_connections_total{namespace=\"$namespace\"},instance)", "refId": "StandardVariableQuery" }, "refresh": 2, "regex": ".*", "skipUrlSync": false, "sort": 1, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false } ] }, "time": { "from": "now-24h", "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": "Public API Kong Metrics" }