Files
homelab/kube-prometheus-stack/templates/nginx-ingress-dashboard.yaml
2022-10-24 16:03:52 -05:00

1505 lines
45 KiB
YAML

#apiVersion: v1
#kind: ConfigMap
#metadata:
# labels:
# grafana_dashboard: "1"
# name: nginx-ingress-dashboard
# namespace: kube-prometheus-stack
#data:
# nginx-ingress-controller_rev1.json: |-
# {
# "annotations": {
# "list": [
# {
# "builtIn": 1,
# "datasource": {
# "type": "datasource",
# "uid": "grafana"
# },
# "enable": true,
# "hide": true,
# "iconColor": "rgba(0, 211, 255, 1)",
# "name": "Annotations & Alerts",
# "target": {
# "limit": 100,
# "matchAny": false,
# "tags": [],
# "type": "dashboard"
# },
# "type": "dashboard"
# },
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "enable": true,
# "expr": "sum(changes(nginx_ingress_controller_config_last_reload_successful_timestamp_seconds{instance!=\"unknown\",controller_class=~\"$controller_class\",namespace=~\"$namespace\"}[30s])) by (controller_class)",
# "hide": false,
# "iconColor": "rgba(255, 96, 96, 1)",
# "limit": 100,
# "name": "Config Reloads",
# "showIn": 0,
# "step": "30s",
# "tagKeys": "controller_class",
# "tags": [],
# "titleFormat": "Config Reloaded",
# "type": "tags"
# }
# ]
# },
# "description": "Ingress-nginx supports a rich collection of prometheus metrics. If you have prometheus and grafana installed on your cluster then prometheus will already be scraping this data due to the scrape annotation on the deployment.",
# "editable": true,
# "fiscalYearStartMonth": 0,
# "gnetId": 9614,
# "graphTooltip": 0,
# "id": 27,
# "links": [],
# "liveNow": false,
# "panels": [
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "fieldConfig": {
# "defaults": {
# "color": {
# "fixedColor": "rgb(31, 120, 193)",
# "mode": "fixed"
# },
# "mappings": [
# {
# "options": {
# "match": "null",
# "result": {
# "text": "N/A"
# }
# },
# "type": "special"
# }
# ],
# "thresholds": {
# "mode": "absolute",
# "steps": [
# {
# "color": "green",
# "value": null
# },
# {
# "color": "red",
# "value": 80
# }
# ]
# },
# "unit": "ops"
# },
# "overrides": []
# },
# "id": 20,
# "links": [],
# "maxDataPoints": 100,
# "options": {
# "colorMode": "none",
# "graphMode": "area",
# "justifyMode": "auto",
# "orientation": "horizontal",
# "reduceOptions": {
# "calcs": [
# "mean"
# ],
# "fields": "",
# "values": false
# },
# "textMode": "auto"
# },
# "pluginVersion": "9.1.6",
# "targets": [
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "round(sum(irate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\"}[2m])), 0.001)",
# "format": "time_series",
# "intervalFactor": 1,
# "refId": "A",
# "step": 4
# }
# ],
# "title": "Controller Request Volume",
# "type": "stat"
# },
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "fieldConfig": {
# "defaults": {
# "color": {
# "fixedColor": "rgb(31, 120, 193)",
# "mode": "fixed"
# },
# "mappings": [
# {
# "options": {
# "match": "null",
# "result": {
# "text": "N/A"
# }
# },
# "type": "special"
# }
# ],
# "thresholds": {
# "mode": "absolute",
# "steps": [
# {
# "color": "green",
# "value": null
# },
# {
# "color": "red",
# "value": 80
# }
# ]
# },
# "unit": "none"
# },
# "overrides": []
# },
# "gridPos": {
# "h": 3,
# "w": 6,
# "x": 6,
# "y": 0
# },
# "id": 82,
# "links": [],
# "maxDataPoints": 100,
# "options": {
# "colorMode": "none",
# "graphMode": "area",
# "justifyMode": "auto",
# "orientation": "horizontal",
# "reduceOptions": {
# "calcs": [
# "mean"
# ],
# "fields": "",
# "values": false
# },
# "textMode": "auto"
# },
# "pluginVersion": "9.1.6",
# "targets": [
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "sum(avg_over_time(nginx_ingress_controller_nginx_process_connections{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m]))",
# "format": "time_series",
# "instant": false,
# "intervalFactor": 1,
# "refId": "A",
# "step": 4
# }
# ],
# "title": "Controller Connections",
# "type": "stat"
# },
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "fieldConfig": {
# "defaults": {
# "color": {
# "fixedColor": "rgb(31, 120, 193)",
# "mode": "fixed"
# },
# "mappings": [
# {
# "options": {
# "match": "null",
# "result": {
# "text": "N/A"
# }
# },
# "type": "special"
# }
# ],
# "thresholds": {
# "mode": "absolute",
# "steps": [
# {
# "color": "rgba(245, 54, 54, 0.9)",
# "value": null
# },
# {
# "color": "rgba(237, 129, 40, 0.89)",
# "value": 95
# },
# {
# "color": "rgba(50, 172, 45, 0.97)",
# "value": 99
# }
# ]
# },
# "unit": "percentunit"
# },
# "overrides": []
# },
# "gridPos": {
# "h": 3,
# "w": 6,
# "x": 12,
# "y": 0
# },
# "id": 21,
# "links": [],
# "maxDataPoints": 100,
# "options": {
# "colorMode": "none",
# "graphMode": "area",
# "justifyMode": "auto",
# "orientation": "horizontal",
# "reduceOptions": {
# "calcs": [
# "mean"
# ],
# "fields": "",
# "values": false
# },
# "textMode": "auto"
# },
# "pluginVersion": "9.1.6",
# "targets": [
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",status!~\"[4-5].*\"}[2m])) / sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\"}[2m]))",
# "format": "time_series",
# "intervalFactor": 1,
# "refId": "A",
# "step": 4
# }
# ],
# "title": "Controller Success Rate (non-4|5xx responses)",
# "type": "stat"
# },
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "fieldConfig": {
# "defaults": {
# "color": {
# "fixedColor": "rgb(31, 120, 193)",
# "mode": "fixed"
# },
# "decimals": 0,
# "mappings": [
# {
# "options": {
# "match": "null",
# "result": {
# "text": "N/A"
# }
# },
# "type": "special"
# }
# ],
# "thresholds": {
# "mode": "absolute",
# "steps": [
# {
# "color": "green",
# "value": null
# },
# {
# "color": "red",
# "value": 80
# }
# ]
# },
# "unit": "none"
# },
# "overrides": []
# },
# "gridPos": {
# "h": 3,
# "w": 3,
# "x": 18,
# "y": 0
# },
# "id": 81,
# "links": [],
# "maxDataPoints": 100,
# "options": {
# "colorMode": "none",
# "graphMode": "area",
# "justifyMode": "auto",
# "orientation": "horizontal",
# "reduceOptions": {
# "calcs": [
# "mean"
# ],
# "fields": "",
# "values": false
# },
# "textMode": "auto"
# },
# "pluginVersion": "9.1.6",
# "targets": [
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "avg(nginx_ingress_controller_success{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"})",
# "format": "time_series",
# "instant": true,
# "intervalFactor": 1,
# "refId": "A",
# "step": 4
# }
# ],
# "title": "Config Reloads",
# "type": "stat"
# },
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "fieldConfig": {
# "defaults": {
# "color": {
# "fixedColor": "rgb(31, 120, 193)",
# "mode": "fixed"
# },
# "decimals": 0,
# "mappings": [
# {
# "options": {
# "match": "null",
# "result": {
# "text": "N/A"
# }
# },
# "type": "special"
# }
# ],
# "thresholds": {
# "mode": "absolute",
# "steps": [
# {
# "color": "green",
# "value": null
# },
# {
# "color": "red",
# "value": 80
# }
# ]
# },
# "unit": "none"
# },
# "overrides": []
# },
# "gridPos": {
# "h": 3,
# "w": 3,
# "x": 21,
# "y": 0
# },
# "id": 83,
# "links": [],
# "maxDataPoints": 100,
# "options": {
# "colorMode": "none",
# "graphMode": "area",
# "justifyMode": "auto",
# "orientation": "horizontal",
# "reduceOptions": {
# "calcs": [
# "mean"
# ],
# "fields": "",
# "values": false
# },
# "textMode": "auto"
# },
# "pluginVersion": "9.1.6",
# "targets": [
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "count(nginx_ingress_controller_config_last_reload_successful{controller_pod=~\"$controller\",controller_namespace=~\"$namespace\"} == 0)",
# "format": "time_series",
# "instant": true,
# "intervalFactor": 1,
# "refId": "A",
# "step": 4
# }
# ],
# "title": "Last Config Failed",
# "type": "stat"
# },
# {
# "aliasColors": {},
# "bars": false,
# "dashLength": 10,
# "dashes": false,
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "decimals": 2,
# "editable": true,
# "error": false,
# "fill": 1,
# "fillGradient": 0,
# "grid": {},
# "gridPos": {
# "h": 7,
# "w": 12,
# "x": 0,
# "y": 3
# },
# "height": "200px",
# "hiddenSeries": false,
# "id": 86,
# "isNew": true,
# "legend": {
# "alignAsTable": true,
# "avg": true,
# "current": false,
# "hideEmpty": false,
# "hideZero": true,
# "max": false,
# "min": false,
# "rightSide": true,
# "show": true,
# "sideWidth": 300,
# "sort": "current",
# "sortDesc": true,
# "total": false,
# "values": true
# },
# "lines": true,
# "linewidth": 2,
# "links": [],
# "nullPointMode": "connected",
# "options": {
# "alertThreshold": true
# },
# "percentage": false,
# "pluginVersion": "9.1.6",
# "pointradius": 5,
# "points": false,
# "renderer": "flot",
# "repeatDirection": "h",
# "seriesOverrides": [],
# "spaceLength": 10,
# "stack": false,
# "steppedLine": false,
# "targets": [
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "round(sum(irate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (ingress), 0.001)",
# "format": "time_series",
# "hide": false,
# "instant": false,
# "interval": "",
# "intervalFactor": 1,
# "legendFormat": "{{ ingress }}",
# "metric": "network",
# "refId": "A",
# "step": 10
# }
# ],
# "thresholds": [],
# "timeRegions": [],
# "title": "Ingress Request Volume",
# "tooltip": {
# "msResolution": false,
# "shared": true,
# "sort": 2,
# "value_type": "cumulative"
# },
# "type": "graph",
# "xaxis": {
# "mode": "time",
# "show": true,
# "values": []
# },
# "yaxes": [
# {
# "format": "reqps",
# "logBase": 1,
# "show": true
# },
# {
# "format": "Bps",
# "logBase": 1,
# "show": false
# }
# ],
# "yaxis": {
# "align": false
# }
# },
# {
# "aliasColors": {
# "max - istio-proxy": "#890f02",
# "max - master": "#bf1b00",
# "max - prometheus": "#bf1b00"
# },
# "bars": false,
# "dashLength": 10,
# "dashes": false,
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "decimals": 2,
# "editable": false,
# "error": false,
# "fill": 0,
# "fillGradient": 0,
# "grid": {},
# "gridPos": {
# "h": 7,
# "w": 12,
# "x": 12,
# "y": 3
# },
# "hiddenSeries": false,
# "id": 87,
# "isNew": true,
# "legend": {
# "alignAsTable": true,
# "avg": true,
# "current": false,
# "hideEmpty": true,
# "hideZero": false,
# "max": false,
# "min": false,
# "rightSide": true,
# "show": true,
# "sideWidth": 300,
# "sort": "avg",
# "sortDesc": true,
# "total": false,
# "values": true
# },
# "lines": true,
# "linewidth": 2,
# "links": [],
# "nullPointMode": "connected",
# "options": {
# "alertThreshold": true
# },
# "percentage": false,
# "pluginVersion": "9.1.6",
# "pointradius": 5,
# "points": false,
# "renderer": "flot",
# "seriesOverrides": [],
# "spaceLength": 10,
# "stack": false,
# "steppedLine": false,
# "targets": [
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",ingress=~\"$ingress\",status!~\"[4-5].*\"}[2m])) by (ingress) / sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (ingress)",
# "format": "time_series",
# "instant": false,
# "interval": "10s",
# "intervalFactor": 1,
# "legendFormat": "{{ ingress }}",
# "metric": "container_memory_usage:sort_desc",
# "refId": "A",
# "step": 10
# }
# ],
# "thresholds": [],
# "timeRegions": [],
# "title": "Ingress Success Rate (non-4|5xx responses)",
# "tooltip": {
# "msResolution": false,
# "shared": true,
# "sort": 1,
# "value_type": "cumulative"
# },
# "type": "graph",
# "xaxis": {
# "mode": "time",
# "show": true,
# "values": []
# },
# "yaxes": [
# {
# "format": "percentunit",
# "logBase": 1,
# "show": true
# },
# {
# "format": "short",
# "logBase": 1,
# "show": false
# }
# ],
# "yaxis": {
# "align": false
# }
# },
# {
# "aliasColors": {},
# "bars": false,
# "dashLength": 10,
# "dashes": false,
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "decimals": 2,
# "editable": true,
# "error": false,
# "fill": 1,
# "fillGradient": 0,
# "grid": {},
# "gridPos": {
# "h": 6,
# "w": 8,
# "x": 0,
# "y": 10
# },
# "height": "200px",
# "hiddenSeries": false,
# "id": 32,
# "isNew": true,
# "legend": {
# "alignAsTable": false,
# "avg": true,
# "current": true,
# "max": false,
# "min": false,
# "rightSide": false,
# "show": false,
# "sideWidth": 200,
# "sort": "current",
# "sortDesc": true,
# "total": false,
# "values": true
# },
# "lines": true,
# "linewidth": 2,
# "links": [],
# "nullPointMode": "connected",
# "options": {
# "alertThreshold": true
# },
# "percentage": false,
# "pluginVersion": "9.1.6",
# "pointradius": 5,
# "points": false,
# "renderer": "flot",
# "seriesOverrides": [],
# "spaceLength": 10,
# "stack": false,
# "steppedLine": false,
# "targets": [
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "sum (irate (nginx_ingress_controller_request_size_sum{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m]))",
# "format": "time_series",
# "instant": false,
# "interval": "10s",
# "intervalFactor": 1,
# "legendFormat": "Received",
# "metric": "network",
# "refId": "A",
# "step": 10
# },
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "- sum (irate (nginx_ingress_controller_response_size_sum{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m]))",
# "format": "time_series",
# "hide": false,
# "interval": "10s",
# "intervalFactor": 1,
# "legendFormat": "Sent",
# "metric": "network",
# "refId": "B",
# "step": 10
# }
# ],
# "thresholds": [],
# "timeRegions": [],
# "title": "Network I/O pressure",
# "tooltip": {
# "msResolution": false,
# "shared": true,
# "sort": 0,
# "value_type": "cumulative"
# },
# "type": "graph",
# "xaxis": {
# "mode": "time",
# "show": true,
# "values": []
# },
# "yaxes": [
# {
# "format": "Bps",
# "logBase": 1,
# "show": true
# },
# {
# "format": "Bps",
# "logBase": 1,
# "show": false
# }
# ],
# "yaxis": {
# "align": false
# }
# },
# {
# "aliasColors": {
# "max - istio-proxy": "#890f02",
# "max - master": "#bf1b00",
# "max - prometheus": "#bf1b00"
# },
# "bars": false,
# "dashLength": 10,
# "dashes": false,
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "decimals": 2,
# "editable": false,
# "error": false,
# "fill": 0,
# "fillGradient": 0,
# "grid": {},
# "gridPos": {
# "h": 6,
# "w": 8,
# "x": 8,
# "y": 10
# },
# "hiddenSeries": false,
# "id": 77,
# "isNew": true,
# "legend": {
# "alignAsTable": true,
# "avg": true,
# "current": true,
# "max": false,
# "min": false,
# "rightSide": false,
# "show": false,
# "sideWidth": 200,
# "sort": "current",
# "sortDesc": true,
# "total": false,
# "values": true
# },
# "lines": true,
# "linewidth": 2,
# "links": [],
# "nullPointMode": "connected",
# "options": {
# "alertThreshold": true
# },
# "percentage": false,
# "pluginVersion": "9.1.6",
# "pointradius": 5,
# "points": false,
# "renderer": "flot",
# "seriesOverrides": [],
# "spaceLength": 10,
# "stack": false,
# "steppedLine": false,
# "targets": [
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "avg(nginx_ingress_controller_nginx_process_resident_memory_bytes{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}) ",
# "format": "time_series",
# "instant": false,
# "interval": "10s",
# "intervalFactor": 1,
# "legendFormat": "nginx",
# "metric": "container_memory_usage:sort_desc",
# "refId": "A",
# "step": 10
# }
# ],
# "thresholds": [],
# "timeRegions": [],
# "title": "Average Memory Usage",
# "tooltip": {
# "msResolution": false,
# "shared": true,
# "sort": 2,
# "value_type": "cumulative"
# },
# "type": "graph",
# "xaxis": {
# "mode": "time",
# "show": true,
# "values": []
# },
# "yaxes": [
# {
# "format": "bytes",
# "logBase": 1,
# "show": true
# },
# {
# "format": "short",
# "logBase": 1,
# "show": false
# }
# ],
# "yaxis": {
# "align": false
# }
# },
# {
# "aliasColors": {
# "max - istio-proxy": "#890f02",
# "max - master": "#bf1b00"
# },
# "bars": false,
# "dashLength": 10,
# "dashes": false,
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "decimals": 3,
# "editable": false,
# "error": false,
# "fill": 0,
# "fillGradient": 0,
# "grid": {},
# "gridPos": {
# "h": 6,
# "w": 8,
# "x": 16,
# "y": 10
# },
# "height": "",
# "hiddenSeries": false,
# "id": 79,
# "isNew": true,
# "legend": {
# "alignAsTable": true,
# "avg": true,
# "current": true,
# "max": false,
# "min": false,
# "rightSide": false,
# "show": false,
# "total": false,
# "values": true
# },
# "lines": true,
# "linewidth": 2,
# "links": [],
# "nullPointMode": "connected",
# "options": {
# "alertThreshold": true
# },
# "percentage": false,
# "pluginVersion": "9.1.6",
# "pointradius": 5,
# "points": false,
# "renderer": "flot",
# "seriesOverrides": [],
# "spaceLength": 10,
# "stack": false,
# "steppedLine": false,
# "targets": [
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "sum (rate (nginx_ingress_controller_nginx_process_cpu_seconds_total{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m])) ",
# "format": "time_series",
# "interval": "10s",
# "intervalFactor": 1,
# "legendFormat": "nginx",
# "metric": "container_cpu",
# "refId": "A",
# "step": 10
# }
# ],
# "thresholds": [
# {
# "colorMode": "critical",
# "fill": true,
# "line": true,
# "op": "gt"
# }
# ],
# "timeRegions": [],
# "title": "Average CPU Usage",
# "tooltip": {
# "msResolution": true,
# "shared": true,
# "sort": 2,
# "value_type": "cumulative"
# },
# "type": "graph",
# "xaxis": {
# "mode": "time",
# "show": true,
# "values": []
# },
# "yaxes": [
# {
# "format": "none",
# "label": "cores",
# "logBase": 1,
# "show": true
# },
# {
# "format": "short",
# "logBase": 1,
# "show": true
# }
# ],
# "yaxis": {
# "align": false
# }
# },
# {
# "columns": [],
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "fontSize": "100%",
# "gridPos": {
# "h": 8,
# "w": 24,
# "x": 0,
# "y": 16
# },
# "hideTimeOverride": false,
# "id": 75,
# "links": [],
# "pageSize": 7,
# "repeatDirection": "h",
# "scroll": true,
# "showHeader": true,
# "sort": {
# "col": 1,
# "desc": true
# },
# "styles": [
# {
# "alias": "Ingress",
# "align": "auto",
# "colors": [
# "rgba(245, 54, 54, 0.9)",
# "rgba(237, 129, 40, 0.89)",
# "rgba(50, 172, 45, 0.97)"
# ],
# "dateFormat": "YYYY-MM-DD HH:mm:ss",
# "decimals": 2,
# "pattern": "ingress",
# "preserveFormat": false,
# "sanitize": false,
# "thresholds": [],
# "type": "string",
# "unit": "short"
# },
# {
# "alias": "Requests",
# "align": "auto",
# "colors": [
# "rgba(245, 54, 54, 0.9)",
# "rgba(237, 129, 40, 0.89)",
# "rgba(50, 172, 45, 0.97)"
# ],
# "dateFormat": "YYYY-MM-DD HH:mm:ss",
# "decimals": 2,
# "pattern": "Value #A",
# "thresholds": [
# ""
# ],
# "type": "number",
# "unit": "ops"
# },
# {
# "alias": "Errors",
# "align": "auto",
# "colors": [
# "rgba(245, 54, 54, 0.9)",
# "rgba(237, 129, 40, 0.89)",
# "rgba(50, 172, 45, 0.97)"
# ],
# "dateFormat": "YYYY-MM-DD HH:mm:ss",
# "decimals": 2,
# "pattern": "Value #B",
# "thresholds": [],
# "type": "number",
# "unit": "ops"
# },
# {
# "alias": "P50 Latency",
# "align": "auto",
# "colors": [
# "rgba(245, 54, 54, 0.9)",
# "rgba(237, 129, 40, 0.89)",
# "rgba(50, 172, 45, 0.97)"
# ],
# "dateFormat": "YYYY-MM-DD HH:mm:ss",
# "decimals": 0,
# "link": false,
# "pattern": "Value #C",
# "thresholds": [],
# "type": "number",
# "unit": "dtdurations"
# },
# {
# "alias": "P90 Latency",
# "align": "auto",
# "colors": [
# "rgba(245, 54, 54, 0.9)",
# "rgba(237, 129, 40, 0.89)",
# "rgba(50, 172, 45, 0.97)"
# ],
# "dateFormat": "YYYY-MM-DD HH:mm:ss",
# "decimals": 0,
# "pattern": "Value #D",
# "thresholds": [],
# "type": "number",
# "unit": "dtdurations"
# },
# {
# "alias": "P99 Latency",
# "align": "auto",
# "colors": [
# "rgba(245, 54, 54, 0.9)",
# "rgba(237, 129, 40, 0.89)",
# "rgba(50, 172, 45, 0.97)"
# ],
# "dateFormat": "YYYY-MM-DD HH:mm:ss",
# "decimals": 0,
# "pattern": "Value #E",
# "thresholds": [],
# "type": "number",
# "unit": "dtdurations"
# },
# {
# "alias": "IN",
# "align": "auto",
# "colors": [
# "rgba(245, 54, 54, 0.9)",
# "rgba(237, 129, 40, 0.89)",
# "rgba(50, 172, 45, 0.97)"
# ],
# "dateFormat": "YYYY-MM-DD HH:mm:ss",
# "decimals": 2,
# "pattern": "Value #F",
# "thresholds": [
# ""
# ],
# "type": "number",
# "unit": "Bps"
# },
# {
# "alias": "",
# "align": "auto",
# "colors": [
# "rgba(245, 54, 54, 0.9)",
# "rgba(237, 129, 40, 0.89)",
# "rgba(50, 172, 45, 0.97)"
# ],
# "dateFormat": "YYYY-MM-DD HH:mm:ss",
# "decimals": 2,
# "pattern": "Time",
# "thresholds": [],
# "type": "hidden",
# "unit": "short"
# },
# {
# "alias": "OUT",
# "align": "auto",
# "colors": [
# "rgba(245, 54, 54, 0.9)",
# "rgba(237, 129, 40, 0.89)",
# "rgba(50, 172, 45, 0.97)"
# ],
# "dateFormat": "YYYY-MM-DD HH:mm:ss",
# "decimals": 2,
# "mappingType": 1,
# "pattern": "Value #G",
# "thresholds": [],
# "type": "number",
# "unit": "Bps"
# }
# ],
# "targets": [
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "histogram_quantile(0.50, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le, ingress))",
# "format": "table",
# "hide": false,
# "instant": true,
# "intervalFactor": 1,
# "legendFormat": "{{ ingress }}",
# "refId": "C"
# },
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "histogram_quantile(0.90, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le, ingress))",
# "format": "table",
# "hide": false,
# "instant": true,
# "intervalFactor": 1,
# "legendFormat": "{{ ingress }}",
# "refId": "D"
# },
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "histogram_quantile(0.99, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le, ingress))",
# "format": "table",
# "hide": false,
# "instant": true,
# "intervalFactor": 1,
# "legendFormat": "{{ destination_service }}",
# "refId": "E"
# },
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "sum(irate(nginx_ingress_controller_request_size_sum{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (ingress)",
# "format": "table",
# "hide": false,
# "instant": true,
# "interval": "",
# "intervalFactor": 1,
# "legendFormat": "{{ ingress }}",
# "refId": "F"
# },
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "sum(irate(nginx_ingress_controller_response_size_sum{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (ingress)",
# "format": "table",
# "instant": true,
# "intervalFactor": 1,
# "legendFormat": "{{ ingress }}",
# "refId": "G"
# }
# ],
# "title": "Ingress Percentile Response Times and Transfer Rates",
# "transform": "table",
# "type": "table-old"
# },
# {
# "columns": [
# {
# "text": "Current",
# "value": "current"
# }
# ],
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "fontSize": "100%",
# "gridPos": {
# "h": 8,
# "w": 24,
# "x": 0,
# "y": 24
# },
# "height": "1024",
# "id": 85,
# "links": [],
# "pageSize": 7,
# "scroll": true,
# "showHeader": true,
# "sort": {
# "col": 1,
# "desc": false
# },
# "styles": [
# {
# "alias": "Time",
# "align": "auto",
# "dateFormat": "YYYY-MM-DD HH:mm:ss",
# "pattern": "Time",
# "type": "date"
# },
# {
# "alias": "TTL",
# "align": "auto",
# "colorMode": "cell",
# "colors": [
# "rgba(245, 54, 54, 0.9)",
# "rgba(237, 129, 40, 0.89)",
# "rgba(50, 172, 45, 0.97)"
# ],
# "dateFormat": "YYYY-MM-DD HH:mm:ss",
# "decimals": 0,
# "pattern": "Current",
# "thresholds": [
# "0",
# "691200"
# ],
# "type": "number",
# "unit": "s"
# },
# {
# "alias": "",
# "align": "auto",
# "colors": [
# "rgba(245, 54, 54, 0.9)",
# "rgba(237, 129, 40, 0.89)",
# "rgba(50, 172, 45, 0.97)"
# ],
# "decimals": 2,
# "pattern": "/.*/",
# "thresholds": [],
# "type": "number",
# "unit": "short"
# }
# ],
# "targets": [
# {
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "expr": "avg(nginx_ingress_controller_ssl_expire_time_seconds{kubernetes_pod_name=~\"$controller\",namespace=~\"$namespace\",ingress=~\"$ingress\"}) by (host) - time()",
# "format": "time_series",
# "intervalFactor": 1,
# "legendFormat": "{{ host }}",
# "metric": "gke_letsencrypt_cert_expiration",
# "refId": "A",
# "step": 1
# }
# ],
# "title": "Ingress Certificate Expiry",
# "transform": "timeseries_aggregations",
# "type": "table-old"
# }
# ],
# "refresh": "5s",
# "schemaVersion": 37,
# "style": "dark",
# "tags": [
# "nginx"
# ],
# "templating": {
# "list": [
# {
# "allValue": ".*",
# "current": {
# "selected": false,
# "text": "All",
# "value": "$__all"
# },
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "definition": "",
# "hide": 0,
# "includeAll": true,
# "label": "Namespace",
# "multi": false,
# "name": "namespace",
# "options": [],
# "query": {
# "query": "label_values(nginx_ingress_controller_config_hash, controller_namespace)",
# "refId": "Prometheus-namespace-Variable-Query"
# },
# "refresh": 1,
# "regex": "",
# "skipUrlSync": false,
# "sort": 0,
# "tagValuesQuery": "",
# "tagsQuery": "",
# "type": "query",
# "useTags": false
# },
# {
# "allValue": ".*",
# "current": {
# "selected": false,
# "text": "All",
# "value": "$__all"
# },
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "definition": "",
# "hide": 0,
# "includeAll": true,
# "label": "Controller Class",
# "multi": false,
# "name": "controller_class",
# "options": [],
# "query": {
# "query": "label_values(nginx_ingress_controller_config_hash{namespace=~\"$namespace\"}, controller_class) ",
# "refId": "Prometheus-controller_class-Variable-Query"
# },
# "refresh": 1,
# "regex": "",
# "skipUrlSync": false,
# "sort": 0,
# "tagValuesQuery": "",
# "tagsQuery": "",
# "type": "query",
# "useTags": false
# },
# {
# "allValue": ".*",
# "current": {
# "selected": false,
# "text": "All",
# "value": "$__all"
# },
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "definition": "",
# "hide": 0,
# "includeAll": true,
# "label": "Controller",
# "multi": false,
# "name": "controller",
# "options": [],
# "query": {
# "query": "label_values(nginx_ingress_controller_config_hash{namespace=~\"$namespace\",controller_class=~\"$controller_class\"}, controller_pod) ",
# "refId": "Prometheus-controller-Variable-Query"
# },
# "refresh": 1,
# "regex": "",
# "skipUrlSync": false,
# "sort": 0,
# "tagValuesQuery": "",
# "tagsQuery": "",
# "type": "query",
# "useTags": false
# },
# {
# "allValue": ".*",
# "current": {
# "selected": false,
# "text": "All",
# "value": "$__all"
# },
# "datasource": {
# "type": "prometheus",
# "uid": "prometheus"
# },
# "definition": "",
# "hide": 0,
# "includeAll": true,
# "label": "Ingress",
# "multi": false,
# "name": "ingress",
# "options": [],
# "query": {
# "query": "label_values(nginx_ingress_controller_requests{namespace=~\"$namespace\",controller_class=~\"$controller_class\",controller=~\"$controller\"}, ingress) ",
# "refId": "Prometheus-ingress-Variable-Query"
# },
# "refresh": 1,
# "regex": "",
# "skipUrlSync": false,
# "sort": 2,
# "tagValuesQuery": "",
# "tagsQuery": "",
# "type": "query",
# "useTags": false
# }
# ]
# },
# "time": {
# "from": "now-1h",
# "to": "now"
# },
# "timepicker": {
# "refresh_intervals": [
# "5s",
# "10s",
# "30s",
# "2m",
# "5m",
# "15m",
# "30m",
# "1h",
# "2h",
# "1d"
# ],
# "time_options": [
# "5m",
# "15m",
# "1h",
# "6h",
# "12h",
# "24h",
# "2d",
# "7d",
# "30d"
# ]
# },
# "timezone": "browser",
# "title": "NGINX Ingress controller",
# "uid": "nginx",
# "version": 1,
# "weekStart": ""
# }