#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": "" # }