monitoring/atlas: merge top rows and fix platform test pass-rate panel
This commit is contained in:
parent
293cd83999
commit
09fa3e716c
@ -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__", ".*")'
|
||||
)
|
||||
PLATFORM_TEST_SUCCESS_RATE_BY_SUITE_SERIES = (
|
||||
'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__", ".*")'
|
||||
'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", "(.*)")'
|
||||
)
|
||||
ANANKE_SELECTOR = 'job="ananke-power"'
|
||||
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"),
|
||||
(8, "Hottest node: RAM", topk_with_node(node_mem_expr()), "percent"),
|
||||
(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"),
|
||||
(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(
|
||||
stat_panel(
|
||||
panel_id,
|
||||
title,
|
||||
f"{expr}",
|
||||
{"h": 2, "w": 6, "x": 6 * idx, "y": 5},
|
||||
{"h": 2, "w": 3, "x": 3 * idx, "y": 5},
|
||||
unit=unit,
|
||||
thresholds=PERCENT_THRESHOLDS if unit == "percent" else None,
|
||||
text_mode="name_and_value",
|
||||
legend="{{node}}",
|
||||
instant=True,
|
||||
links=link_to("atlas-nodes"),
|
||||
text_mode="name_and_value" if is_hottest_panel else "value",
|
||||
legend="{{node}}" if is_hottest_panel else None,
|
||||
instant=is_hottest_panel,
|
||||
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},
|
||||
],
|
||||
}
|
||||
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 = [
|
||||
{
|
||||
"type": "value",
|
||||
@ -1308,7 +1294,7 @@ def build_overview():
|
||||
40,
|
||||
"UPS Current Load",
|
||||
None,
|
||||
{"h": 5, "w": 4, "x": 0, "y": 13},
|
||||
{"h": 6, "w": 4, "x": 0, "y": 12},
|
||||
unit="none",
|
||||
decimals=1,
|
||||
text_mode="name_and_value",
|
||||
@ -1355,7 +1341,7 @@ def build_overview():
|
||||
41,
|
||||
"UPS History (Power Draw)",
|
||||
None,
|
||||
{"h": 5, "w": 4, "x": 4, "y": 13},
|
||||
{"h": 6, "w": 4, "x": 4, "y": 12},
|
||||
unit="watt",
|
||||
targets=[
|
||||
{"refId": "A", "expr": ANANKE_UPS_DRAW_WATTS_DB_SERIES, "legendFormat": ANANKE_UPS_DB_NAME},
|
||||
@ -1372,7 +1358,7 @@ def build_overview():
|
||||
42,
|
||||
"Current Climate",
|
||||
None,
|
||||
{"h": 5, "w": 4, "x": 8, "y": 13},
|
||||
{"h": 6, "w": 4, "x": 8, "y": 12},
|
||||
unit="none",
|
||||
decimals=2,
|
||||
text_mode="value",
|
||||
@ -1395,7 +1381,7 @@ def build_overview():
|
||||
43,
|
||||
"Climate History",
|
||||
None,
|
||||
{"h": 5, "w": 4, "x": 12, "y": 13},
|
||||
{"h": 6, "w": 4, "x": 12, "y": 12},
|
||||
unit="celsius",
|
||||
targets=[
|
||||
{"refId": "A", "expr": CLIMATE_TEMP_SERIES, "legendFormat": "Temperature (°C)"},
|
||||
@ -1422,14 +1408,14 @@ def build_overview():
|
||||
140,
|
||||
"Fan Activity",
|
||||
None,
|
||||
{"h": 5, "w": 4, "x": 16, "y": 13},
|
||||
{"h": 6, "w": 4, "x": 16, "y": 12},
|
||||
unit="none",
|
||||
decimals=0,
|
||||
text_mode="name_and_value",
|
||||
targets=[
|
||||
{"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": "C", "expr": f"round({CLIMATE_FAN_OUTSIDE_INLET_CURRENT})", "legendFormat": "Outside 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": "Out Inlet", "instant": True},
|
||||
{"refId": "D", "expr": f"round({CLIMATE_FAN_INTERIOR_CURRENT})", "legendFormat": "Interior", "instant": True},
|
||||
],
|
||||
thresholds={
|
||||
@ -1448,13 +1434,13 @@ def build_overview():
|
||||
141,
|
||||
"Fan History (0-10)",
|
||||
None,
|
||||
{"h": 5, "w": 4, "x": 20, "y": 13},
|
||||
{"h": 6, "w": 4, "x": 20, "y": 12},
|
||||
unit="none",
|
||||
max_value=10,
|
||||
targets=[
|
||||
{"refId": "A", "expr": CLIMATE_FAN_OUTLET_SERIES, "legendFormat": "Outlet"},
|
||||
{"refId": "B", "expr": CLIMATE_FAN_INSIDE_INLET_SERIES, "legendFormat": "Inside Inlet"},
|
||||
{"refId": "C", "expr": CLIMATE_FAN_OUTSIDE_INLET_SERIES, "legendFormat": "Outside Inlet"},
|
||||
{"refId": "B", "expr": CLIMATE_FAN_INSIDE_INLET_SERIES, "legendFormat": "In Inlet"},
|
||||
{"refId": "C", "expr": CLIMATE_FAN_OUTSIDE_INLET_SERIES, "legendFormat": "Out Inlet"},
|
||||
{"refId": "D", "expr": CLIMATE_FAN_INTERIOR_SERIES, "legendFormat": "Interior"},
|
||||
],
|
||||
legend_display="list",
|
||||
@ -1468,7 +1454,7 @@ def build_overview():
|
||||
44,
|
||||
"One-off Job Pods >1h",
|
||||
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",
|
||||
instant=True,
|
||||
transformations=[
|
||||
@ -1484,7 +1470,7 @@ def build_overview():
|
||||
45,
|
||||
"Ariadne Attempts (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",
|
||||
decimals=0,
|
||||
links=link_to("atlas-jobs"),
|
||||
@ -1494,14 +1480,13 @@ def build_overview():
|
||||
46,
|
||||
"Platform Test Success Rate",
|
||||
None,
|
||||
{"h": 4, "w": 6, "x": 12, "y": 9},
|
||||
{"h": 5, "w": 6, "x": 12, "y": 7},
|
||||
unit="percent",
|
||||
targets=[
|
||||
{
|
||||
"refId": "A",
|
||||
"datasource": {"type": "datasource", "uid": "-- Dashboard --"},
|
||||
"dashboardUid": "atlas-jobs",
|
||||
"panelId": 19,
|
||||
"expr": PLATFORM_TEST_SUCCESS_RATE_BY_SUITE_SERIES,
|
||||
"legendFormat": "{{suite}}",
|
||||
}
|
||||
],
|
||||
legend_display="table",
|
||||
@ -1509,16 +1494,17 @@ def build_overview():
|
||||
legend_calcs=["last"],
|
||||
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"] = (
|
||||
"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)
|
||||
test_failures = stat_panel(
|
||||
47,
|
||||
"Platform Test Failures (24h)",
|
||||
TEST_FAILURES_24H_TOTAL,
|
||||
{"h": 4, "w": 6, "x": 18, "y": 9},
|
||||
{"h": 5, "w": 6, "x": 18, "y": 7},
|
||||
unit="none",
|
||||
decimals=0,
|
||||
instant=True,
|
||||
@ -2993,8 +2979,10 @@ def build_jobs_dashboard():
|
||||
legend_display="list",
|
||||
legend_placement="bottom",
|
||||
)
|
||||
suite_panel["fieldConfig"]["defaults"]["min"] = 0
|
||||
suite_panel["fieldConfig"]["defaults"]["max"] = 100
|
||||
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)
|
||||
|
||||
@ -3147,8 +3135,8 @@ def build_power_dashboard():
|
||||
text_mode="name_and_value",
|
||||
targets=[
|
||||
{"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": "C", "expr": f"round({CLIMATE_FAN_OUTSIDE_INLET_CURRENT})", "legendFormat": "Outside 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": "Out Inlet", "instant": True},
|
||||
{"refId": "D", "expr": f"round({CLIMATE_FAN_INTERIOR_CURRENT})", "legendFormat": "Interior", "instant": True},
|
||||
],
|
||||
thresholds={
|
||||
@ -3172,8 +3160,8 @@ def build_power_dashboard():
|
||||
max_value=10,
|
||||
targets=[
|
||||
{"refId": "A", "expr": CLIMATE_FAN_OUTLET_SERIES, "legendFormat": "Outlet"},
|
||||
{"refId": "B", "expr": CLIMATE_FAN_INSIDE_INLET_SERIES, "legendFormat": "Inside Inlet"},
|
||||
{"refId": "C", "expr": CLIMATE_FAN_OUTSIDE_INLET_SERIES, "legendFormat": "Outside Inlet"},
|
||||
{"refId": "B", "expr": CLIMATE_FAN_INSIDE_INLET_SERIES, "legendFormat": "In Inlet"},
|
||||
{"refId": "C", "expr": CLIMATE_FAN_OUTSIDE_INLET_SERIES, "legendFormat": "Out Inlet"},
|
||||
{"refId": "D", "expr": CLIMATE_FAN_INTERIOR_SERIES, "legendFormat": "Interior"},
|
||||
],
|
||||
legend_display="table",
|
||||
|
||||
@ -1253,13 +1253,15 @@
|
||||
"targets": [
|
||||
{
|
||||
"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}}"
|
||||
}
|
||||
],
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"unit": "percent"
|
||||
"unit": "percent",
|
||||
"min": 0,
|
||||
"max": 100
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
@ -1272,7 +1274,7 @@
|
||||
"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": {
|
||||
|
||||
@ -504,7 +504,7 @@
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 2,
|
||||
"w": 6,
|
||||
"w": 3,
|
||||
"x": 0,
|
||||
"y": 5
|
||||
},
|
||||
@ -581,8 +581,8 @@
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 2,
|
||||
"w": 6,
|
||||
"x": 6,
|
||||
"w": 3,
|
||||
"x": 3,
|
||||
"y": 5
|
||||
},
|
||||
"targets": [
|
||||
@ -658,8 +658,8 @@
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 2,
|
||||
"w": 6,
|
||||
"x": 12,
|
||||
"w": 3,
|
||||
"x": 6,
|
||||
"y": 5
|
||||
},
|
||||
"targets": [
|
||||
@ -727,8 +727,8 @@
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 2,
|
||||
"w": 6,
|
||||
"x": 18,
|
||||
"w": 3,
|
||||
"x": 9,
|
||||
"y": 5
|
||||
},
|
||||
"targets": [
|
||||
@ -796,9 +796,9 @@
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 2,
|
||||
"w": 6,
|
||||
"x": 0,
|
||||
"y": 7
|
||||
"w": 3,
|
||||
"x": 12,
|
||||
"y": 5
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -871,9 +871,9 @@
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 2,
|
||||
"w": 6,
|
||||
"x": 6,
|
||||
"y": 7
|
||||
"w": 3,
|
||||
"x": 15,
|
||||
"y": 5
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -946,9 +946,9 @@
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 2,
|
||||
"w": 6,
|
||||
"x": 12,
|
||||
"y": 7
|
||||
"w": 3,
|
||||
"x": 18,
|
||||
"y": 5
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1013,9 +1013,9 @@
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 2,
|
||||
"w": 6,
|
||||
"x": 18,
|
||||
"y": 7
|
||||
"w": 3,
|
||||
"x": 21,
|
||||
"y": 5
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1079,10 +1079,10 @@
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 5,
|
||||
"h": 6,
|
||||
"w": 4,
|
||||
"x": 0,
|
||||
"y": 13
|
||||
"y": 12
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1301,10 +1301,10 @@
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 5,
|
||||
"h": 6,
|
||||
"w": 4,
|
||||
"x": 4,
|
||||
"y": 13
|
||||
"y": 12
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1355,10 +1355,10 @@
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 5,
|
||||
"h": 6,
|
||||
"w": 4,
|
||||
"x": 8,
|
||||
"y": 13
|
||||
"y": 12
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1459,10 +1459,10 @@
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 5,
|
||||
"h": 6,
|
||||
"w": 4,
|
||||
"x": 12,
|
||||
"y": 13
|
||||
"y": 12
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1533,10 +1533,10 @@
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 5,
|
||||
"h": 6,
|
||||
"w": 4,
|
||||
"x": 16,
|
||||
"y": 13
|
||||
"y": 12
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1548,13 +1548,13 @@
|
||||
{
|
||||
"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))",
|
||||
"legendFormat": "Inside Inlet",
|
||||
"legendFormat": "In Inlet",
|
||||
"instant": true
|
||||
},
|
||||
{
|
||||
"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))",
|
||||
"legendFormat": "Outside Inlet",
|
||||
"legendFormat": "Out Inlet",
|
||||
"instant": true
|
||||
},
|
||||
{
|
||||
@ -1625,10 +1625,10 @@
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 5,
|
||||
"h": 6,
|
||||
"w": 4,
|
||||
"x": 20,
|
||||
"y": 13
|
||||
"y": 12
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1639,12 +1639,12 @@
|
||||
{
|
||||
"refId": "B",
|
||||
"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",
|
||||
"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",
|
||||
@ -1685,10 +1685,10 @@
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 4,
|
||||
"h": 5,
|
||||
"w": 6,
|
||||
"x": 0,
|
||||
"y": 9
|
||||
"y": 7
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1744,10 +1744,10 @@
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 4,
|
||||
"h": 5,
|
||||
"w": 6,
|
||||
"x": 6,
|
||||
"y": 9
|
||||
"y": 7
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1808,29 +1808,27 @@
|
||||
"type": "timeseries",
|
||||
"title": "Platform Test Success Rate",
|
||||
"datasource": {
|
||||
"type": "datasource",
|
||||
"uid": "-- Dashboard --"
|
||||
"type": "prometheus",
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 4,
|
||||
"h": 5,
|
||||
"w": 6,
|
||||
"x": 12,
|
||||
"y": 9
|
||||
"y": 7
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"datasource": {
|
||||
"type": "datasource",
|
||||
"uid": "-- Dashboard --"
|
||||
},
|
||||
"dashboardUid": "atlas-jobs",
|
||||
"panelId": 19
|
||||
"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}}"
|
||||
}
|
||||
],
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"unit": "percent"
|
||||
"unit": "percent",
|
||||
"min": 0,
|
||||
"max": 100
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
@ -1853,7 +1851,7 @@
|
||||
"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,
|
||||
@ -1864,10 +1862,10 @@
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 4,
|
||||
"h": 5,
|
||||
"w": 6,
|
||||
"x": 18,
|
||||
"y": 9
|
||||
"y": 7
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
|
||||
@ -454,13 +454,13 @@
|
||||
{
|
||||
"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))",
|
||||
"legendFormat": "Inside Inlet",
|
||||
"legendFormat": "In Inlet",
|
||||
"instant": true
|
||||
},
|
||||
{
|
||||
"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))",
|
||||
"legendFormat": "Outside Inlet",
|
||||
"legendFormat": "Out Inlet",
|
||||
"instant": true
|
||||
},
|
||||
{
|
||||
@ -539,12 +539,12 @@
|
||||
{
|
||||
"refId": "B",
|
||||
"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",
|
||||
"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",
|
||||
|
||||
@ -1262,13 +1262,15 @@ data:
|
||||
"targets": [
|
||||
{
|
||||
"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}}"
|
||||
}
|
||||
],
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"unit": "percent"
|
||||
"unit": "percent",
|
||||
"min": 0,
|
||||
"max": 100
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
@ -1281,7 +1283,7 @@ data:
|
||||
"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": {
|
||||
|
||||
@ -513,7 +513,7 @@ data:
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 2,
|
||||
"w": 6,
|
||||
"w": 3,
|
||||
"x": 0,
|
||||
"y": 5
|
||||
},
|
||||
@ -590,8 +590,8 @@ data:
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 2,
|
||||
"w": 6,
|
||||
"x": 6,
|
||||
"w": 3,
|
||||
"x": 3,
|
||||
"y": 5
|
||||
},
|
||||
"targets": [
|
||||
@ -667,8 +667,8 @@ data:
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 2,
|
||||
"w": 6,
|
||||
"x": 12,
|
||||
"w": 3,
|
||||
"x": 6,
|
||||
"y": 5
|
||||
},
|
||||
"targets": [
|
||||
@ -736,8 +736,8 @@ data:
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 2,
|
||||
"w": 6,
|
||||
"x": 18,
|
||||
"w": 3,
|
||||
"x": 9,
|
||||
"y": 5
|
||||
},
|
||||
"targets": [
|
||||
@ -805,9 +805,9 @@ data:
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 2,
|
||||
"w": 6,
|
||||
"x": 0,
|
||||
"y": 7
|
||||
"w": 3,
|
||||
"x": 12,
|
||||
"y": 5
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -880,9 +880,9 @@ data:
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 2,
|
||||
"w": 6,
|
||||
"x": 6,
|
||||
"y": 7
|
||||
"w": 3,
|
||||
"x": 15,
|
||||
"y": 5
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -955,9 +955,9 @@ data:
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 2,
|
||||
"w": 6,
|
||||
"x": 12,
|
||||
"y": 7
|
||||
"w": 3,
|
||||
"x": 18,
|
||||
"y": 5
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1022,9 +1022,9 @@ data:
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 2,
|
||||
"w": 6,
|
||||
"x": 18,
|
||||
"y": 7
|
||||
"w": 3,
|
||||
"x": 21,
|
||||
"y": 5
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1088,10 +1088,10 @@ data:
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 5,
|
||||
"h": 6,
|
||||
"w": 4,
|
||||
"x": 0,
|
||||
"y": 13
|
||||
"y": 12
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1310,10 +1310,10 @@ data:
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 5,
|
||||
"h": 6,
|
||||
"w": 4,
|
||||
"x": 4,
|
||||
"y": 13
|
||||
"y": 12
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1364,10 +1364,10 @@ data:
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 5,
|
||||
"h": 6,
|
||||
"w": 4,
|
||||
"x": 8,
|
||||
"y": 13
|
||||
"y": 12
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1468,10 +1468,10 @@ data:
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 5,
|
||||
"h": 6,
|
||||
"w": 4,
|
||||
"x": 12,
|
||||
"y": 13
|
||||
"y": 12
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1542,10 +1542,10 @@ data:
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 5,
|
||||
"h": 6,
|
||||
"w": 4,
|
||||
"x": 16,
|
||||
"y": 13
|
||||
"y": 12
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1557,13 +1557,13 @@ data:
|
||||
{
|
||||
"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))",
|
||||
"legendFormat": "Inside Inlet",
|
||||
"legendFormat": "In Inlet",
|
||||
"instant": true
|
||||
},
|
||||
{
|
||||
"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))",
|
||||
"legendFormat": "Outside Inlet",
|
||||
"legendFormat": "Out Inlet",
|
||||
"instant": true
|
||||
},
|
||||
{
|
||||
@ -1634,10 +1634,10 @@ data:
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 5,
|
||||
"h": 6,
|
||||
"w": 4,
|
||||
"x": 20,
|
||||
"y": 13
|
||||
"y": 12
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1648,12 +1648,12 @@ data:
|
||||
{
|
||||
"refId": "B",
|
||||
"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",
|
||||
"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",
|
||||
@ -1694,10 +1694,10 @@ data:
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 4,
|
||||
"h": 5,
|
||||
"w": 6,
|
||||
"x": 0,
|
||||
"y": 9
|
||||
"y": 7
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1753,10 +1753,10 @@ data:
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 4,
|
||||
"h": 5,
|
||||
"w": 6,
|
||||
"x": 6,
|
||||
"y": 9
|
||||
"y": 7
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
@ -1817,29 +1817,27 @@ data:
|
||||
"type": "timeseries",
|
||||
"title": "Platform Test Success Rate",
|
||||
"datasource": {
|
||||
"type": "datasource",
|
||||
"uid": "-- Dashboard --"
|
||||
"type": "prometheus",
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 4,
|
||||
"h": 5,
|
||||
"w": 6,
|
||||
"x": 12,
|
||||
"y": 9
|
||||
"y": 7
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"datasource": {
|
||||
"type": "datasource",
|
||||
"uid": "-- Dashboard --"
|
||||
},
|
||||
"dashboardUid": "atlas-jobs",
|
||||
"panelId": 19
|
||||
"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}}"
|
||||
}
|
||||
],
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"unit": "percent"
|
||||
"unit": "percent",
|
||||
"min": 0,
|
||||
"max": 100
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
@ -1862,7 +1860,7 @@ data:
|
||||
"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,
|
||||
@ -1873,10 +1871,10 @@ data:
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 4,
|
||||
"h": 5,
|
||||
"w": 6,
|
||||
"x": 18,
|
||||
"y": 9
|
||||
"y": 7
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
|
||||
@ -463,13 +463,13 @@ data:
|
||||
{
|
||||
"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))",
|
||||
"legendFormat": "Inside Inlet",
|
||||
"legendFormat": "In Inlet",
|
||||
"instant": true
|
||||
},
|
||||
{
|
||||
"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))",
|
||||
"legendFormat": "Outside Inlet",
|
||||
"legendFormat": "Out Inlet",
|
||||
"instant": true
|
||||
},
|
||||
{
|
||||
@ -548,12 +548,12 @@ data:
|
||||
{
|
||||
"refId": "B",
|
||||
"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",
|
||||
"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",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user