From d8a1fa8a428da10dd202a8814f6b4cf647d53416 Mon Sep 17 00:00:00 2001 From: jgrusewski Date: Mon, 2 Mar 2026 01:40:40 +0100 Subject: [PATCH] fix(grafana): show 'Inactive' instead of red on Trading Cockpit when not trading MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 6 stat panels (Ensemble Agreement, Prediction Confidence, Model Accuracy, Ensemble Sharpe, Realized PnL, Unrealized PnL) showed red when ML metrics don't exist yet. Added special null mapping → "Inactive" in dark-blue. Panels will still show red/yellow/green when the trading system is active and emitting metrics. Co-Authored-By: Claude Opus 4.6 --- .../dashboards/foxhunt-trading-cockpit.json | 102 +++++++++++++++--- 1 file changed, 90 insertions(+), 12 deletions(-) diff --git a/infra/k8s/monitoring/dashboards/foxhunt-trading-cockpit.json b/infra/k8s/monitoring/dashboards/foxhunt-trading-cockpit.json index f7b993cfb..d3206b12f 100644 --- a/infra/k8s/monitoring/dashboards/foxhunt-trading-cockpit.json +++ b/infra/k8s/monitoring/dashboards/foxhunt-trading-cockpit.json @@ -139,10 +139,23 @@ ] }, "unit": "percentunit", - "mappings": [], + "mappings": [ + { + "type": "special", + "options": { + "match": "null", + "result": { + "text": "Inactive", + "color": "dark-blue", + "index": 99 + } + } + } + ], "color": { "mode": "thresholds" - } + }, + "noValue": "Inactive" }, "overrides": [] }, @@ -206,10 +219,23 @@ ] }, "unit": "percentunit", - "mappings": [], + "mappings": [ + { + "type": "special", + "options": { + "match": "null", + "result": { + "text": "Inactive", + "color": "dark-blue", + "index": 99 + } + } + } + ], "color": { "mode": "thresholds" - } + }, + "noValue": "Inactive" }, "overrides": [] }, @@ -273,10 +299,23 @@ ] }, "unit": "percentunit", - "mappings": [], + "mappings": [ + { + "type": "special", + "options": { + "match": "null", + "result": { + "text": "Inactive", + "color": "dark-blue", + "index": 99 + } + } + } + ], "color": { "mode": "thresholds" - } + }, + "noValue": "Inactive" }, "overrides": [] }, @@ -339,10 +378,23 @@ } ] }, - "mappings": [], + "mappings": [ + { + "type": "special", + "options": { + "match": "null", + "result": { + "text": "Inactive", + "color": "dark-blue", + "index": 99 + } + } + } + ], "color": { "mode": "thresholds" - } + }, + "noValue": "Inactive" }, "overrides": [] }, @@ -473,10 +525,23 @@ ] }, "unit": "currencyUSD", - "mappings": [], + "mappings": [ + { + "type": "special", + "options": { + "match": "null", + "result": { + "text": "Inactive", + "color": "dark-blue", + "index": 99 + } + } + } + ], "color": { "mode": "thresholds" - } + }, + "noValue": "Inactive" }, "overrides": [] }, @@ -536,10 +601,23 @@ ] }, "unit": "currencyUSD", - "mappings": [], + "mappings": [ + { + "type": "special", + "options": { + "match": "null", + "result": { + "text": "Inactive", + "color": "dark-blue", + "index": 99 + } + } + } + ], "color": { "mode": "thresholds" - } + }, + "noValue": "Inactive" }, "overrides": [] },