From b4229c5a8f0a73adb2aef0076e0a8cf0ad4d4a92 Mon Sep 17 00:00:00 2001 From: jenkins Date: Fri, 15 May 2026 22:43:44 -0300 Subject: [PATCH] monitoring: refine overview and failure colors --- scripts/dashboards_render_atlas.py | 157 ++++++------ scripts/tests/test_dashboards_render_atlas.py | 10 +- .../monitoring/dashboards/atlas-jobs.json | 72 +++++- .../monitoring/dashboards/atlas-overview.json | 236 +++++++----------- .../monitoring/dashboards/atlas-pods.json | 2 +- .../monitoring/dashboards/atlas-power.json | 35 ++- .../monitoring/dashboards/atlas-testing.json | 72 +++++- .../monitoring/grafana-dashboard-jobs.yaml | 72 +++++- .../grafana-dashboard-overview.yaml | 236 +++++++----------- .../monitoring/grafana-dashboard-pods.yaml | 2 +- .../monitoring/grafana-dashboard-power.yaml | 35 ++- .../monitoring/grafana-dashboard-testing.yaml | 72 +++++- 12 files changed, 578 insertions(+), 423 deletions(-) diff --git a/scripts/dashboards_render_atlas.py b/scripts/dashboards_render_atlas.py index 1eb0c44a..4c7eeaa5 100644 --- a/scripts/dashboards_render_atlas.py +++ b/scripts/dashboards_render_atlas.py @@ -489,8 +489,8 @@ ARIADNE_TASK_RUNS_BY_STATUS_1H = 'sum by (status) (increase(ariadne_task_runs_to ARIADNE_TASK_ERRORS_1H_TOTAL = 'sum(increase(ariadne_task_runs_total{status="error"}[1h]))' ARIADNE_TASK_ERRORS_24H_TOTAL = 'sum(increase(ariadne_task_runs_total{status="error"}[24h]))' ARIADNE_TASK_RUNS_1H_TOTAL = 'sum(increase(ariadne_task_runs_total[1h]))' -ARIADNE_TASK_ATTEMPTS_SERIES = 'sum(increase(ariadne_task_runs_total[$__interval]))' -ARIADNE_TASK_FAILURES_SERIES = 'sum(increase(ariadne_task_runs_total{status="error"}[$__interval]))' +ARIADNE_TASK_ATTEMPTS_SERIES = 'sum(increase(ariadne_task_runs_total[5m]))' +ARIADNE_TASK_FAILURES_SERIES = 'sum(increase(ariadne_task_runs_total{status="error"}[5m]))' ARIADNE_TASK_WARNINGS_SERIES = ( 'sum(increase(ariadne_task_runs_total{status!~"ok|error"}[$__interval])) or on() vector(0)' ) @@ -683,6 +683,10 @@ GITOPS_HELM_TOTAL_COUNT = ( GITOPS_HELM_SUSPENDED = ( f"sum(max by (namespace, name) (ananke_gitops_helmrelease_suspended{{{GITOPS_SELECTOR}}})) or on() vector(0)" ) +GITOPS_NOT_SUSPENDED_PCT = ( + f"100 * (1 - (({GITOPS_KUSTOMIZATION_SUSPENDED}) + ({GITOPS_HELM_SUSPENDED})) " + f"/ clamp_min(({GITOPS_KUSTOMIZATION_TOTAL_COUNT}) + ({GITOPS_HELM_TOTAL_COUNT}), 1))" +) GITOPS_SCRAPE_SUCCESS = f"min(ananke_gitops_scrape_success{{{GITOPS_SELECTOR}}}) or on() vector(0)" GITOPS_LAST_SCRAPE_AGE = ( f"(time() - max(ananke_gitops_last_scrape_timestamp_seconds{{{GITOPS_SELECTOR}}})) or on() vector(0)" @@ -1082,6 +1086,8 @@ def apply_bar_timeseries_style(panel, *, stacked=False, fill_opacity=70): "barAlignment": 0, "lineWidth": 0, "fillOpacity": fill_opacity, + "gradientMode": "none", + "showPoints": "never", "spanNulls": True, } if stacked: @@ -1089,6 +1095,17 @@ def apply_bar_timeseries_style(panel, *, stacked=False, fill_opacity=70): return panel +def fixed_color_overrides(series_colors): + """Return fixed-color overrides keyed by exact series name.""" + return [ + { + "matcher": {"id": "byName", "options": series_name}, + "properties": [{"id": "color", "value": {"mode": "fixed", "fixedColor": color}}], + } + for series_name, color in series_colors.items() + ] + + def table_panel( panel_id, title, @@ -1377,6 +1394,7 @@ def bargauge_panel( overrides=None, data_links=None, include_color=True, + description=None, ): """Return a bar gauge panel with label-aware reduction.""" cleaned_expr = expr.strip() @@ -1424,7 +1442,7 @@ def bargauge_panel( "overrides": [], }, "options": { - "displayMode": "gradient", + "displayMode": "basic", "orientation": "horizontal", "reduceOptions": { "calcs": ["lastNotNull"], @@ -1439,6 +1457,8 @@ def bargauge_panel( panel["fieldConfig"]["defaults"]["decimals"] = decimals if links: panel["links"] = links + if description: + panel["description"] = description if data_links: panel["fieldConfig"]["defaults"]["links"] = data_links # Keep bars ordered by value descending for readability. @@ -1783,14 +1803,19 @@ def build_overview(): {"color": "green", "value": 98}, ], } + dark_red = "dark-red" + dark_orange = "dark-orange" + dark_yellow = "dark-yellow" + dark_green = "dark-green" + dark_blue = "dark-blue" test_success_thresholds = { "mode": "absolute", "steps": [ - {"color": "red", "value": None}, - {"color": "orange", "value": 90}, - {"color": "yellow", "value": 93}, - {"color": "green", "value": 95}, - {"color": "blue", "value": 100}, + {"color": dark_red, "value": None}, + {"color": dark_orange, "value": 70}, + {"color": dark_yellow, "value": 85}, + {"color": dark_green, "value": 95}, + {"color": dark_blue, "value": 100}, ], } ups_text = {"titleSize": 14, "valueSize": 30} @@ -1834,6 +1859,9 @@ def build_overview(): {"refId": "A", "expr": ANANKE_UPS_DRAW_WATTS_DB_SERIES, "legendFormat": ANANKE_UPS_DB_NAME}, {"refId": "B", "expr": ANANKE_UPS_DRAW_WATTS_TETHYS_SERIES, "legendFormat": ANANKE_UPS_TETHYS_NAME}, ], + field_overrides=fixed_color_overrides( + {ANANKE_UPS_DB_NAME: dark_blue, ANANKE_UPS_TETHYS_NAME: dark_yellow} + ), legend_display="table", legend_placement="right", links=overview_link("atlas-power"), @@ -2016,69 +2044,52 @@ def build_overview(): links=overview_link("atlas-power"), ) ) - panels.append( - table_panel( - 140, - "Flux Source", - f"{GITOPS_SOURCE_INFO} or on() vector(0)", - {"h": 2, "w": 6, "x": 18, "y": 13}, - instant=True, - format="table", - transformations=[ - {"id": "labelsToFields", "options": {}}, - { - "id": "organize", - "options": { - "excludeByName": { - "Time": True, - "Value": True, - "namespace": True, - "name": True, - } - }, - }, - ], - options={"showColumnFilters": False}, - filterable=False, - footer={"show": False, "fields": "", "calcs": []}, - links=overview_link("atlas-gitops"), - description="Flux GitRepository branch and revision reported by Ananke. Value is hidden here on purpose.", - ) - ) - gitops_counts = stat_panel( - 150, - "GitOps Counts", + flux_source = stat_panel( + 140, + "Flux Source", None, - {"h": 2, "w": 6, "x": 18, "y": 15}, + {"h": 2, "w": 6, "x": 18, "y": 13}, unit="none", - text_mode="name_and_value", - decimals=0, + text_mode="name", + thresholds={ + "mode": "absolute", + "steps": [ + {"color": dark_red, "value": None}, + {"color": dark_blue, "value": 1}, + ], + }, targets=[ - {"expr": GITOPS_KUSTOMIZATION_READY_COUNT, "refId": "A", "legendFormat": "K Ready", "instant": True}, - {"expr": GITOPS_KUSTOMIZATION_TOTAL_COUNT, "refId": "B", "legendFormat": "K Total", "instant": True}, - {"expr": GITOPS_KUSTOMIZATION_SUSPENDED, "refId": "C", "legendFormat": "K Susp", "instant": True}, - {"expr": GITOPS_HELM_READY_COUNT, "refId": "D", "legendFormat": "H Ready", "instant": True}, - {"expr": GITOPS_HELM_TOTAL_COUNT, "refId": "E", "legendFormat": "H Total", "instant": True}, - {"expr": GITOPS_HELM_SUSPENDED, "refId": "F", "legendFormat": "H Susp", "instant": True}, + { + "expr": f"{GITOPS_SOURCE_INFO} or on() vector(0)", + "refId": "A", + "legendFormat": "{{branch}} @ {{revision}}", + "instant": True, + } ], links=overview_link("atlas-gitops"), - description="K = Kustomizations, H = HelmReleases. Ready and total are shown as counts; suspended should stay zero.", + description="Flux GitRepository branch and revision reported by Ananke. Full object detail lives in Atlas GitOps.", ) - gitops_counts["options"]["text"] = {"titleSize": 11, "valueSize": 18} - panels.append(gitops_counts) + flux_source["options"]["graphMode"] = "none" + flux_source["options"]["text"] = {"titleSize": 13, "valueSize": 18} + panels.append(flux_source) panels.append( - state_timeline_panel( - 151, - "GitOps Ready History", + bargauge_panel( + 150, + "GitOps Health", ( - f'label_replace({GITOPS_KUSTOMIZATION_READY_PCT}, "kind", "Kustomizations", "__name__", ".*") ' - f'or label_replace({GITOPS_HELM_READY_PCT}, "kind", "HelmReleases", "__name__", ".*")' + f'label_replace({GITOPS_KUSTOMIZATION_READY_PCT}, "signal", "Kustomizations Ready", "__name__", ".*") ' + f'or label_replace({GITOPS_HELM_READY_PCT}, "signal", "HelmReleases Ready", "__name__", ".*") ' + f'or label_replace({GITOPS_NOT_SUSPENDED_PCT}, "signal", "Objects Not Suspended", "__name__", ".*")' ), - {"h": 2, "w": 6, "x": 18, "y": 17}, + {"h": 4, "w": 6, "x": 18, "y": 15}, + unit="percent", + instant=True, + legend="{{signal}}", + sort_order="asc", thresholds=test_success_thresholds, - legend="{{kind}}", + decimals=0, links=overview_link("atlas-gitops"), - description="Compact readiness history. Full object tables live in Atlas GitOps.", + description="Compact GitOps health: readiness percentages plus percent of Flux objects not suspended.", ) ) @@ -2112,21 +2123,14 @@ def build_overview(): legend_placement="right", links=overview_link("atlas-jobs"), ) - ariadne_volume["fieldConfig"]["overrides"] = [ - { - "matcher": {"id": "byName", "options": "Attempts"}, - "properties": [{"id": "color", "value": {"mode": "fixed", "fixedColor": "green"}}], - }, - { - "matcher": {"id": "byName", "options": "Failures"}, - "properties": [{"id": "color", "value": {"mode": "fixed", "fixedColor": "red"}}], - }, - ] + ariadne_volume["fieldConfig"]["overrides"] = fixed_color_overrides( + {"Attempts": dark_blue, "Failures": dark_red} + ) panels.append(apply_bar_timeseries_style(ariadne_volume, stacked=False)) panels.append( bargauge_panel( 46, - "Platform Gate Health by Suite", + "Gate Checks Passing by Suite", PLATFORM_TEST_CURRENT_GATE_HEALTH_BY_SUITE, {"h": 6, "w": 6, "x": 18, "y": 7}, unit="percent", @@ -2134,13 +2138,12 @@ def build_overview(): legend="{{suite}}", sort_order="asc", thresholds=test_success_thresholds, - decimals=1, + decimals=0, links=overview_link("atlas-testing"), ) ) panels[-1]["description"] = ( - "Latest quality-gate health by suite. This mirrors the testing dashboard's current gate health " - "instead of plotting sparse per-run success spikes." + "Percent of current gate dimensions passing per suite. There are seven gate dimensions, so 85.7% means one gate is failing." ) for panel_id, title, metric, x_pos, description in [ ( @@ -3679,7 +3682,8 @@ def build_jobs_dashboard(): failures_thresholds = { "mode": "absolute", "steps": [ - {"color": dark_green, "value": None}, + {"color": dark_blue, "value": None}, + {"color": dark_green, "value": 0.01}, {"color": dark_yellow, "value": 1}, {"color": dark_orange, "value": 3}, {"color": dark_red, "value": 5}, @@ -4623,6 +4627,9 @@ def build_power_dashboard(): {"refId": "A", "expr": ANANKE_UPS_DRAW_WATTS_DB_SERIES, "legendFormat": ANANKE_UPS_DB_NAME}, {"refId": "B", "expr": ANANKE_UPS_DRAW_WATTS_TETHYS_SERIES, "legendFormat": ANANKE_UPS_TETHYS_NAME}, ], + field_overrides=fixed_color_overrides( + {ANANKE_UPS_DB_NAME: "dark-blue", ANANKE_UPS_TETHYS_NAME: "dark-yellow"} + ), legend_display="table", legend_placement="right", description="Historical UPS power consumption in watts for titan-db and tethys.", diff --git a/scripts/tests/test_dashboards_render_atlas.py b/scripts/tests/test_dashboards_render_atlas.py index 38fe962b..4737efee 100644 --- a/scripts/tests/test_dashboards_render_atlas.py +++ b/scripts/tests/test_dashboards_render_atlas.py @@ -68,13 +68,14 @@ def test_overview_uses_readable_quality_power_and_gitops_panels(): panels_by_title = {panel["title"]: panel for panel in flatten_panels(dashboard["panels"])} assert "Platform Test Success Rate" not in panels_by_title - assert panels_by_title["Platform Gate Health by Suite"]["type"] == "bargauge" + assert panels_by_title["Gate Checks Passing by Suite"]["type"] == "bargauge" + assert panels_by_title["Gate Checks Passing by Suite"]["options"]["displayMode"] == "basic" assert panels_by_title["UPS History (Power Draw)"]["fieldConfig"]["defaults"]["custom"]["drawStyle"] == "bars" assert panels_by_title["Ariadne Run Volume"]["fieldConfig"]["defaults"]["custom"]["drawStyle"] == "bars" - assert panels_by_title["Flux Source"]["type"] == "table" - assert panels_by_title["GitOps Counts"]["type"] == "stat" - assert panels_by_title["GitOps Ready History"]["type"] == "state-timeline" + assert panels_by_title["Flux Source"]["type"] == "stat" + assert panels_by_title["GitOps Health"]["type"] == "bargauge" + assert panels_by_title["GitOps Health"]["gridPos"]["h"] == 4 def test_render_configmap_writes(tmp_path): @@ -211,6 +212,7 @@ def test_jobs_dashboard_collapses_heavy_drilldowns_for_light_first_paint(): assert failure_rate_panel["type"] == "state-timeline" assert failure_rate_panel["fieldConfig"]["defaults"]["unit"] == "percent" assert failure_rate_panel["fieldConfig"]["defaults"]["max"] == 100 + assert failure_rate_panel["fieldConfig"]["defaults"]["thresholds"]["steps"][0]["color"] == "dark-blue" assert "increase(" not in failure_rate_panel["targets"][0]["expr"] assert "0 *" in failure_rate_panel["targets"][0]["expr"] diff --git a/services/monitoring/dashboards/atlas-jobs.json b/services/monitoring/dashboards/atlas-jobs.json index c64819ff..66fa940b 100644 --- a/services/monitoring/dashboards/atlas-jobs.json +++ b/services/monitoring/dashboards/atlas-jobs.json @@ -183,9 +183,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1130,9 +1134,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1202,9 +1210,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1274,9 +1286,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1346,9 +1362,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1418,9 +1438,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1490,9 +1514,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1562,9 +1590,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -2194,9 +2226,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -2376,9 +2412,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -3845,9 +3885,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -3914,9 +3958,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 diff --git a/services/monitoring/dashboards/atlas-overview.json b/services/monitoring/dashboards/atlas-overview.json index aba6c747..22632f40 100644 --- a/services/monitoring/dashboards/atlas-overview.json +++ b/services/monitoring/dashboards/atlas-overview.json @@ -1302,10 +1302,43 @@ "barAlignment": 0, "lineWidth": 0, "fillOpacity": 70, + "gradientMode": "none", + "showPoints": "never", "spanNulls": true } }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Pyrphoros" + }, + "properties": [ + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "dark-blue" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Statera" + }, + "properties": [ + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "dark-yellow" + } + } + ] + } + ] }, "options": { "legend": { @@ -1889,7 +1922,7 @@ }, { "id": 140, - "type": "table", + "type": "stat", "title": "Flux Source", "datasource": { "type": "prometheus", @@ -1905,104 +1938,7 @@ { "expr": "max by (branch, revision) (ananke_gitops_flux_source_info{job=\"ananke-power\",namespace=\"flux-system\",name=\"flux-system\"}) or on() vector(0)", "refId": "A", - "instant": true, - "format": "table" - } - ], - "fieldConfig": { - "defaults": { - "unit": "none", - "custom": { - "filterable": false - } - }, - "overrides": [] - }, - "options": { - "showHeader": true, - "columnFilters": false, - "showColumnFilters": false, - "footer": { - "show": false, - "fields": "", - "calcs": [] - } - }, - "transformations": [ - { - "id": "labelsToFields", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "Value": true, - "namespace": true, - "name": true - } - } - } - ], - "description": "Flux GitRepository branch and revision reported by Ananke. Value is hidden here on purpose.", - "links": [ - { - "title": "Open atlas-gitops dashboard", - "url": "/d/atlas-gitops", - "targetBlank": true - } - ] - }, - { - "id": 150, - "type": "stat", - "title": "GitOps Counts", - "datasource": { - "type": "prometheus", - "uid": "atlas-vm" - }, - "gridPos": { - "h": 2, - "w": 6, - "x": 18, - "y": 15 - }, - "targets": [ - { - "expr": "sum(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})) or on() vector(0)", - "refId": "A", - "legendFormat": "K Ready", - "instant": true - }, - { - "expr": "count(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})) or on() vector(0)", - "refId": "B", - "legendFormat": "K Total", - "instant": true - }, - { - "expr": "sum(max by (namespace, name) (ananke_gitops_kustomization_suspended{job=\"ananke-power\"})) or on() vector(0)", - "refId": "C", - "legendFormat": "K Susp", - "instant": true - }, - { - "expr": "sum(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})) or on() vector(0)", - "refId": "D", - "legendFormat": "H Ready", - "instant": true - }, - { - "expr": "count(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})) or on() vector(0)", - "refId": "E", - "legendFormat": "H Total", - "instant": true - }, - { - "expr": "sum(max by (namespace, name) (ananke_gitops_helmrelease_suspended{job=\"ananke-power\"})) or on() vector(0)", - "refId": "F", - "legendFormat": "H Susp", + "legendFormat": "{{branch}} @ {{revision}}", "instant": true } ], @@ -2016,11 +1952,11 @@ "mode": "absolute", "steps": [ { - "color": "rgba(115, 115, 115, 1)", + "color": "dark-red", "value": null }, { - "color": "dark-green", + "color": "dark-blue", "value": 1 } ] @@ -2028,14 +1964,13 @@ "unit": "none", "custom": { "displayMode": "auto" - }, - "decimals": 0 + } }, "overrides": [] }, "options": { "colorMode": "value", - "graphMode": "area", + "graphMode": "none", "justifyMode": "center", "reduceOptions": { "calcs": [ @@ -2044,9 +1979,9 @@ "fields": "", "values": false }, - "textMode": "name_and_value", + "textMode": "name", "text": { - "titleSize": 11, + "titleSize": 13, "valueSize": 18 } }, @@ -2057,28 +1992,28 @@ "targetBlank": true } ], - "description": "K = Kustomizations, H = HelmReleases. Ready and total are shown as counts; suspended should stay zero." + "description": "Flux GitRepository branch and revision reported by Ananke. Full object detail lives in Atlas GitOps." }, { - "id": 151, - "type": "state-timeline", - "title": "GitOps Ready History", - "description": "Compact readiness history. Full object tables live in Atlas GitOps.", + "id": 150, + "type": "bargauge", + "title": "GitOps Health", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { - "h": 2, + "h": 4, "w": 6, "x": 18, - "y": 17 + "y": 15 }, "targets": [ { - "expr": "label_replace(100 * sum(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})) / clamp_min(count(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})), 1), \"kind\", \"Kustomizations\", \"__name__\", \".*\") or label_replace(100 * sum(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})) / clamp_min(count(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})), 1), \"kind\", \"HelmReleases\", \"__name__\", \".*\")", + "expr": "sort(label_replace(100 * sum(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})) / clamp_min(count(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})), 1), \"signal\", \"Kustomizations Ready\", \"__name__\", \".*\") or label_replace(100 * sum(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})) / clamp_min(count(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})), 1), \"signal\", \"HelmReleases Ready\", \"__name__\", \".*\") or label_replace(100 * (1 - ((sum(max by (namespace, name) (ananke_gitops_kustomization_suspended{job=\"ananke-power\"})) or on() vector(0)) + (sum(max by (namespace, name) (ananke_gitops_helmrelease_suspended{job=\"ananke-power\"})) or on() vector(0))) / clamp_min((count(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})) or on() vector(0)) + (count(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})) or on() vector(0)), 1)), \"signal\", \"Objects Not Suspended\", \"__name__\", \".*\"))", "refId": "A", - "legendFormat": "{{kind}}" + "legendFormat": "{{signal}}", + "instant": true } ], "fieldConfig": { @@ -2087,6 +2022,8 @@ "mode": "thresholds" }, "unit": "percent", + "min": 0, + "max": 100, "thresholds": { "mode": "absolute", "steps": [ @@ -2096,11 +2033,11 @@ }, { "color": "dark-orange", - "value": 90 + "value": 70 }, { "color": "dark-yellow", - "value": 93 + "value": 85 }, { "color": "dark-green", @@ -2112,26 +2049,19 @@ } ] }, - "custom": { - "fillOpacity": 70, - "lineWidth": 0, - "spanNulls": true - }, - "min": 0, - "max": 100 + "decimals": 0 }, "overrides": [] }, "options": { - "mergeValues": true, - "showValue": "never", - "legend": { - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" + "displayMode": "basic", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false } }, "links": [ @@ -2140,6 +2070,18 @@ "url": "/d/atlas-gitops", "targetBlank": true } + ], + "description": "Compact GitOps health: readiness percentages plus percent of Flux objects not suspended.", + "transformations": [ + { + "id": "sortBy", + "options": { + "fields": [ + "Value" + ], + "order": "asc" + } + } ] }, { @@ -2195,7 +2137,7 @@ "overrides": [] }, "options": { - "displayMode": "gradient", + "displayMode": "basic", "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -2246,12 +2188,12 @@ }, "targets": [ { - "expr": "sum(increase(ariadne_task_runs_total[$__interval])) or on() vector(0)", + "expr": "sum(increase(ariadne_task_runs_total[5m])) or on() vector(0)", "refId": "A", "legendFormat": "Attempts" }, { - "expr": "sum(increase(ariadne_task_runs_total{status=\"error\"}[$__interval])) or on() vector(0)", + "expr": "sum(increase(ariadne_task_runs_total{status=\"error\"}[5m])) or on() vector(0)", "refId": "B", "legendFormat": "Failures" } @@ -2264,6 +2206,8 @@ "barAlignment": 0, "lineWidth": 0, "fillOpacity": 70, + "gradientMode": "none", + "showPoints": "never", "spanNulls": true } }, @@ -2278,7 +2222,7 @@ "id": "color", "value": { "mode": "fixed", - "fixedColor": "dark-green" + "fixedColor": "dark-blue" } } ] @@ -2320,7 +2264,7 @@ { "id": 46, "type": "bargauge", - "title": "Platform Gate Health by Suite", + "title": "Gate Checks Passing by Suite", "datasource": { "type": "prometheus", "uid": "atlas-vm" @@ -2356,11 +2300,11 @@ }, { "color": "dark-orange", - "value": 90 + "value": 70 }, { "color": "dark-yellow", - "value": 93 + "value": 85 }, { "color": "dark-green", @@ -2372,12 +2316,12 @@ } ] }, - "decimals": 1 + "decimals": 0 }, "overrides": [] }, "options": { - "displayMode": "gradient", + "displayMode": "basic", "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -2405,7 +2349,7 @@ } } ], - "description": "Latest quality-gate health by suite. This mirrors the testing dashboard's current gate health instead of plotting sparse per-run success spikes." + "description": "Percent of current gate dimensions passing per suite. There are seven gate dimensions, so 85.7% means one gate is failing." }, { "id": 142, @@ -2673,7 +2617,7 @@ "overrides": [] }, "options": { - "displayMode": "gradient", + "displayMode": "basic", "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -3632,7 +3576,7 @@ "overrides": [] }, "options": { - "displayMode": "gradient", + "displayMode": "basic", "orientation": "horizontal", "reduceOptions": { "calcs": [ diff --git a/services/monitoring/dashboards/atlas-pods.json b/services/monitoring/dashboards/atlas-pods.json index a5c630b7..ea42c1c6 100644 --- a/services/monitoring/dashboards/atlas-pods.json +++ b/services/monitoring/dashboards/atlas-pods.json @@ -479,7 +479,7 @@ "overrides": [] }, "options": { - "displayMode": "gradient", + "displayMode": "basic", "orientation": "horizontal", "reduceOptions": { "calcs": [ diff --git a/services/monitoring/dashboards/atlas-power.json b/services/monitoring/dashboards/atlas-power.json index e0e89ab6..412c411c 100644 --- a/services/monitoring/dashboards/atlas-power.json +++ b/services/monitoring/dashboards/atlas-power.json @@ -255,10 +255,43 @@ "barAlignment": 0, "lineWidth": 0, "fillOpacity": 70, + "gradientMode": "none", + "showPoints": "never", "spanNulls": true } }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Pyrphoros" + }, + "properties": [ + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "dark-blue" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Statera" + }, + "properties": [ + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "dark-yellow" + } + } + ] + } + ] }, "options": { "legend": { diff --git a/services/monitoring/dashboards/atlas-testing.json b/services/monitoring/dashboards/atlas-testing.json index 098886e3..53968ceb 100644 --- a/services/monitoring/dashboards/atlas-testing.json +++ b/services/monitoring/dashboards/atlas-testing.json @@ -183,9 +183,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1130,9 +1134,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1202,9 +1210,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1274,9 +1286,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1346,9 +1362,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1418,9 +1438,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1490,9 +1514,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1562,9 +1590,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -2194,9 +2226,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -2376,9 +2412,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -3845,9 +3885,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -3914,9 +3958,13 @@ "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 diff --git a/services/monitoring/grafana-dashboard-jobs.yaml b/services/monitoring/grafana-dashboard-jobs.yaml index 367b1599..186170a3 100644 --- a/services/monitoring/grafana-dashboard-jobs.yaml +++ b/services/monitoring/grafana-dashboard-jobs.yaml @@ -192,9 +192,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1139,9 +1143,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1211,9 +1219,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1283,9 +1295,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1355,9 +1371,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1427,9 +1447,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1499,9 +1523,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1571,9 +1599,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -2203,9 +2235,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -2385,9 +2421,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -3854,9 +3894,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -3923,9 +3967,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 diff --git a/services/monitoring/grafana-dashboard-overview.yaml b/services/monitoring/grafana-dashboard-overview.yaml index 78072f8b..e161e600 100644 --- a/services/monitoring/grafana-dashboard-overview.yaml +++ b/services/monitoring/grafana-dashboard-overview.yaml @@ -1311,10 +1311,43 @@ data: "barAlignment": 0, "lineWidth": 0, "fillOpacity": 70, + "gradientMode": "none", + "showPoints": "never", "spanNulls": true } }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Pyrphoros" + }, + "properties": [ + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "dark-blue" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Statera" + }, + "properties": [ + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "dark-yellow" + } + } + ] + } + ] }, "options": { "legend": { @@ -1898,7 +1931,7 @@ data: }, { "id": 140, - "type": "table", + "type": "stat", "title": "Flux Source", "datasource": { "type": "prometheus", @@ -1914,104 +1947,7 @@ data: { "expr": "max by (branch, revision) (ananke_gitops_flux_source_info{job=\"ananke-power\",namespace=\"flux-system\",name=\"flux-system\"}) or on() vector(0)", "refId": "A", - "instant": true, - "format": "table" - } - ], - "fieldConfig": { - "defaults": { - "unit": "none", - "custom": { - "filterable": false - } - }, - "overrides": [] - }, - "options": { - "showHeader": true, - "columnFilters": false, - "showColumnFilters": false, - "footer": { - "show": false, - "fields": "", - "calcs": [] - } - }, - "transformations": [ - { - "id": "labelsToFields", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "Value": true, - "namespace": true, - "name": true - } - } - } - ], - "description": "Flux GitRepository branch and revision reported by Ananke. Value is hidden here on purpose.", - "links": [ - { - "title": "Open atlas-gitops dashboard", - "url": "/d/atlas-gitops", - "targetBlank": true - } - ] - }, - { - "id": 150, - "type": "stat", - "title": "GitOps Counts", - "datasource": { - "type": "prometheus", - "uid": "atlas-vm" - }, - "gridPos": { - "h": 2, - "w": 6, - "x": 18, - "y": 15 - }, - "targets": [ - { - "expr": "sum(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})) or on() vector(0)", - "refId": "A", - "legendFormat": "K Ready", - "instant": true - }, - { - "expr": "count(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})) or on() vector(0)", - "refId": "B", - "legendFormat": "K Total", - "instant": true - }, - { - "expr": "sum(max by (namespace, name) (ananke_gitops_kustomization_suspended{job=\"ananke-power\"})) or on() vector(0)", - "refId": "C", - "legendFormat": "K Susp", - "instant": true - }, - { - "expr": "sum(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})) or on() vector(0)", - "refId": "D", - "legendFormat": "H Ready", - "instant": true - }, - { - "expr": "count(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})) or on() vector(0)", - "refId": "E", - "legendFormat": "H Total", - "instant": true - }, - { - "expr": "sum(max by (namespace, name) (ananke_gitops_helmrelease_suspended{job=\"ananke-power\"})) or on() vector(0)", - "refId": "F", - "legendFormat": "H Susp", + "legendFormat": "{{branch}} @ {{revision}}", "instant": true } ], @@ -2025,11 +1961,11 @@ data: "mode": "absolute", "steps": [ { - "color": "rgba(115, 115, 115, 1)", + "color": "dark-red", "value": null }, { - "color": "dark-green", + "color": "dark-blue", "value": 1 } ] @@ -2037,14 +1973,13 @@ data: "unit": "none", "custom": { "displayMode": "auto" - }, - "decimals": 0 + } }, "overrides": [] }, "options": { "colorMode": "value", - "graphMode": "area", + "graphMode": "none", "justifyMode": "center", "reduceOptions": { "calcs": [ @@ -2053,9 +1988,9 @@ data: "fields": "", "values": false }, - "textMode": "name_and_value", + "textMode": "name", "text": { - "titleSize": 11, + "titleSize": 13, "valueSize": 18 } }, @@ -2066,28 +2001,28 @@ data: "targetBlank": true } ], - "description": "K = Kustomizations, H = HelmReleases. Ready and total are shown as counts; suspended should stay zero." + "description": "Flux GitRepository branch and revision reported by Ananke. Full object detail lives in Atlas GitOps." }, { - "id": 151, - "type": "state-timeline", - "title": "GitOps Ready History", - "description": "Compact readiness history. Full object tables live in Atlas GitOps.", + "id": 150, + "type": "bargauge", + "title": "GitOps Health", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { - "h": 2, + "h": 4, "w": 6, "x": 18, - "y": 17 + "y": 15 }, "targets": [ { - "expr": "label_replace(100 * sum(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})) / clamp_min(count(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})), 1), \"kind\", \"Kustomizations\", \"__name__\", \".*\") or label_replace(100 * sum(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})) / clamp_min(count(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})), 1), \"kind\", \"HelmReleases\", \"__name__\", \".*\")", + "expr": "sort(label_replace(100 * sum(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})) / clamp_min(count(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})), 1), \"signal\", \"Kustomizations Ready\", \"__name__\", \".*\") or label_replace(100 * sum(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})) / clamp_min(count(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})), 1), \"signal\", \"HelmReleases Ready\", \"__name__\", \".*\") or label_replace(100 * (1 - ((sum(max by (namespace, name) (ananke_gitops_kustomization_suspended{job=\"ananke-power\"})) or on() vector(0)) + (sum(max by (namespace, name) (ananke_gitops_helmrelease_suspended{job=\"ananke-power\"})) or on() vector(0))) / clamp_min((count(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})) or on() vector(0)) + (count(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})) or on() vector(0)), 1)), \"signal\", \"Objects Not Suspended\", \"__name__\", \".*\"))", "refId": "A", - "legendFormat": "{{kind}}" + "legendFormat": "{{signal}}", + "instant": true } ], "fieldConfig": { @@ -2096,6 +2031,8 @@ data: "mode": "thresholds" }, "unit": "percent", + "min": 0, + "max": 100, "thresholds": { "mode": "absolute", "steps": [ @@ -2105,11 +2042,11 @@ data: }, { "color": "dark-orange", - "value": 90 + "value": 70 }, { "color": "dark-yellow", - "value": 93 + "value": 85 }, { "color": "dark-green", @@ -2121,26 +2058,19 @@ data: } ] }, - "custom": { - "fillOpacity": 70, - "lineWidth": 0, - "spanNulls": true - }, - "min": 0, - "max": 100 + "decimals": 0 }, "overrides": [] }, "options": { - "mergeValues": true, - "showValue": "never", - "legend": { - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" + "displayMode": "basic", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false } }, "links": [ @@ -2149,6 +2079,18 @@ data: "url": "/d/atlas-gitops", "targetBlank": true } + ], + "description": "Compact GitOps health: readiness percentages plus percent of Flux objects not suspended.", + "transformations": [ + { + "id": "sortBy", + "options": { + "fields": [ + "Value" + ], + "order": "asc" + } + } ] }, { @@ -2204,7 +2146,7 @@ data: "overrides": [] }, "options": { - "displayMode": "gradient", + "displayMode": "basic", "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -2255,12 +2197,12 @@ data: }, "targets": [ { - "expr": "sum(increase(ariadne_task_runs_total[$__interval])) or on() vector(0)", + "expr": "sum(increase(ariadne_task_runs_total[5m])) or on() vector(0)", "refId": "A", "legendFormat": "Attempts" }, { - "expr": "sum(increase(ariadne_task_runs_total{status=\"error\"}[$__interval])) or on() vector(0)", + "expr": "sum(increase(ariadne_task_runs_total{status=\"error\"}[5m])) or on() vector(0)", "refId": "B", "legendFormat": "Failures" } @@ -2273,6 +2215,8 @@ data: "barAlignment": 0, "lineWidth": 0, "fillOpacity": 70, + "gradientMode": "none", + "showPoints": "never", "spanNulls": true } }, @@ -2287,7 +2231,7 @@ data: "id": "color", "value": { "mode": "fixed", - "fixedColor": "dark-green" + "fixedColor": "dark-blue" } } ] @@ -2329,7 +2273,7 @@ data: { "id": 46, "type": "bargauge", - "title": "Platform Gate Health by Suite", + "title": "Gate Checks Passing by Suite", "datasource": { "type": "prometheus", "uid": "atlas-vm" @@ -2365,11 +2309,11 @@ data: }, { "color": "dark-orange", - "value": 90 + "value": 70 }, { "color": "dark-yellow", - "value": 93 + "value": 85 }, { "color": "dark-green", @@ -2381,12 +2325,12 @@ data: } ] }, - "decimals": 1 + "decimals": 0 }, "overrides": [] }, "options": { - "displayMode": "gradient", + "displayMode": "basic", "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -2414,7 +2358,7 @@ data: } } ], - "description": "Latest quality-gate health by suite. This mirrors the testing dashboard's current gate health instead of plotting sparse per-run success spikes." + "description": "Percent of current gate dimensions passing per suite. There are seven gate dimensions, so 85.7% means one gate is failing." }, { "id": 142, @@ -2682,7 +2626,7 @@ data: "overrides": [] }, "options": { - "displayMode": "gradient", + "displayMode": "basic", "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -3641,7 +3585,7 @@ data: "overrides": [] }, "options": { - "displayMode": "gradient", + "displayMode": "basic", "orientation": "horizontal", "reduceOptions": { "calcs": [ diff --git a/services/monitoring/grafana-dashboard-pods.yaml b/services/monitoring/grafana-dashboard-pods.yaml index 3cd54a77..85015eb8 100644 --- a/services/monitoring/grafana-dashboard-pods.yaml +++ b/services/monitoring/grafana-dashboard-pods.yaml @@ -488,7 +488,7 @@ data: "overrides": [] }, "options": { - "displayMode": "gradient", + "displayMode": "basic", "orientation": "horizontal", "reduceOptions": { "calcs": [ diff --git a/services/monitoring/grafana-dashboard-power.yaml b/services/monitoring/grafana-dashboard-power.yaml index 65fe19b7..cd5f315e 100644 --- a/services/monitoring/grafana-dashboard-power.yaml +++ b/services/monitoring/grafana-dashboard-power.yaml @@ -264,10 +264,43 @@ data: "barAlignment": 0, "lineWidth": 0, "fillOpacity": 70, + "gradientMode": "none", + "showPoints": "never", "spanNulls": true } }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Pyrphoros" + }, + "properties": [ + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "dark-blue" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Statera" + }, + "properties": [ + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "dark-yellow" + } + } + ] + } + ] }, "options": { "legend": { diff --git a/services/monitoring/grafana-dashboard-testing.yaml b/services/monitoring/grafana-dashboard-testing.yaml index 3de0bca9..06d7bde9 100644 --- a/services/monitoring/grafana-dashboard-testing.yaml +++ b/services/monitoring/grafana-dashboard-testing.yaml @@ -192,9 +192,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1139,9 +1143,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1211,9 +1219,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1283,9 +1295,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1355,9 +1371,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1427,9 +1447,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1499,9 +1523,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -1571,9 +1599,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -2203,9 +2235,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -2385,9 +2421,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -3854,9 +3894,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1 @@ -3923,9 +3967,13 @@ data: "mode": "absolute", "steps": [ { - "color": "dark-green", + "color": "dark-blue", "value": null }, + { + "color": "dark-green", + "value": 0.01 + }, { "color": "dark-yellow", "value": 1