From 0be447fbc10416de53342fe36774ca8eb3042638 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 16 Sep 2025 17:43:11 +0300 Subject: [PATCH] change metrics dashboard --- nginx-metrics.json | 108 +++++++++++++++++++++++++++++++-------------- 1 file changed, 75 insertions(+), 33 deletions(-) diff --git a/nginx-metrics.json b/nginx-metrics.json index cefe6b5..3485cae 100644 --- a/nginx-metrics.json +++ b/nginx-metrics.json @@ -18,7 +18,7 @@ "type": "prometheus", "uid": "prom" }, - "enable": false, + "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)", @@ -36,7 +36,7 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 43, + "id": 46, "links": [], "panels": [ { @@ -110,9 +110,11 @@ "type": "prometheus", "uid": "prom" }, - "expr": "round(sum(irate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\"}[2m])), 0.001)", + "editorMode": "code", + "expr": "round(sum(irate(nginx_ingress_controller_requests{cluster=~\"$cluster\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\"}[2m])), 0.001)", "format": "time_series", "intervalFactor": 1, + "range": true, "refId": "A", "step": 4 } @@ -191,7 +193,8 @@ "type": "prometheus", "uid": "prom" }, - "expr": "sum(avg_over_time(nginx_ingress_controller_nginx_process_connections{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",state=\"active\"}[2m]))", + "editorMode": "code", + "expr": "sum(avg_over_time(nginx_ingress_controller_nginx_process_connections{cluster=~\"$cluster\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",state=\"active\"}[2m]))", "format": "time_series", "instant": false, "intervalFactor": 1, @@ -277,9 +280,11 @@ "type": "prometheus", "uid": "prom" }, - "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]))", + "editorMode": "code", + "expr": "sum(rate(nginx_ingress_controller_requests{cluster=~\"$cluster\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",status!~\"[4-5].*\"}[2m])) / sum(rate(nginx_ingress_controller_requests{cluster=~\"$cluster\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\"}[2m]))", "format": "time_series", "intervalFactor": 1, + "range": true, "refId": "A", "step": 4 } @@ -359,7 +364,8 @@ "type": "prometheus", "uid": "prom" }, - "expr": "avg(irate(nginx_ingress_controller_success{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[1m])) * 60", + "editorMode": "code", + "expr": "avg(irate(nginx_ingress_controller_success{cluster=~\"$cluster\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[1m])) * 60", "format": "time_series", "instant": false, "intervalFactor": 1, @@ -442,7 +448,8 @@ "type": "prometheus", "uid": "prom" }, - "expr": "count(nginx_ingress_controller_config_last_reload_successful{controller_pod=~\"$controller\",controller_namespace=~\"$namespace\"} == 0)", + "editorMode": "code", + "expr": "count(nginx_ingress_controller_config_last_reload_successful{cluster=~\"$cluster\",controller_pod=~\"$controller\",controller_namespace=~\"$namespace\"} == 0)", "format": "time_series", "instant": true, "intervalFactor": 1, @@ -564,7 +571,8 @@ "type": "prometheus", "uid": "prom" }, - "expr": "round(sum(irate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",exported_namespace=~\"$exported_namespace\",ingress=~\"$ingress\"}[2m])) by (ingress), 0.001)", + "editorMode": "code", + "expr": "round(sum(irate(nginx_ingress_controller_requests{cluster=~\"$cluster\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",exported_namespace=~\"$exported_namespace\",ingress=~\"$ingress\"}[2m])) by (ingress), 0.001)", "format": "time_series", "hide": false, "instant": false, @@ -735,7 +743,8 @@ "type": "prometheus", "uid": "prom" }, - "expr": "sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",exported_namespace=~\"$exported_namespace\",ingress=~\"$ingress\",status!~\"[4-5].*\"}[2m])) by (ingress) / sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",exported_namespace=~\"$exported_namespace\",ingress=~\"$ingress\"}[2m])) by (ingress)", + "editorMode": "code", + "expr": "sum(rate(nginx_ingress_controller_requests{cluster=~\"$cluster\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",exported_namespace=~\"$exported_namespace\",ingress=~\"$ingress\",status!~\"[4-5].*\"}[2m])) by (ingress) / sum(rate(nginx_ingress_controller_requests{cluster=~\"$cluster\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",exported_namespace=~\"$exported_namespace\",ingress=~\"$ingress\"}[2m])) by (ingress)", "format": "time_series", "instant": false, "interval": "10s", @@ -841,7 +850,8 @@ "type": "prometheus", "uid": "prom" }, - "expr": "sum (irate (nginx_ingress_controller_request_size_sum{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m]))", + "editorMode": "code", + "expr": "sum (irate (nginx_ingress_controller_request_size_sum{cluster=~\"$cluster\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m]))", "format": "time_series", "instant": false, "interval": "10s", @@ -856,13 +866,15 @@ "type": "prometheus", "uid": "prom" }, - "expr": "- sum (irate (nginx_ingress_controller_response_size_sum{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m]))", + "editorMode": "code", + "expr": "- sum (irate (nginx_ingress_controller_response_size_sum{cluster=~\"$cluster\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m]))", "format": "time_series", "hide": false, "interval": "10s", "intervalFactor": 1, "legendFormat": "Sent", "metric": "network", + "range": true, "refId": "B", "step": 10 } @@ -1008,7 +1020,8 @@ "type": "prometheus", "uid": "prom" }, - "expr": "avg(nginx_ingress_controller_nginx_process_resident_memory_bytes{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}) ", + "editorMode": "code", + "expr": "avg(nginx_ingress_controller_nginx_process_resident_memory_bytes{cluster=~\"$cluster\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}) ", "format": "time_series", "instant": false, "interval": "10s", @@ -1109,12 +1122,14 @@ "type": "prometheus", "uid": "prom" }, - "expr": "avg (rate (nginx_ingress_controller_nginx_process_cpu_seconds_total{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m])) ", + "editorMode": "code", + "expr": "avg (rate (nginx_ingress_controller_nginx_process_cpu_seconds_total{cluster=~\"$cluster\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m])) ", "format": "time_series", "interval": "10s", "intervalFactor": 1, "legendFormat": "nginx", "metric": "container_cpu", + "range": true, "refId": "A", "step": 10 } @@ -1348,7 +1363,8 @@ "type": "prometheus", "uid": "prom" }, - "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\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le, ingress))", + "editorMode": "code", + "expr": "histogram_quantile(0.50, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{cluster=~\"$cluster\",ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le, ingress))", "format": "table", "hide": false, "instant": true, @@ -1361,7 +1377,8 @@ "type": "prometheus", "uid": "prom" }, - "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\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le, ingress))", + "editorMode": "code", + "expr": "histogram_quantile(0.90, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{cluster=~\"$cluster\",ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le, ingress))", "format": "table", "hide": false, "instant": true, @@ -1374,7 +1391,8 @@ "type": "prometheus", "uid": "prom" }, - "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\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le, ingress))", + "editorMode": "code", + "expr": "histogram_quantile(0.99, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{cluster=~\"$cluster\",ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le, ingress))", "format": "table", "hide": false, "instant": true, @@ -1387,7 +1405,8 @@ "type": "prometheus", "uid": "prom" }, - "expr": "sum(irate(nginx_ingress_controller_request_size_sum{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (ingress)", + "editorMode": "code", + "expr": "sum(irate(nginx_ingress_controller_request_size_sum{cluster=~\"$cluster\",ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (ingress)", "format": "table", "hide": false, "instant": true, @@ -1401,7 +1420,8 @@ "type": "prometheus", "uid": "prom" }, - "expr": "sum(irate(nginx_ingress_controller_response_size_sum{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (ingress)", + "editorMode": "code", + "expr": "sum(irate(nginx_ingress_controller_response_size_sum{cluster=~\"$cluster\",ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (ingress)", "format": "table", "instant": true, "intervalFactor": 1, @@ -1508,8 +1528,9 @@ "type": "prometheus", "uid": "prom" }, + "editorMode": "code", "exemplar": true, - "expr": "histogram_quantile(0.80, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le))", + "expr": "histogram_quantile(0.80, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{cluster=~\"$cluster\",ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le))", "format": "time_series", "hide": false, "instant": false, @@ -1523,8 +1544,9 @@ "type": "prometheus", "uid": "prom" }, + "editorMode": "code", "exemplar": true, - "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\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le))", + "expr": "histogram_quantile(0.90, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{cluster=~\"$cluster\",ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le))", "format": "time_series", "hide": false, "instant": false, @@ -1540,7 +1562,7 @@ }, "editorMode": "code", "exemplar": true, - "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\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le))", + "expr": "histogram_quantile(0.99, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{cluster=~\"$cluster\",ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le))", "format": "time_series", "hide": false, "instant": false, @@ -1626,11 +1648,13 @@ "type": "prometheus", "uid": "prom" }, + "editorMode": "code", "exemplar": true, - "expr": "sum(increase(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le)", + "expr": "sum(increase(nginx_ingress_controller_request_duration_seconds_bucket{cluster=~\"$cluster\",ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le)", "format": "heatmap", "interval": "", "legendFormat": "{{le}}", + "range": true, "refId": "A" } ], @@ -1756,11 +1780,13 @@ "type": "prometheus", "uid": "prom" }, - "expr": "avg(nginx_ingress_controller_ssl_expire_time_seconds{kubernetes_pod_name=~\"$controller\",namespace=~\"$namespace\",ingress=~\"$ingress\"}) by (host) - time()", + "editorMode": "code", + "expr": "avg(nginx_ingress_controller_ssl_expire_time_seconds{cluster=~\"$cluster\",kubernetes_pod_name=~\"$controller\",namespace=~\"$namespace\",ingress=~\"$ingress\"}) by (host) - time()", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ host }}", "metric": "gke_letsencrypt_cert_expiration", + "range": true, "refId": "A", "step": 1 } @@ -1839,12 +1865,16 @@ "type": "prometheus", "uid": "prom" }, - "definition": "", + "definition": "label_values(nginx_ingress_controller_config_hash{namespace=~\"$namespace\", cluster=\"$cluster\"},controller_class)", "includeAll": true, "label": "Controller Class", "name": "controller_class", "options": [], - "query": "label_values(nginx_ingress_controller_config_hash{namespace=~\"$namespace\"}, controller_class) ", + "query": { + "qryType": 1, + "query": "label_values(nginx_ingress_controller_config_hash{namespace=~\"$namespace\", cluster=\"$cluster\"},controller_class)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, "refresh": 1, "regex": "", "type": "query" @@ -1859,12 +1889,16 @@ "type": "prometheus", "uid": "prom" }, - "definition": "", + "definition": "label_values(nginx_ingress_controller_config_hash{namespace=~\"$namespace\", controller_class=~\"$controller_class\", cluster=~\"$cluster\"},controller_pod)", "includeAll": true, "label": "Controller", "name": "controller", "options": [], - "query": "label_values(nginx_ingress_controller_config_hash{namespace=~\"$namespace\",controller_class=~\"$controller_class\"}, controller_pod) ", + "query": { + "qryType": 1, + "query": "label_values(nginx_ingress_controller_config_hash{namespace=~\"$namespace\", controller_class=~\"$controller_class\", cluster=~\"$cluster\"},controller_pod)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, "refresh": 1, "regex": "", "sort": 1, @@ -1880,12 +1914,16 @@ "type": "prometheus", "uid": "prom" }, - "definition": "", + "definition": "label_values(nginx_ingress_controller_requests{namespace=~\"$namespace\", controller_class=~\"$controller_class\", controller_pod=~\"$controller\", cluster=~\"$cluster\"},exported_namespace)", "includeAll": true, "label": "Ingress Namespace", "name": "exported_namespace", "options": [], - "query": "label_values(nginx_ingress_controller_requests{namespace=~\"$namespace\",controller_class=~\"$controller_class\",controller_pod=~\"$controller\"}, exported_namespace) ", + "query": { + "qryType": 1, + "query": "label_values(nginx_ingress_controller_requests{namespace=~\"$namespace\", controller_class=~\"$controller_class\", controller_pod=~\"$controller\", cluster=~\"$cluster\"},exported_namespace)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, "refresh": 1, "regex": "", "sort": 1, @@ -1901,12 +1939,16 @@ "type": "prometheus", "uid": "prom" }, - "definition": "", + "definition": "label_values(nginx_ingress_controller_requests{namespace=~\"$namespace\", controller_class=~\"$controller_class\", controller_pod=~\"$controller\", exported_namespace=~\"$exported_namespace\", cluster=~\"$cluster\"},ingress)", "includeAll": true, "label": "Ingress", "name": "ingress", "options": [], - "query": "label_values(nginx_ingress_controller_requests{namespace=~\"$namespace\",controller_class=~\"$controller_class\",controller_pod=~\"$controller\",exported_namespace=~\"$exported_namespace\"}, ingress) ", + "query": { + "qryType": 1, + "query": "label_values(nginx_ingress_controller_requests{namespace=~\"$namespace\", controller_class=~\"$controller_class\", controller_pod=~\"$controller\", exported_namespace=~\"$exported_namespace\", cluster=~\"$cluster\"},ingress)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, "refresh": 1, "regex": "", "sort": 1, @@ -1934,6 +1976,6 @@ }, "timezone": "browser", "title": "NGINX Ingress controller metrics", - "uid": "nginx-metrics-dashboard", - "version": 2 + "uid": "ec8046db-ingress-metrics", + "version": 6 } \ No newline at end of file