monitoring/atlas: merge top rows and fix platform test pass-rate panel

This commit is contained in:
Brad Stein 2026-04-09 14:56:43 -03:00
parent 293cd83999
commit 09fa3e716c
7 changed files with 170 additions and 182 deletions

View File

@ -447,18 +447,18 @@ PLATFORM_TEST_ACTIVITY_30D = (
'or label_replace(sum by (status) (increase(ananke_quality_gate_runs_total{suite="ananke"}[30d])), "source", "ananke-quality", "__name__", ".*")' 'or label_replace(sum by (status) (increase(ananke_quality_gate_runs_total{suite="ananke"}[30d])), "source", "ananke-quality", "__name__", ".*")'
) )
PLATFORM_TEST_SUCCESS_RATE_BY_SUITE_SERIES = ( PLATFORM_TEST_SUCCESS_RATE_BY_SUITE_SERIES = (
'label_replace(100 * (sum(increase(ariadne_task_runs_total{status="ok"}[$__interval])) or on() vector(0)) ' 'label_replace(100 * (sum by (task) (increase(ariadne_task_runs_total{status="ok"}[$__interval])) '
'/ clamp_min((sum(increase(ariadne_task_runs_total[$__interval])) or on() vector(0)), 1), ' '/ clamp_min(sum by (task) (increase(ariadne_task_runs_total[$__interval])), 1)), '
'"suite", "ariadne", "__name__", ".*") ' '"suite", "ariadne:${1}", "task", "(.*)") '
'or label_replace(100 * (sum(increase(metis_builds_total{status="ok"}[$__interval])) or on() vector(0)) ' 'or label_replace(100 * (sum by (node) (increase(metis_builds_total{status="ok"}[$__interval])) '
'/ clamp_min((sum(increase(metis_builds_total[$__interval])) or on() vector(0)), 1), ' '/ clamp_min(sum by (node) (increase(metis_builds_total[$__interval])), 1)), '
'"suite", "metis-build", "__name__", ".*") ' '"suite", "metis-build:${1}", "node", "(.*)") '
'or label_replace(100 * (sum(increase(metis_flashes_total{status="ok"}[$__interval])) or on() vector(0)) ' 'or label_replace(100 * (sum by (node) (increase(metis_flashes_total{status="ok"}[$__interval])) '
'/ clamp_min((sum(increase(metis_flashes_total[$__interval])) or on() vector(0)), 1), ' '/ clamp_min(sum by (node) (increase(metis_flashes_total[$__interval])), 1)), '
'"suite", "metis-flash", "__name__", ".*") ' '"suite", "metis-flash:${1}", "node", "(.*)") '
'or label_replace(100 * (sum(increase(ananke_quality_gate_runs_total{suite="ananke",status="ok"}[$__interval])) or on() vector(0)) ' 'or label_replace(100 * (sum by (instance) (increase(ananke_quality_gate_runs_total{suite="ananke",status="ok"}[$__interval])) '
'/ clamp_min((sum(increase(ananke_quality_gate_runs_total{suite="ananke"}[$__interval])) or on() vector(0)), 1), ' '/ clamp_min(sum by (instance) (increase(ananke_quality_gate_runs_total{suite="ananke"}[$__interval])), 1)), '
'"suite", "ananke-quality", "__name__", ".*")' '"suite", "ananke-quality:${1}", "instance", "(.*)")'
) )
ANANKE_SELECTOR = 'job="ananke-power"' ANANKE_SELECTOR = 'job="ananke-power"'
ANANKE_UPS_DB_NAME = "Pyrphoros" ANANKE_UPS_DB_NAME = "Pyrphoros"
@ -1225,25 +1225,30 @@ def build_overview():
) )
) )
hottest = [ top_health_panels = [
(7, "Hottest node: CPU", topk_with_node(node_cpu_expr()), "percent"), (7, "Hottest node: CPU", topk_with_node(node_cpu_expr()), "percent"),
(8, "Hottest node: RAM", topk_with_node(node_mem_expr()), "percent"), (8, "Hottest node: RAM", topk_with_node(node_mem_expr()), "percent"),
(9, "Hottest node: NET (rx+tx)", topk_with_node(node_net_expr()), "Bps"), (9, "Hottest node: NET (rx+tx)", topk_with_node(node_net_expr()), "Bps"),
(10, "Hottest node: I/O (r+w)", topk_with_node(node_io_expr()), "Bps"), (10, "Hottest node: I/O (r+w)", topk_with_node(node_io_expr()), "Bps"),
(23, "Astreae Usage", astreae_usage_expr("/mnt/astreae"), "percent"),
(24, "Asteria Usage", astreae_usage_expr("/mnt/asteria"), "percent"),
(25, "Astreae Free", astreae_free_expr("/mnt/astreae"), "decbytes"),
(26, "Asteria Free", astreae_free_expr("/mnt/asteria"), "decbytes"),
] ]
for idx, (panel_id, title, expr, unit) in enumerate(hottest): for idx, (panel_id, title, expr, unit) in enumerate(top_health_panels):
is_hottest_panel = panel_id in {7, 8, 9, 10}
panels.append( panels.append(
stat_panel( stat_panel(
panel_id, panel_id,
title, title,
f"{expr}", f"{expr}",
{"h": 2, "w": 6, "x": 6 * idx, "y": 5}, {"h": 2, "w": 3, "x": 3 * idx, "y": 5},
unit=unit, unit=unit,
thresholds=PERCENT_THRESHOLDS if unit == "percent" else None, thresholds=PERCENT_THRESHOLDS if unit == "percent" else None,
text_mode="name_and_value", text_mode="name_and_value" if is_hottest_panel else "value",
legend="{{node}}", legend="{{node}}" if is_hottest_panel else None,
instant=True, instant=is_hottest_panel,
links=link_to("atlas-nodes"), links=link_to("atlas-storage" if panel_id in {23, 24, 25, 26} else "atlas-nodes"),
) )
) )
@ -1274,25 +1279,6 @@ def build_overview():
{"color": "green", "value": 98}, {"color": "green", "value": 98},
], ],
} }
storage_panels = [
(23, "Astreae Usage", astreae_usage_expr("/mnt/astreae"), "percent"),
(24, "Asteria Usage", astreae_usage_expr("/mnt/asteria"), "percent"),
(25, "Astreae Free", astreae_free_expr("/mnt/astreae"), "decbytes"),
(26, "Asteria Free", astreae_free_expr("/mnt/asteria"), "decbytes"),
]
for idx, (panel_id, title, expr, unit) in enumerate(storage_panels):
panels.append(
stat_panel(
panel_id,
title,
expr,
{"h": 2, "w": 6, "x": 6 * idx, "y": 7},
unit=unit,
thresholds=PERCENT_THRESHOLDS if unit == "percent" else None,
links=link_to("atlas-storage"),
)
)
status_mapping = [ status_mapping = [
{ {
"type": "value", "type": "value",
@ -1308,7 +1294,7 @@ def build_overview():
40, 40,
"UPS Current Load", "UPS Current Load",
None, None,
{"h": 5, "w": 4, "x": 0, "y": 13}, {"h": 6, "w": 4, "x": 0, "y": 12},
unit="none", unit="none",
decimals=1, decimals=1,
text_mode="name_and_value", text_mode="name_and_value",
@ -1355,7 +1341,7 @@ def build_overview():
41, 41,
"UPS History (Power Draw)", "UPS History (Power Draw)",
None, None,
{"h": 5, "w": 4, "x": 4, "y": 13}, {"h": 6, "w": 4, "x": 4, "y": 12},
unit="watt", unit="watt",
targets=[ targets=[
{"refId": "A", "expr": ANANKE_UPS_DRAW_WATTS_DB_SERIES, "legendFormat": ANANKE_UPS_DB_NAME}, {"refId": "A", "expr": ANANKE_UPS_DRAW_WATTS_DB_SERIES, "legendFormat": ANANKE_UPS_DB_NAME},
@ -1372,7 +1358,7 @@ def build_overview():
42, 42,
"Current Climate", "Current Climate",
None, None,
{"h": 5, "w": 4, "x": 8, "y": 13}, {"h": 6, "w": 4, "x": 8, "y": 12},
unit="none", unit="none",
decimals=2, decimals=2,
text_mode="value", text_mode="value",
@ -1395,7 +1381,7 @@ def build_overview():
43, 43,
"Climate History", "Climate History",
None, None,
{"h": 5, "w": 4, "x": 12, "y": 13}, {"h": 6, "w": 4, "x": 12, "y": 12},
unit="celsius", unit="celsius",
targets=[ targets=[
{"refId": "A", "expr": CLIMATE_TEMP_SERIES, "legendFormat": "Temperature (°C)"}, {"refId": "A", "expr": CLIMATE_TEMP_SERIES, "legendFormat": "Temperature (°C)"},
@ -1422,14 +1408,14 @@ def build_overview():
140, 140,
"Fan Activity", "Fan Activity",
None, None,
{"h": 5, "w": 4, "x": 16, "y": 13}, {"h": 6, "w": 4, "x": 16, "y": 12},
unit="none", unit="none",
decimals=0, decimals=0,
text_mode="name_and_value", text_mode="name_and_value",
targets=[ targets=[
{"refId": "A", "expr": f"round({CLIMATE_FAN_OUTLET_CURRENT})", "legendFormat": "Outlet", "instant": True}, {"refId": "A", "expr": f"round({CLIMATE_FAN_OUTLET_CURRENT})", "legendFormat": "Outlet", "instant": True},
{"refId": "B", "expr": f"round({CLIMATE_FAN_INSIDE_INLET_CURRENT})", "legendFormat": "Inside Inlet", "instant": True}, {"refId": "B", "expr": f"round({CLIMATE_FAN_INSIDE_INLET_CURRENT})", "legendFormat": "In Inlet", "instant": True},
{"refId": "C", "expr": f"round({CLIMATE_FAN_OUTSIDE_INLET_CURRENT})", "legendFormat": "Outside Inlet", "instant": True}, {"refId": "C", "expr": f"round({CLIMATE_FAN_OUTSIDE_INLET_CURRENT})", "legendFormat": "Out Inlet", "instant": True},
{"refId": "D", "expr": f"round({CLIMATE_FAN_INTERIOR_CURRENT})", "legendFormat": "Interior", "instant": True}, {"refId": "D", "expr": f"round({CLIMATE_FAN_INTERIOR_CURRENT})", "legendFormat": "Interior", "instant": True},
], ],
thresholds={ thresholds={
@ -1448,13 +1434,13 @@ def build_overview():
141, 141,
"Fan History (0-10)", "Fan History (0-10)",
None, None,
{"h": 5, "w": 4, "x": 20, "y": 13}, {"h": 6, "w": 4, "x": 20, "y": 12},
unit="none", unit="none",
max_value=10, max_value=10,
targets=[ targets=[
{"refId": "A", "expr": CLIMATE_FAN_OUTLET_SERIES, "legendFormat": "Outlet"}, {"refId": "A", "expr": CLIMATE_FAN_OUTLET_SERIES, "legendFormat": "Outlet"},
{"refId": "B", "expr": CLIMATE_FAN_INSIDE_INLET_SERIES, "legendFormat": "Inside Inlet"}, {"refId": "B", "expr": CLIMATE_FAN_INSIDE_INLET_SERIES, "legendFormat": "In Inlet"},
{"refId": "C", "expr": CLIMATE_FAN_OUTSIDE_INLET_SERIES, "legendFormat": "Outside Inlet"}, {"refId": "C", "expr": CLIMATE_FAN_OUTSIDE_INLET_SERIES, "legendFormat": "Out Inlet"},
{"refId": "D", "expr": CLIMATE_FAN_INTERIOR_SERIES, "legendFormat": "Interior"}, {"refId": "D", "expr": CLIMATE_FAN_INTERIOR_SERIES, "legendFormat": "Interior"},
], ],
legend_display="list", legend_display="list",
@ -1468,7 +1454,7 @@ def build_overview():
44, 44,
"One-off Job Pods >1h", "One-off Job Pods >1h",
f"({ONEOFF_JOB_POD_AGE_HOURS}) > 1", f"({ONEOFF_JOB_POD_AGE_HOURS}) > 1",
{"h": 4, "w": 6, "x": 0, "y": 9}, {"h": 5, "w": 6, "x": 0, "y": 7},
unit="h", unit="h",
instant=True, instant=True,
transformations=[ transformations=[
@ -1484,7 +1470,7 @@ def build_overview():
45, 45,
"Ariadne Attempts (24h)", "Ariadne Attempts (24h)",
"sum(increase(ariadne_task_runs_total[24h]))", "sum(increase(ariadne_task_runs_total[24h]))",
{"h": 4, "w": 6, "x": 6, "y": 9}, {"h": 5, "w": 6, "x": 6, "y": 7},
unit="none", unit="none",
decimals=0, decimals=0,
links=link_to("atlas-jobs"), links=link_to("atlas-jobs"),
@ -1494,14 +1480,13 @@ def build_overview():
46, 46,
"Platform Test Success Rate", "Platform Test Success Rate",
None, None,
{"h": 4, "w": 6, "x": 12, "y": 9}, {"h": 5, "w": 6, "x": 12, "y": 7},
unit="percent", unit="percent",
targets=[ targets=[
{ {
"refId": "A", "refId": "A",
"datasource": {"type": "datasource", "uid": "-- Dashboard --"}, "expr": PLATFORM_TEST_SUCCESS_RATE_BY_SUITE_SERIES,
"dashboardUid": "atlas-jobs", "legendFormat": "{{suite}}",
"panelId": 19,
} }
], ],
legend_display="table", legend_display="table",
@ -1509,16 +1494,17 @@ def build_overview():
legend_calcs=["last"], legend_calcs=["last"],
links=link_to("atlas-jobs"), links=link_to("atlas-jobs"),
) )
test_success["datasource"] = {"type": "datasource", "uid": "-- Dashboard --"} test_success["fieldConfig"]["defaults"]["min"] = 0
test_success["fieldConfig"]["defaults"]["max"] = 100
test_success["description"] = ( test_success["description"] = (
"Sourced directly from Atlas Jobs internal panel #19 (atlas-jobs) so Overview reuses the exact same suite-level test stream." "Per-test rolling pass rate (0-100) across Ariadne tasks, Metis build/flash node runs, and Ananke quality-gate runs."
) )
panels.append(test_success) panels.append(test_success)
test_failures = stat_panel( test_failures = stat_panel(
47, 47,
"Platform Test Failures (24h)", "Platform Test Failures (24h)",
TEST_FAILURES_24H_TOTAL, TEST_FAILURES_24H_TOTAL,
{"h": 4, "w": 6, "x": 18, "y": 9}, {"h": 5, "w": 6, "x": 18, "y": 7},
unit="none", unit="none",
decimals=0, decimals=0,
instant=True, instant=True,
@ -2993,8 +2979,10 @@ def build_jobs_dashboard():
legend_display="list", legend_display="list",
legend_placement="bottom", legend_placement="bottom",
) )
suite_panel["fieldConfig"]["defaults"]["min"] = 0
suite_panel["fieldConfig"]["defaults"]["max"] = 100
suite_panel["description"] = ( suite_panel["description"] = (
"Per-suite pass percentage over time. Used by Atlas Overview and kept here for detailed triage." "Per-test/per-node pass percentage over time across Ariadne, Metis, and Ananke quality suites."
) )
panels.append(suite_panel) panels.append(suite_panel)
@ -3147,8 +3135,8 @@ def build_power_dashboard():
text_mode="name_and_value", text_mode="name_and_value",
targets=[ targets=[
{"refId": "A", "expr": f"round({CLIMATE_FAN_OUTLET_CURRENT})", "legendFormat": "Outlet", "instant": True}, {"refId": "A", "expr": f"round({CLIMATE_FAN_OUTLET_CURRENT})", "legendFormat": "Outlet", "instant": True},
{"refId": "B", "expr": f"round({CLIMATE_FAN_INSIDE_INLET_CURRENT})", "legendFormat": "Inside Inlet", "instant": True}, {"refId": "B", "expr": f"round({CLIMATE_FAN_INSIDE_INLET_CURRENT})", "legendFormat": "In Inlet", "instant": True},
{"refId": "C", "expr": f"round({CLIMATE_FAN_OUTSIDE_INLET_CURRENT})", "legendFormat": "Outside Inlet", "instant": True}, {"refId": "C", "expr": f"round({CLIMATE_FAN_OUTSIDE_INLET_CURRENT})", "legendFormat": "Out Inlet", "instant": True},
{"refId": "D", "expr": f"round({CLIMATE_FAN_INTERIOR_CURRENT})", "legendFormat": "Interior", "instant": True}, {"refId": "D", "expr": f"round({CLIMATE_FAN_INTERIOR_CURRENT})", "legendFormat": "Interior", "instant": True},
], ],
thresholds={ thresholds={
@ -3172,8 +3160,8 @@ def build_power_dashboard():
max_value=10, max_value=10,
targets=[ targets=[
{"refId": "A", "expr": CLIMATE_FAN_OUTLET_SERIES, "legendFormat": "Outlet"}, {"refId": "A", "expr": CLIMATE_FAN_OUTLET_SERIES, "legendFormat": "Outlet"},
{"refId": "B", "expr": CLIMATE_FAN_INSIDE_INLET_SERIES, "legendFormat": "Inside Inlet"}, {"refId": "B", "expr": CLIMATE_FAN_INSIDE_INLET_SERIES, "legendFormat": "In Inlet"},
{"refId": "C", "expr": CLIMATE_FAN_OUTSIDE_INLET_SERIES, "legendFormat": "Outside Inlet"}, {"refId": "C", "expr": CLIMATE_FAN_OUTSIDE_INLET_SERIES, "legendFormat": "Out Inlet"},
{"refId": "D", "expr": CLIMATE_FAN_INTERIOR_SERIES, "legendFormat": "Interior"}, {"refId": "D", "expr": CLIMATE_FAN_INTERIOR_SERIES, "legendFormat": "Interior"},
], ],
legend_display="table", legend_display="table",

View File

@ -1253,13 +1253,15 @@
"targets": [ "targets": [
{ {
"refId": "A", "refId": "A",
"expr": "label_replace(100 * (sum(increase(ariadne_task_runs_total{status=\"ok\"}[$__interval])) or on() vector(0)) / clamp_min((sum(increase(ariadne_task_runs_total[$__interval])) or on() vector(0)), 1), \"suite\", \"ariadne\", \"__name__\", \".*\") or label_replace(100 * (sum(increase(metis_builds_total{status=\"ok\"}[$__interval])) or on() vector(0)) / clamp_min((sum(increase(metis_builds_total[$__interval])) or on() vector(0)), 1), \"suite\", \"metis-build\", \"__name__\", \".*\") or label_replace(100 * (sum(increase(metis_flashes_total{status=\"ok\"}[$__interval])) or on() vector(0)) / clamp_min((sum(increase(metis_flashes_total[$__interval])) or on() vector(0)), 1), \"suite\", \"metis-flash\", \"__name__\", \".*\") or label_replace(100 * (sum(increase(ananke_quality_gate_runs_total{suite=\"ananke\",status=\"ok\"}[$__interval])) or on() vector(0)) / clamp_min((sum(increase(ananke_quality_gate_runs_total{suite=\"ananke\"}[$__interval])) or on() vector(0)), 1), \"suite\", \"ananke-quality\", \"__name__\", \".*\")", "expr": "label_replace(100 * (sum by (task) (increase(ariadne_task_runs_total{status=\"ok\"}[$__interval])) / clamp_min(sum by (task) (increase(ariadne_task_runs_total[$__interval])), 1)), \"suite\", \"ariadne:${1}\", \"task\", \"(.*)\") or label_replace(100 * (sum by (node) (increase(metis_builds_total{status=\"ok\"}[$__interval])) / clamp_min(sum by (node) (increase(metis_builds_total[$__interval])), 1)), \"suite\", \"metis-build:${1}\", \"node\", \"(.*)\") or label_replace(100 * (sum by (node) (increase(metis_flashes_total{status=\"ok\"}[$__interval])) / clamp_min(sum by (node) (increase(metis_flashes_total[$__interval])), 1)), \"suite\", \"metis-flash:${1}\", \"node\", \"(.*)\") or label_replace(100 * (sum by (instance) (increase(ananke_quality_gate_runs_total{suite=\"ananke\",status=\"ok\"}[$__interval])) / clamp_min(sum by (instance) (increase(ananke_quality_gate_runs_total{suite=\"ananke\"}[$__interval])), 1)), \"suite\", \"ananke-quality:${1}\", \"instance\", \"(.*)\")",
"legendFormat": "{{suite}}" "legendFormat": "{{suite}}"
} }
], ],
"fieldConfig": { "fieldConfig": {
"defaults": { "defaults": {
"unit": "percent" "unit": "percent",
"min": 0,
"max": 100
}, },
"overrides": [] "overrides": []
}, },
@ -1272,7 +1274,7 @@
"mode": "multi" "mode": "multi"
} }
}, },
"description": "Per-suite pass percentage over time. Used by Atlas Overview and kept here for detailed triage." "description": "Per-test/per-node pass percentage over time across Ariadne, Metis, and Ananke quality suites."
} }
], ],
"time": { "time": {

View File

@ -504,7 +504,7 @@
}, },
"gridPos": { "gridPos": {
"h": 2, "h": 2,
"w": 6, "w": 3,
"x": 0, "x": 0,
"y": 5 "y": 5
}, },
@ -581,8 +581,8 @@
}, },
"gridPos": { "gridPos": {
"h": 2, "h": 2,
"w": 6, "w": 3,
"x": 6, "x": 3,
"y": 5 "y": 5
}, },
"targets": [ "targets": [
@ -658,8 +658,8 @@
}, },
"gridPos": { "gridPos": {
"h": 2, "h": 2,
"w": 6, "w": 3,
"x": 12, "x": 6,
"y": 5 "y": 5
}, },
"targets": [ "targets": [
@ -727,8 +727,8 @@
}, },
"gridPos": { "gridPos": {
"h": 2, "h": 2,
"w": 6, "w": 3,
"x": 18, "x": 9,
"y": 5 "y": 5
}, },
"targets": [ "targets": [
@ -796,9 +796,9 @@
}, },
"gridPos": { "gridPos": {
"h": 2, "h": 2,
"w": 6, "w": 3,
"x": 0, "x": 12,
"y": 7 "y": 5
}, },
"targets": [ "targets": [
{ {
@ -871,9 +871,9 @@
}, },
"gridPos": { "gridPos": {
"h": 2, "h": 2,
"w": 6, "w": 3,
"x": 6, "x": 15,
"y": 7 "y": 5
}, },
"targets": [ "targets": [
{ {
@ -946,9 +946,9 @@
}, },
"gridPos": { "gridPos": {
"h": 2, "h": 2,
"w": 6, "w": 3,
"x": 12, "x": 18,
"y": 7 "y": 5
}, },
"targets": [ "targets": [
{ {
@ -1013,9 +1013,9 @@
}, },
"gridPos": { "gridPos": {
"h": 2, "h": 2,
"w": 6, "w": 3,
"x": 18, "x": 21,
"y": 7 "y": 5
}, },
"targets": [ "targets": [
{ {
@ -1079,10 +1079,10 @@
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 5, "h": 6,
"w": 4, "w": 4,
"x": 0, "x": 0,
"y": 13 "y": 12
}, },
"targets": [ "targets": [
{ {
@ -1301,10 +1301,10 @@
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 5, "h": 6,
"w": 4, "w": 4,
"x": 4, "x": 4,
"y": 13 "y": 12
}, },
"targets": [ "targets": [
{ {
@ -1355,10 +1355,10 @@
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 5, "h": 6,
"w": 4, "w": 4,
"x": 8, "x": 8,
"y": 13 "y": 12
}, },
"targets": [ "targets": [
{ {
@ -1459,10 +1459,10 @@
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 5, "h": 6,
"w": 4, "w": 4,
"x": 12, "x": 12,
"y": 13 "y": 12
}, },
"targets": [ "targets": [
{ {
@ -1533,10 +1533,10 @@
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 5, "h": 6,
"w": 4, "w": 4,
"x": 16, "x": 16,
"y": 13 "y": 12
}, },
"targets": [ "targets": [
{ {
@ -1548,13 +1548,13 @@
{ {
"refId": "B", "refId": "B",
"expr": "round(max(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"inside_inlet\"}) or on() vector(0))", "expr": "round(max(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"inside_inlet\"}) or on() vector(0))",
"legendFormat": "Inside Inlet", "legendFormat": "In Inlet",
"instant": true "instant": true
}, },
{ {
"refId": "C", "refId": "C",
"expr": "round(max(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"outside_inlet\"}) or on() vector(0))", "expr": "round(max(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"outside_inlet\"}) or on() vector(0))",
"legendFormat": "Outside Inlet", "legendFormat": "Out Inlet",
"instant": true "instant": true
}, },
{ {
@ -1625,10 +1625,10 @@
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 5, "h": 6,
"w": 4, "w": 4,
"x": 20, "x": 20,
"y": 13 "y": 12
}, },
"targets": [ "targets": [
{ {
@ -1639,12 +1639,12 @@
{ {
"refId": "B", "refId": "B",
"expr": "(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"} or atlas_climate_fan_activity_level{position=\"inside_inlet\"})", "expr": "(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"} or atlas_climate_fan_activity_level{position=\"inside_inlet\"})",
"legendFormat": "Inside Inlet" "legendFormat": "In Inlet"
}, },
{ {
"refId": "C", "refId": "C",
"expr": "(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"} or atlas_climate_fan_activity_level{position=\"outside_inlet\"})", "expr": "(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"} or atlas_climate_fan_activity_level{position=\"outside_inlet\"})",
"legendFormat": "Outside Inlet" "legendFormat": "Out Inlet"
}, },
{ {
"refId": "D", "refId": "D",
@ -1685,10 +1685,10 @@
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 4, "h": 5,
"w": 6, "w": 6,
"x": 0, "x": 0,
"y": 9 "y": 7
}, },
"targets": [ "targets": [
{ {
@ -1744,10 +1744,10 @@
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 4, "h": 5,
"w": 6, "w": 6,
"x": 6, "x": 6,
"y": 9 "y": 7
}, },
"targets": [ "targets": [
{ {
@ -1808,29 +1808,27 @@
"type": "timeseries", "type": "timeseries",
"title": "Platform Test Success Rate", "title": "Platform Test Success Rate",
"datasource": { "datasource": {
"type": "datasource", "type": "prometheus",
"uid": "-- Dashboard --" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 4, "h": 5,
"w": 6, "w": 6,
"x": 12, "x": 12,
"y": 9 "y": 7
}, },
"targets": [ "targets": [
{ {
"refId": "A", "refId": "A",
"datasource": { "expr": "label_replace(100 * (sum by (task) (increase(ariadne_task_runs_total{status=\"ok\"}[$__interval])) / clamp_min(sum by (task) (increase(ariadne_task_runs_total[$__interval])), 1)), \"suite\", \"ariadne:${1}\", \"task\", \"(.*)\") or label_replace(100 * (sum by (node) (increase(metis_builds_total{status=\"ok\"}[$__interval])) / clamp_min(sum by (node) (increase(metis_builds_total[$__interval])), 1)), \"suite\", \"metis-build:${1}\", \"node\", \"(.*)\") or label_replace(100 * (sum by (node) (increase(metis_flashes_total{status=\"ok\"}[$__interval])) / clamp_min(sum by (node) (increase(metis_flashes_total[$__interval])), 1)), \"suite\", \"metis-flash:${1}\", \"node\", \"(.*)\") or label_replace(100 * (sum by (instance) (increase(ananke_quality_gate_runs_total{suite=\"ananke\",status=\"ok\"}[$__interval])) / clamp_min(sum by (instance) (increase(ananke_quality_gate_runs_total{suite=\"ananke\"}[$__interval])), 1)), \"suite\", \"ananke-quality:${1}\", \"instance\", \"(.*)\")",
"type": "datasource", "legendFormat": "{{suite}}"
"uid": "-- Dashboard --"
},
"dashboardUid": "atlas-jobs",
"panelId": 19
} }
], ],
"fieldConfig": { "fieldConfig": {
"defaults": { "defaults": {
"unit": "percent" "unit": "percent",
"min": 0,
"max": 100
}, },
"overrides": [] "overrides": []
}, },
@ -1853,7 +1851,7 @@
"targetBlank": true "targetBlank": true
} }
], ],
"description": "Sourced directly from Atlas Jobs internal panel #19 (atlas-jobs) so Overview reuses the exact same suite-level test stream." "description": "Per-test rolling pass rate (0-100) across Ariadne tasks, Metis build/flash node runs, and Ananke quality-gate runs."
}, },
{ {
"id": 47, "id": 47,
@ -1864,10 +1862,10 @@
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 4, "h": 5,
"w": 6, "w": 6,
"x": 18, "x": 18,
"y": 9 "y": 7
}, },
"targets": [ "targets": [
{ {

View File

@ -454,13 +454,13 @@
{ {
"refId": "B", "refId": "B",
"expr": "round(max(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"inside_inlet\"}) or on() vector(0))", "expr": "round(max(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"inside_inlet\"}) or on() vector(0))",
"legendFormat": "Inside Inlet", "legendFormat": "In Inlet",
"instant": true "instant": true
}, },
{ {
"refId": "C", "refId": "C",
"expr": "round(max(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"outside_inlet\"}) or on() vector(0))", "expr": "round(max(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"outside_inlet\"}) or on() vector(0))",
"legendFormat": "Outside Inlet", "legendFormat": "Out Inlet",
"instant": true "instant": true
}, },
{ {
@ -539,12 +539,12 @@
{ {
"refId": "B", "refId": "B",
"expr": "(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"} or atlas_climate_fan_activity_level{position=\"inside_inlet\"})", "expr": "(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"} or atlas_climate_fan_activity_level{position=\"inside_inlet\"})",
"legendFormat": "Inside Inlet" "legendFormat": "In Inlet"
}, },
{ {
"refId": "C", "refId": "C",
"expr": "(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"} or atlas_climate_fan_activity_level{position=\"outside_inlet\"})", "expr": "(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"} or atlas_climate_fan_activity_level{position=\"outside_inlet\"})",
"legendFormat": "Outside Inlet" "legendFormat": "Out Inlet"
}, },
{ {
"refId": "D", "refId": "D",

View File

@ -1262,13 +1262,15 @@ data:
"targets": [ "targets": [
{ {
"refId": "A", "refId": "A",
"expr": "label_replace(100 * (sum(increase(ariadne_task_runs_total{status=\"ok\"}[$__interval])) or on() vector(0)) / clamp_min((sum(increase(ariadne_task_runs_total[$__interval])) or on() vector(0)), 1), \"suite\", \"ariadne\", \"__name__\", \".*\") or label_replace(100 * (sum(increase(metis_builds_total{status=\"ok\"}[$__interval])) or on() vector(0)) / clamp_min((sum(increase(metis_builds_total[$__interval])) or on() vector(0)), 1), \"suite\", \"metis-build\", \"__name__\", \".*\") or label_replace(100 * (sum(increase(metis_flashes_total{status=\"ok\"}[$__interval])) or on() vector(0)) / clamp_min((sum(increase(metis_flashes_total[$__interval])) or on() vector(0)), 1), \"suite\", \"metis-flash\", \"__name__\", \".*\") or label_replace(100 * (sum(increase(ananke_quality_gate_runs_total{suite=\"ananke\",status=\"ok\"}[$__interval])) or on() vector(0)) / clamp_min((sum(increase(ananke_quality_gate_runs_total{suite=\"ananke\"}[$__interval])) or on() vector(0)), 1), \"suite\", \"ananke-quality\", \"__name__\", \".*\")", "expr": "label_replace(100 * (sum by (task) (increase(ariadne_task_runs_total{status=\"ok\"}[$__interval])) / clamp_min(sum by (task) (increase(ariadne_task_runs_total[$__interval])), 1)), \"suite\", \"ariadne:${1}\", \"task\", \"(.*)\") or label_replace(100 * (sum by (node) (increase(metis_builds_total{status=\"ok\"}[$__interval])) / clamp_min(sum by (node) (increase(metis_builds_total[$__interval])), 1)), \"suite\", \"metis-build:${1}\", \"node\", \"(.*)\") or label_replace(100 * (sum by (node) (increase(metis_flashes_total{status=\"ok\"}[$__interval])) / clamp_min(sum by (node) (increase(metis_flashes_total[$__interval])), 1)), \"suite\", \"metis-flash:${1}\", \"node\", \"(.*)\") or label_replace(100 * (sum by (instance) (increase(ananke_quality_gate_runs_total{suite=\"ananke\",status=\"ok\"}[$__interval])) / clamp_min(sum by (instance) (increase(ananke_quality_gate_runs_total{suite=\"ananke\"}[$__interval])), 1)), \"suite\", \"ananke-quality:${1}\", \"instance\", \"(.*)\")",
"legendFormat": "{{suite}}" "legendFormat": "{{suite}}"
} }
], ],
"fieldConfig": { "fieldConfig": {
"defaults": { "defaults": {
"unit": "percent" "unit": "percent",
"min": 0,
"max": 100
}, },
"overrides": [] "overrides": []
}, },
@ -1281,7 +1283,7 @@ data:
"mode": "multi" "mode": "multi"
} }
}, },
"description": "Per-suite pass percentage over time. Used by Atlas Overview and kept here for detailed triage." "description": "Per-test/per-node pass percentage over time across Ariadne, Metis, and Ananke quality suites."
} }
], ],
"time": { "time": {

View File

@ -513,7 +513,7 @@ data:
}, },
"gridPos": { "gridPos": {
"h": 2, "h": 2,
"w": 6, "w": 3,
"x": 0, "x": 0,
"y": 5 "y": 5
}, },
@ -590,8 +590,8 @@ data:
}, },
"gridPos": { "gridPos": {
"h": 2, "h": 2,
"w": 6, "w": 3,
"x": 6, "x": 3,
"y": 5 "y": 5
}, },
"targets": [ "targets": [
@ -667,8 +667,8 @@ data:
}, },
"gridPos": { "gridPos": {
"h": 2, "h": 2,
"w": 6, "w": 3,
"x": 12, "x": 6,
"y": 5 "y": 5
}, },
"targets": [ "targets": [
@ -736,8 +736,8 @@ data:
}, },
"gridPos": { "gridPos": {
"h": 2, "h": 2,
"w": 6, "w": 3,
"x": 18, "x": 9,
"y": 5 "y": 5
}, },
"targets": [ "targets": [
@ -805,9 +805,9 @@ data:
}, },
"gridPos": { "gridPos": {
"h": 2, "h": 2,
"w": 6, "w": 3,
"x": 0, "x": 12,
"y": 7 "y": 5
}, },
"targets": [ "targets": [
{ {
@ -880,9 +880,9 @@ data:
}, },
"gridPos": { "gridPos": {
"h": 2, "h": 2,
"w": 6, "w": 3,
"x": 6, "x": 15,
"y": 7 "y": 5
}, },
"targets": [ "targets": [
{ {
@ -955,9 +955,9 @@ data:
}, },
"gridPos": { "gridPos": {
"h": 2, "h": 2,
"w": 6, "w": 3,
"x": 12, "x": 18,
"y": 7 "y": 5
}, },
"targets": [ "targets": [
{ {
@ -1022,9 +1022,9 @@ data:
}, },
"gridPos": { "gridPos": {
"h": 2, "h": 2,
"w": 6, "w": 3,
"x": 18, "x": 21,
"y": 7 "y": 5
}, },
"targets": [ "targets": [
{ {
@ -1088,10 +1088,10 @@ data:
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 5, "h": 6,
"w": 4, "w": 4,
"x": 0, "x": 0,
"y": 13 "y": 12
}, },
"targets": [ "targets": [
{ {
@ -1310,10 +1310,10 @@ data:
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 5, "h": 6,
"w": 4, "w": 4,
"x": 4, "x": 4,
"y": 13 "y": 12
}, },
"targets": [ "targets": [
{ {
@ -1364,10 +1364,10 @@ data:
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 5, "h": 6,
"w": 4, "w": 4,
"x": 8, "x": 8,
"y": 13 "y": 12
}, },
"targets": [ "targets": [
{ {
@ -1468,10 +1468,10 @@ data:
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 5, "h": 6,
"w": 4, "w": 4,
"x": 12, "x": 12,
"y": 13 "y": 12
}, },
"targets": [ "targets": [
{ {
@ -1542,10 +1542,10 @@ data:
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 5, "h": 6,
"w": 4, "w": 4,
"x": 16, "x": 16,
"y": 13 "y": 12
}, },
"targets": [ "targets": [
{ {
@ -1557,13 +1557,13 @@ data:
{ {
"refId": "B", "refId": "B",
"expr": "round(max(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"inside_inlet\"}) or on() vector(0))", "expr": "round(max(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"inside_inlet\"}) or on() vector(0))",
"legendFormat": "Inside Inlet", "legendFormat": "In Inlet",
"instant": true "instant": true
}, },
{ {
"refId": "C", "refId": "C",
"expr": "round(max(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"outside_inlet\"}) or on() vector(0))", "expr": "round(max(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"outside_inlet\"}) or on() vector(0))",
"legendFormat": "Outside Inlet", "legendFormat": "Out Inlet",
"instant": true "instant": true
}, },
{ {
@ -1634,10 +1634,10 @@ data:
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 5, "h": 6,
"w": 4, "w": 4,
"x": 20, "x": 20,
"y": 13 "y": 12
}, },
"targets": [ "targets": [
{ {
@ -1648,12 +1648,12 @@ data:
{ {
"refId": "B", "refId": "B",
"expr": "(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"} or atlas_climate_fan_activity_level{position=\"inside_inlet\"})", "expr": "(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"} or atlas_climate_fan_activity_level{position=\"inside_inlet\"})",
"legendFormat": "Inside Inlet" "legendFormat": "In Inlet"
}, },
{ {
"refId": "C", "refId": "C",
"expr": "(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"} or atlas_climate_fan_activity_level{position=\"outside_inlet\"})", "expr": "(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"} or atlas_climate_fan_activity_level{position=\"outside_inlet\"})",
"legendFormat": "Outside Inlet" "legendFormat": "Out Inlet"
}, },
{ {
"refId": "D", "refId": "D",
@ -1694,10 +1694,10 @@ data:
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 4, "h": 5,
"w": 6, "w": 6,
"x": 0, "x": 0,
"y": 9 "y": 7
}, },
"targets": [ "targets": [
{ {
@ -1753,10 +1753,10 @@ data:
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 4, "h": 5,
"w": 6, "w": 6,
"x": 6, "x": 6,
"y": 9 "y": 7
}, },
"targets": [ "targets": [
{ {
@ -1817,29 +1817,27 @@ data:
"type": "timeseries", "type": "timeseries",
"title": "Platform Test Success Rate", "title": "Platform Test Success Rate",
"datasource": { "datasource": {
"type": "datasource", "type": "prometheus",
"uid": "-- Dashboard --" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 4, "h": 5,
"w": 6, "w": 6,
"x": 12, "x": 12,
"y": 9 "y": 7
}, },
"targets": [ "targets": [
{ {
"refId": "A", "refId": "A",
"datasource": { "expr": "label_replace(100 * (sum by (task) (increase(ariadne_task_runs_total{status=\"ok\"}[$__interval])) / clamp_min(sum by (task) (increase(ariadne_task_runs_total[$__interval])), 1)), \"suite\", \"ariadne:${1}\", \"task\", \"(.*)\") or label_replace(100 * (sum by (node) (increase(metis_builds_total{status=\"ok\"}[$__interval])) / clamp_min(sum by (node) (increase(metis_builds_total[$__interval])), 1)), \"suite\", \"metis-build:${1}\", \"node\", \"(.*)\") or label_replace(100 * (sum by (node) (increase(metis_flashes_total{status=\"ok\"}[$__interval])) / clamp_min(sum by (node) (increase(metis_flashes_total[$__interval])), 1)), \"suite\", \"metis-flash:${1}\", \"node\", \"(.*)\") or label_replace(100 * (sum by (instance) (increase(ananke_quality_gate_runs_total{suite=\"ananke\",status=\"ok\"}[$__interval])) / clamp_min(sum by (instance) (increase(ananke_quality_gate_runs_total{suite=\"ananke\"}[$__interval])), 1)), \"suite\", \"ananke-quality:${1}\", \"instance\", \"(.*)\")",
"type": "datasource", "legendFormat": "{{suite}}"
"uid": "-- Dashboard --"
},
"dashboardUid": "atlas-jobs",
"panelId": 19
} }
], ],
"fieldConfig": { "fieldConfig": {
"defaults": { "defaults": {
"unit": "percent" "unit": "percent",
"min": 0,
"max": 100
}, },
"overrides": [] "overrides": []
}, },
@ -1862,7 +1860,7 @@ data:
"targetBlank": true "targetBlank": true
} }
], ],
"description": "Sourced directly from Atlas Jobs internal panel #19 (atlas-jobs) so Overview reuses the exact same suite-level test stream." "description": "Per-test rolling pass rate (0-100) across Ariadne tasks, Metis build/flash node runs, and Ananke quality-gate runs."
}, },
{ {
"id": 47, "id": 47,
@ -1873,10 +1871,10 @@ data:
"uid": "atlas-vm" "uid": "atlas-vm"
}, },
"gridPos": { "gridPos": {
"h": 4, "h": 5,
"w": 6, "w": 6,
"x": 18, "x": 18,
"y": 9 "y": 7
}, },
"targets": [ "targets": [
{ {

View File

@ -463,13 +463,13 @@ data:
{ {
"refId": "B", "refId": "B",
"expr": "round(max(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"inside_inlet\"}) or on() vector(0))", "expr": "round(max(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"inside_inlet\"}) or on() vector(0))",
"legendFormat": "Inside Inlet", "legendFormat": "In Inlet",
"instant": true "instant": true
}, },
{ {
"refId": "C", "refId": "C",
"expr": "round(max(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"outside_inlet\"}) or on() vector(0))", "expr": "round(max(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"outside_inlet\"}) or on() vector(0))",
"legendFormat": "Outside Inlet", "legendFormat": "Out Inlet",
"instant": true "instant": true
}, },
{ {
@ -548,12 +548,12 @@ data:
{ {
"refId": "B", "refId": "B",
"expr": "(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"} or atlas_climate_fan_activity_level{position=\"inside_inlet\"})", "expr": "(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"} or atlas_climate_fan_activity_level{position=\"inside_inlet\"})",
"legendFormat": "Inside Inlet" "legendFormat": "In Inlet"
}, },
{ {
"refId": "C", "refId": "C",
"expr": "(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"} or atlas_climate_fan_activity_level{position=\"outside_inlet\"})", "expr": "(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"} or atlas_climate_fan_activity_level{position=\"outside_inlet\"})",
"legendFormat": "Outside Inlet" "legendFormat": "Out Inlet"
}, },
{ {
"refId": "D", "refId": "D",