From 5aa974270c4ee9752ec6bb99d78730a3ad709b57 Mon Sep 17 00:00:00 2001 From: anant-shipit Date: Fri, 17 Jul 2026 18:39:56 +0530 Subject: [PATCH 1/3] feat(dashboard): set Dependency Latency visualization to Heatmap (Fixes #97) --- .../watchdog_metrics_dashboard.json | 59 ++++++++++++++++++- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/grafana/dashboards/watchdog_metrics_dashboard.json b/grafana/dashboards/watchdog_metrics_dashboard.json index 9929e794..33d4d8f5 100644 --- a/grafana/dashboards/watchdog_metrics_dashboard.json +++ b/grafana/dashboards/watchdog_metrics_dashboard.json @@ -134,7 +134,22 @@ "datasource": { "name": "Prometheus" }, - "description": "Metrics: http_outgoing_request_duration_seconds\nQuestion answered: \"Are external dependencies becoming slow?\"", + "description": "Metrics: http_outgoing_request_duration_seconds\nQuestion answered: \"Are external dependencies becoming slow?\"\n\nVisualization: Heatmap\nRationale: Latency is a distribution, not a single average. A heatmap visualizes the distribution of request durations over time, making it easy to instantly spot bimodal patterns and long-tail outliers (like degraded downstream servers) that a simple line chart would compress or hide.", + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + } + }, + "overrides": [] + }, "gridPos": { "h": 8, "w": 12, @@ -142,9 +157,47 @@ "y": 1 }, "id": 102, + "options": { + "calculate": true, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": false, + "scale": "exponential", + "scheme": "Oranges", + "steps": 64 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": true + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false, + "unit": "s" + } + }, + "pluginVersion": "13.0.2", "targets": [ { - "expr": "http_outgoing_request_duration_seconds_sum", + "expr": "sum(rate(http_outgoing_request_duration_seconds_bucket{url=~\".*\"}[5m])) by (le)", + "format": "heatmap", + "legendFormat": "{{le}}", "refId": "A", "datasource": { "name": "Prometheus" @@ -152,7 +205,7 @@ } ], "title": "1.2 Dependency Latency", - "type": "timeseries" + "type": "heatmap" }, { "collapsed": false, From d93c50188aba5f24314557b9d74a69dd22ece872 Mon Sep 17 00:00:00 2001 From: Anant Singh Rathore Date: Sun, 2 Aug 2026 15:33:11 +0530 Subject: [PATCH 2/3] Update grafana/dashboards/watchdog_metrics_dashboard.json Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- grafana/dashboards/watchdog_metrics_dashboard.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grafana/dashboards/watchdog_metrics_dashboard.json b/grafana/dashboards/watchdog_metrics_dashboard.json index 33d4d8f5..98d9c57a 100644 --- a/grafana/dashboards/watchdog_metrics_dashboard.json +++ b/grafana/dashboards/watchdog_metrics_dashboard.json @@ -195,7 +195,7 @@ "pluginVersion": "13.0.2", "targets": [ { - "expr": "sum(rate(http_outgoing_request_duration_seconds_bucket{url=~\".*\"}[5m])) by (le)", + "expr": "sum(rate(http_outgoing_request_duration_seconds_bucket{server_id=~\"$server_id\"}[5m])) by (le)", "format": "heatmap", "legendFormat": "{{le}}", "refId": "A", From f457357a4b1599999a26c0d69d90d7f3209d561a Mon Sep 17 00:00:00 2001 From: Anant Singh Rathore Date: Tue, 1 Sep 2026 16:09:15 +0530 Subject: [PATCH 3/3] Update grafana/dashboards/watchdog_metrics_dashboard.json Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- grafana/dashboards/watchdog_metrics_dashboard.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grafana/dashboards/watchdog_metrics_dashboard.json b/grafana/dashboards/watchdog_metrics_dashboard.json index 98d9c57a..7193c9c6 100644 --- a/grafana/dashboards/watchdog_metrics_dashboard.json +++ b/grafana/dashboards/watchdog_metrics_dashboard.json @@ -158,7 +158,7 @@ }, "id": 102, "options": { - "calculate": true, + "calculate": false, "cellGap": 1, "color": { "exponent": 0.5,