From d69d40f764682872104137124dfa99bb8c7f9601 Mon Sep 17 00:00:00 2001 From: Floris Feddema Date: Thu, 30 Jul 2026 15:42:41 +0200 Subject: [PATCH 1/2] Add tls certificate expiration to the Envoy Global dashboard Signed-off-by: Floris Feddema --- .../dashboards/envoy-proxy-global.json | 145 +++++++++++++++++- 1 file changed, 144 insertions(+), 1 deletion(-) diff --git a/charts/gateway-addons-helm/dashboards/envoy-proxy-global.json b/charts/gateway-addons-helm/dashboards/envoy-proxy-global.json index 99522ae061..cb25828118 100644 --- a/charts/gateway-addons-helm/dashboards/envoy-proxy-global.json +++ b/charts/gateway-addons-helm/dashboards/envoy-proxy-global.json @@ -2886,6 +2886,149 @@ ], "title": "Unhealthy Endpoints", "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 59 + }, + "id": 44, + "panels": [], + "title": "TLS Certificates", + "type": "row" + }, + { + "datasource": { + "uid": "$datasource" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "cellOptions": { + "type": "auto" + }, + "filterable": false, + "inspect": false + }, + "decimals": 1, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": 0 + }, + { + "color": "yellow", + "value": 7 + }, + { + "color": "green", + "value": 30 + } + ] + }, + "unit": "none" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "TTL (days)" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "type": "color-background" + } + }, + { + "id": "custom.width", + "value": 200 + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 60 + }, + "id": 45, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true, + "sortBy": [ + { + "desc": false, + "displayName": "TTL (days)" + } + ] + }, + "pluginVersion": "10.0.2", + "targets": [ + { + "datasource": { + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "(min by (envoy_tls_certificate) (envoy_listener_ssl_certificate_expiration_unix_time_seconds) - time()) / 86400", + "format": "table", + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "A" + } + ], + "title": "TLS Certificate Expiry", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "__name__": true, + "instance": true, + "job": true, + "pod": true, + "endpoint": true, + "namespace": true, + "container": true, + "service": true, + "node": true, + "envoy_listener_address": true, + "prometheus": true + }, + "indexByName": { + "envoy_tls_certificate": 0, + "Value": 99 + }, + "renameByName": { + "Value": "TTL (days)", + "envoy_tls_certificate": "Certificate" + } + } + } + ], + "type": "table" } ], "refresh": "10s", @@ -2979,4 +3122,4 @@ "uid": "heHhNSFf6Na8vIZWRs8H", "version": 1, "weekStart": "" -} \ No newline at end of file +} From 6822a3c9fc93da687756c33d305fcfb7ab7ea49c Mon Sep 17 00:00:00 2001 From: Floris Feddema Date: Fri, 31 Jul 2026 13:47:43 +0200 Subject: [PATCH 2/2] add namespace filter Signed-off-by: Floris Feddema --- charts/gateway-addons-helm/dashboards/envoy-proxy-global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/gateway-addons-helm/dashboards/envoy-proxy-global.json b/charts/gateway-addons-helm/dashboards/envoy-proxy-global.json index cb25828118..4c4ca9b486 100644 --- a/charts/gateway-addons-helm/dashboards/envoy-proxy-global.json +++ b/charts/gateway-addons-helm/dashboards/envoy-proxy-global.json @@ -2916,7 +2916,7 @@ "filterable": false, "inspect": false }, - "decimals": 1, + "decimals": 0, "mappings": [], "thresholds": { "mode": "absolute", @@ -2990,7 +2990,7 @@ "uid": "$datasource" }, "editorMode": "code", - "expr": "(min by (envoy_tls_certificate) (envoy_listener_ssl_certificate_expiration_unix_time_seconds) - time()) / 86400", + "expr": "min by (envoy_tls_certificate) ((envoy_listener_ssl_certificate_expiration_unix_time_seconds{namespace=~\"$Namespace\"} - time()) / 86400)", "format": "table", "instant": true, "legendFormat": "__auto",