monitoring: elevate Atlas Testing dashboard and no-data fallbacks
This commit is contained in:
parent
26b8f23426
commit
411bc6b90d
@ -501,40 +501,65 @@ PLATFORM_TEST_SUITE_NAMES = [
|
|||||||
"data-prepper",
|
"data-prepper",
|
||||||
]
|
]
|
||||||
PLATFORM_TEST_SUITE_MATCHER = "|".join(PLATFORM_TEST_SUITE_NAMES)
|
PLATFORM_TEST_SUITE_MATCHER = "|".join(PLATFORM_TEST_SUITE_NAMES)
|
||||||
|
PLATFORM_TEST_SUCCESS_STATUS = "ok|passed|success"
|
||||||
PLATFORM_TEST_SUCCESS_EVENTS_30D = (
|
PLATFORM_TEST_SUCCESS_EVENTS_30D = (
|
||||||
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",status=~"ok|passed|success"}}[30d])) or on() vector(0))'
|
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",status=~"{PLATFORM_TEST_SUCCESS_STATUS}"}}[30d])) or on() vector(0))'
|
||||||
)
|
)
|
||||||
PLATFORM_TEST_TOTAL_EVENTS_30D = (
|
PLATFORM_TEST_TOTAL_EVENTS_30D = (
|
||||||
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}"}}[30d])) or on() vector(0))'
|
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}"}}[30d])) or on() vector(0))'
|
||||||
)
|
)
|
||||||
|
PLATFORM_TEST_SUCCESS_EVENTS_7D = (
|
||||||
|
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",status=~"{PLATFORM_TEST_SUCCESS_STATUS}"}}[7d])) or on() vector(0))'
|
||||||
|
)
|
||||||
|
PLATFORM_TEST_TOTAL_EVENTS_7D = (
|
||||||
|
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}"}}[7d])) or on() vector(0))'
|
||||||
|
)
|
||||||
|
PLATFORM_TEST_SUCCESS_EVENTS_24H = (
|
||||||
|
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",status=~"{PLATFORM_TEST_SUCCESS_STATUS}"}}[24h])) or on() vector(0))'
|
||||||
|
)
|
||||||
|
PLATFORM_TEST_TOTAL_EVENTS_24H = (
|
||||||
|
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}"}}[24h])) or on() vector(0))'
|
||||||
|
)
|
||||||
TEST_SUCCESS_RATE = (
|
TEST_SUCCESS_RATE = (
|
||||||
f"100 * ({PLATFORM_TEST_SUCCESS_EVENTS_30D}) / clamp_min(({PLATFORM_TEST_TOTAL_EVENTS_30D}), 1)"
|
f"100 * ({PLATFORM_TEST_SUCCESS_EVENTS_30D}) / clamp_min(({PLATFORM_TEST_TOTAL_EVENTS_30D}), 1)"
|
||||||
)
|
)
|
||||||
|
TEST_SUCCESS_RATE_7D = (
|
||||||
|
f"100 * ({PLATFORM_TEST_SUCCESS_EVENTS_7D}) / clamp_min(({PLATFORM_TEST_TOTAL_EVENTS_7D}), 1)"
|
||||||
|
)
|
||||||
|
TEST_SUCCESS_RATE_24H = (
|
||||||
|
f"100 * ({PLATFORM_TEST_SUCCESS_EVENTS_24H}) / clamp_min(({PLATFORM_TEST_TOTAL_EVENTS_24H}), 1)"
|
||||||
|
)
|
||||||
TEST_FAILURES_24H_TOTAL = (
|
TEST_FAILURES_24H_TOTAL = (
|
||||||
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",status!~"ok|passed|success"}}[24h])) or on() vector(0))'
|
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",status!~"{PLATFORM_TEST_SUCCESS_STATUS}"}}[24h])) or on() vector(0))'
|
||||||
)
|
)
|
||||||
PLATFORM_TEST_FAILURES_24H_BY_SUITE = (
|
PLATFORM_TEST_FAILURES_24H_BY_SUITE = (
|
||||||
f'sort_desc(sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",status!~"ok|passed|success"}}[24h])))'
|
f'sort_desc(sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",status!~"{PLATFORM_TEST_SUCCESS_STATUS}"}}[24h])))'
|
||||||
)
|
)
|
||||||
PLATFORM_TEST_ACTIVITY_30D = (
|
PLATFORM_TEST_ACTIVITY_30D = (
|
||||||
f'sum by (suite, status) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}"}}[30d]))'
|
f'sum by (suite, status) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}"}}[30d]))'
|
||||||
)
|
)
|
||||||
|
PLATFORM_TEST_RUNS_24H_TOTAL = PLATFORM_TEST_TOTAL_EVENTS_24H
|
||||||
|
PLATFORM_TEST_ACTIVE_SUITES_24H = (
|
||||||
|
f'sum((sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}"}}[24h])) > 0)) '
|
||||||
|
"or on() vector(0)"
|
||||||
|
)
|
||||||
PLATFORM_TEST_POINT_WINDOW = "1h"
|
PLATFORM_TEST_POINT_WINDOW = "1h"
|
||||||
PLATFORM_TEST_SUCCESS_RATE_SUITE_TARGETS = [
|
PLATFORM_TEST_SUCCESS_RATE_SUITE_TARGETS = [
|
||||||
{
|
{
|
||||||
"refId": chr(ord("A") + index),
|
"refId": chr(ord("A") + index),
|
||||||
"expr": (
|
"expr": (
|
||||||
f'(100 * (sum(increase(platform_quality_gate_runs_total{{suite="{suite}",status=~"ok|passed|success"}}'
|
f'(100 * (sum(increase(platform_quality_gate_runs_total{{suite="{suite}",status=~"{PLATFORM_TEST_SUCCESS_STATUS}"}}'
|
||||||
f'[{PLATFORM_TEST_POINT_WINDOW}]))) / '
|
f'[{PLATFORM_TEST_POINT_WINDOW}]))) / '
|
||||||
f'clamp_min((sum(increase(platform_quality_gate_runs_total{{suite="{suite}"}}[{PLATFORM_TEST_POINT_WINDOW}]))), 1)) '
|
f'clamp_min((sum(increase(platform_quality_gate_runs_total{{suite="{suite}"}}[{PLATFORM_TEST_POINT_WINDOW}]))), 1)) '
|
||||||
f'and on() ((sum(increase(platform_quality_gate_runs_total{{suite="{suite}"}}[{PLATFORM_TEST_POINT_WINDOW}]))) > 0)'
|
f'and on() ((sum(increase(platform_quality_gate_runs_total{{suite="{suite}"}}[{PLATFORM_TEST_POINT_WINDOW}]))) > 0) '
|
||||||
|
"or on() vector(0)"
|
||||||
),
|
),
|
||||||
"legendFormat": suite,
|
"legendFormat": suite,
|
||||||
}
|
}
|
||||||
for index, suite in enumerate(PLATFORM_TEST_SUITE_NAMES)
|
for index, suite in enumerate(PLATFORM_TEST_SUITE_NAMES)
|
||||||
]
|
]
|
||||||
PLATFORM_TEST_SUCCESS_RATE_24H_BY_SUITE = (
|
PLATFORM_TEST_SUCCESS_RATE_24H_BY_SUITE = (
|
||||||
f'sort_desc((100 * (sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",status=~"ok|passed|success"}}[24h]))) '
|
f'sort_desc((100 * (sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",status=~"{PLATFORM_TEST_SUCCESS_STATUS}"}}[24h]))) '
|
||||||
f'/ clamp_min((sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}"}}[24h]))), 1)) '
|
f'/ clamp_min((sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}"}}[24h]))), 1)) '
|
||||||
f'and on(suite) ((sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}"}}[24h]))) > 0))'
|
f'and on(suite) ((sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}"}}[24h]))) > 0))'
|
||||||
)
|
)
|
||||||
@ -906,6 +931,7 @@ def table_panel(
|
|||||||
filterable=True,
|
filterable=True,
|
||||||
footer=None,
|
footer=None,
|
||||||
format=None,
|
format=None,
|
||||||
|
description=None,
|
||||||
):
|
):
|
||||||
"""Return a Grafana table panel definition."""
|
"""Return a Grafana table panel definition."""
|
||||||
# Optional PromQL subquery helpers in expr: share(), etc.
|
# Optional PromQL subquery helpers in expr: share(), etc.
|
||||||
@ -930,6 +956,8 @@ def table_panel(
|
|||||||
}
|
}
|
||||||
if transformations:
|
if transformations:
|
||||||
panel["transformations"] = transformations
|
panel["transformations"] = transformations
|
||||||
|
if description:
|
||||||
|
panel["description"] = description
|
||||||
return panel
|
return panel
|
||||||
|
|
||||||
|
|
||||||
@ -1026,6 +1054,25 @@ def namespace_scope_links(var_name):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def testing_suite_variable():
|
||||||
|
options = [{"text": suite, "value": suite, "selected": False} for suite in PLATFORM_TEST_SUITE_NAMES]
|
||||||
|
return {
|
||||||
|
"name": "suite",
|
||||||
|
"label": "Suite",
|
||||||
|
"type": "custom",
|
||||||
|
"query": ",".join(PLATFORM_TEST_SUITE_NAMES),
|
||||||
|
"current": {"text": "All", "value": "$__all", "selected": True},
|
||||||
|
"options": options,
|
||||||
|
"hide": 0,
|
||||||
|
"multi": False,
|
||||||
|
"includeAll": True,
|
||||||
|
"allValue": PLATFORM_TEST_SUITE_MATCHER,
|
||||||
|
"refresh": 1,
|
||||||
|
"sort": 1,
|
||||||
|
"skipUrlSync": False,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def bargauge_panel(
|
def bargauge_panel(
|
||||||
panel_id,
|
panel_id,
|
||||||
title,
|
title,
|
||||||
@ -1120,8 +1167,27 @@ def text_panel(panel_id, title, content, grid):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
DASHBOARD_LINK_TITLES = {
|
||||||
|
"atlas-overview": "Open Atlas Overview",
|
||||||
|
"atlas-pods": "Open Atlas Pods",
|
||||||
|
"atlas-nodes": "Open Atlas Nodes",
|
||||||
|
"atlas-storage": "Open Atlas Storage",
|
||||||
|
"atlas-network": "Open Atlas Network",
|
||||||
|
"atlas-mail": "Open Atlas Mail",
|
||||||
|
"atlas-jobs": "Open Atlas Testing",
|
||||||
|
"atlas-power": "Open Atlas Power",
|
||||||
|
"atlas-gpu": "Open Atlas GPU",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def link_to(uid):
|
def link_to(uid):
|
||||||
return [{"title": f"Open {uid} dashboard", "url": f"/d/{uid}", "targetBlank": True}]
|
return [
|
||||||
|
{
|
||||||
|
"title": DASHBOARD_LINK_TITLES.get(uid, f"Open {uid} dashboard"),
|
||||||
|
"url": f"/d/{uid}",
|
||||||
|
"targetBlank": True,
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
@ -1959,7 +2025,13 @@ def build_overview():
|
|||||||
},
|
},
|
||||||
"time": {"from": "now-1h", "to": "now"},
|
"time": {"from": "now-1h", "to": "now"},
|
||||||
"refresh": "1m",
|
"refresh": "1m",
|
||||||
"links": [],
|
"links": [
|
||||||
|
{
|
||||||
|
"title": "Atlas Testing (Internal)",
|
||||||
|
"url": "/d/atlas-jobs",
|
||||||
|
"targetBlank": False,
|
||||||
|
}
|
||||||
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2844,274 +2916,161 @@ def build_mail_dashboard():
|
|||||||
|
|
||||||
def build_jobs_dashboard():
|
def build_jobs_dashboard():
|
||||||
panels = []
|
panels = []
|
||||||
age_thresholds = {
|
suite_var = "${suite:regex}"
|
||||||
"mode": "absolute",
|
success_thresholds = {
|
||||||
"steps": [
|
|
||||||
{"color": "green", "value": None},
|
|
||||||
{"color": "yellow", "value": 6},
|
|
||||||
{"color": "orange", "value": 24},
|
|
||||||
{"color": "red", "value": 48},
|
|
||||||
],
|
|
||||||
}
|
|
||||||
recent_error_thresholds = {
|
|
||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{"color": "red", "value": None},
|
{"color": "red", "value": None},
|
||||||
{"color": "orange", "value": 1},
|
{"color": "orange", "value": 70},
|
||||||
{"color": "yellow", "value": 6},
|
{"color": "yellow", "value": 85},
|
||||||
{"color": "green", "value": 24},
|
{"color": "green", "value": 95},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
count_thresholds = {
|
||||||
task_error_thresholds = {
|
|
||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{"color": "green", "value": None},
|
{"color": "green", "value": None},
|
||||||
{"color": "yellow", "value": 1},
|
{"color": "yellow", "value": 1},
|
||||||
{"color": "orange", "value": 3},
|
{"color": "orange", "value": 3},
|
||||||
{"color": "red", "value": 5},
|
{"color": "red", "value": 6},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
panels.append(
|
panels.append(
|
||||||
bargauge_panel(
|
text_panel(
|
||||||
1,
|
1,
|
||||||
"Ariadne Task Errors (range)",
|
"Testing Modes",
|
||||||
ARIADNE_TASK_ERRORS_RANGE,
|
(
|
||||||
{"h": 7, "w": 8, "x": 0, "y": 0},
|
"### Atlas Testing\n"
|
||||||
unit="none",
|
"- **Overview mode**: set `Suite=All` to compare every project.\n"
|
||||||
|
"- **Suite drilldown mode**: choose one `Suite` to inspect run outcomes, coverage drift, and failure mix.\n"
|
||||||
|
"- Jenkins drilldown: [ananke](https://jenkins.bstein.dev/job/ananke/) · "
|
||||||
|
"[ariadne](https://jenkins.bstein.dev/job/ariadne/) · "
|
||||||
|
"[atlasbot](https://jenkins.bstein.dev/job/atlasbot/) · "
|
||||||
|
"[bstein-dev-home](https://jenkins.bstein.dev/job/bstein-dev-home/) · "
|
||||||
|
"[lesavka](https://jenkins.bstein.dev/job/lesavka/) · "
|
||||||
|
"[metis](https://jenkins.bstein.dev/job/metis/) · "
|
||||||
|
"[pegasus](https://jenkins.bstein.dev/job/pegasus/) · "
|
||||||
|
"[titan-iac](https://jenkins.bstein.dev/job/titan-iac/) · "
|
||||||
|
"[typhon](https://jenkins.bstein.dev/job/typhon/)"
|
||||||
|
),
|
||||||
|
{"h": 4, "w": 24, "x": 0, "y": 0},
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
panels.append(
|
||||||
|
stat_panel(
|
||||||
|
2,
|
||||||
|
"Success Rate (24h)",
|
||||||
|
TEST_SUCCESS_RATE_24H,
|
||||||
|
{"h": 6, "w": 4, "x": 0, "y": 4},
|
||||||
|
unit="percent",
|
||||||
|
decimals=2,
|
||||||
instant=True,
|
instant=True,
|
||||||
legend="{{task}}",
|
thresholds=success_thresholds,
|
||||||
thresholds=task_error_thresholds,
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
panels.append(
|
panels.append(
|
||||||
{
|
stat_panel(
|
||||||
"id": 2,
|
|
||||||
"type": "timeseries",
|
|
||||||
"title": "Ariadne Attempts / Failures",
|
|
||||||
"datasource": PROM_DS,
|
|
||||||
"gridPos": {"h": 7, "w": 8, "x": 8, "y": 0},
|
|
||||||
"targets": [
|
|
||||||
{"expr": ARIADNE_TASK_ATTEMPTS_SERIES, "refId": "A", "legendFormat": "Attempts"},
|
|
||||||
{"expr": ARIADNE_TASK_FAILURES_SERIES, "refId": "B", "legendFormat": "Failures"},
|
|
||||||
],
|
|
||||||
"fieldConfig": {
|
|
||||||
"defaults": {"unit": "none"},
|
|
||||||
"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"}}
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"legend": {"displayMode": "table", "placement": "right"},
|
|
||||||
"tooltip": {"mode": "multi"},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
)
|
|
||||||
panels.append(
|
|
||||||
bargauge_panel(
|
|
||||||
3,
|
3,
|
||||||
"One-off Job Pods (age hours)",
|
"Success Rate (7d)",
|
||||||
ONEOFF_JOB_POD_AGE_HOURS,
|
TEST_SUCCESS_RATE_7D,
|
||||||
{"h": 7, "w": 8, "x": 16, "y": 0},
|
{"h": 6, "w": 4, "x": 4, "y": 4},
|
||||||
unit="h",
|
unit="percent",
|
||||||
instant=True,
|
|
||||||
legend="{{namespace}}/{{pod}}",
|
|
||||||
thresholds=age_thresholds,
|
|
||||||
limit=12,
|
|
||||||
decimals=2,
|
decimals=2,
|
||||||
|
instant=True,
|
||||||
|
thresholds=success_thresholds,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
panels.append(
|
panels.append(
|
||||||
stat_panel(
|
stat_panel(
|
||||||
4,
|
4,
|
||||||
"Ariadne Schedules Stale (>36h)",
|
"Success Rate (30d)",
|
||||||
ARIADNE_SCHEDULE_STALE_COUNT,
|
TEST_SUCCESS_RATE,
|
||||||
{"h": 4, "w": 4, "x": 0, "y": 7},
|
{"h": 6, "w": 4, "x": 8, "y": 4},
|
||||||
unit="none",
|
unit="percent",
|
||||||
thresholds={
|
decimals=2,
|
||||||
"mode": "absolute",
|
instant=True,
|
||||||
"steps": [
|
thresholds=success_thresholds,
|
||||||
{"color": "green", "value": None},
|
|
||||||
{"color": "yellow", "value": 1},
|
|
||||||
{"color": "orange", "value": 2},
|
|
||||||
{"color": "red", "value": 3},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
panels.append(
|
panels.append(
|
||||||
stat_panel(
|
stat_panel(
|
||||||
5,
|
5,
|
||||||
"Ariadne Schedules Missing Success",
|
"Failures (24h)",
|
||||||
ARIADNE_SCHEDULE_MISSING_COUNT,
|
TEST_FAILURES_24H_TOTAL,
|
||||||
{"h": 4, "w": 4, "x": 4, "y": 7},
|
{"h": 6, "w": 4, "x": 12, "y": 4},
|
||||||
unit="none",
|
unit="none",
|
||||||
|
instant=True,
|
||||||
|
thresholds=count_thresholds,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
panels.append(
|
panels.append(
|
||||||
stat_panel(
|
stat_panel(
|
||||||
6,
|
6,
|
||||||
"Ariadne Schedules Failed Last Run",
|
"Runs (24h)",
|
||||||
ARIADNE_SCHEDULE_FAILED_COUNT,
|
PLATFORM_TEST_RUNS_24H_TOTAL,
|
||||||
{"h": 4, "w": 4, "x": 8, "y": 7},
|
{"h": 6, "w": 4, "x": 16, "y": 4},
|
||||||
unit="none",
|
unit="none",
|
||||||
|
instant=True,
|
||||||
|
thresholds={
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [{"color": "red", "value": None}, {"color": "green", "value": 1}],
|
||||||
|
},
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
panels.append(
|
panels.append(
|
||||||
stat_panel(
|
stat_panel(
|
||||||
7,
|
7,
|
||||||
"Ariadne Task Errors (1h)",
|
"Suites Active (24h)",
|
||||||
ARIADNE_TASK_ERRORS_1H_TOTAL,
|
PLATFORM_TEST_ACTIVE_SUITES_24H,
|
||||||
{"h": 4, "w": 4, "x": 12, "y": 7},
|
{"h": 6, "w": 4, "x": 20, "y": 4},
|
||||||
unit="none",
|
unit="none",
|
||||||
|
decimals=0,
|
||||||
|
instant=True,
|
||||||
|
thresholds={
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{"color": "red", "value": None},
|
||||||
|
{"color": "yellow", "value": 4},
|
||||||
|
{"color": "green", "value": 8},
|
||||||
|
],
|
||||||
|
},
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
panels.append(
|
panels.append(
|
||||||
stat_panel(
|
bargauge_panel(
|
||||||
8,
|
8,
|
||||||
"Ariadne Task Errors (24h)",
|
"Suite Scoreboard: Success Rate (24h)",
|
||||||
ARIADNE_TASK_ERRORS_24H_TOTAL,
|
PLATFORM_TEST_SUCCESS_RATE_24H_BY_SUITE,
|
||||||
{"h": 4, "w": 4, "x": 16, "y": 7},
|
{"h": 8, "w": 12, "x": 0, "y": 10},
|
||||||
unit="none",
|
unit="percent",
|
||||||
|
instant=True,
|
||||||
|
legend="{{suite}}",
|
||||||
|
thresholds=success_thresholds,
|
||||||
|
decimals=2,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
panels.append(
|
panels.append(
|
||||||
stat_panel(
|
bargauge_panel(
|
||||||
9,
|
9,
|
||||||
"Ariadne Task Runs (1h)",
|
"Suite Scoreboard: Failures (24h)",
|
||||||
ARIADNE_TASK_RUNS_1H_TOTAL,
|
PLATFORM_TEST_FAILURES_24H_BY_SUITE,
|
||||||
{"h": 4, "w": 4, "x": 20, "y": 7},
|
{"h": 8, "w": 12, "x": 12, "y": 10},
|
||||||
unit="none",
|
|
||||||
)
|
|
||||||
)
|
|
||||||
panels.append(
|
|
||||||
bargauge_panel(
|
|
||||||
10,
|
|
||||||
"Ariadne Schedule Last Error (hours ago)",
|
|
||||||
ARIADNE_SCHEDULE_LAST_ERROR_RANGE_HOURS,
|
|
||||||
{"h": 6, "w": 12, "x": 0, "y": 17},
|
|
||||||
unit="h",
|
|
||||||
instant=True,
|
|
||||||
legend="{{task}}",
|
|
||||||
thresholds=recent_error_thresholds,
|
|
||||||
decimals=2,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
panels.append(
|
|
||||||
bargauge_panel(
|
|
||||||
11,
|
|
||||||
"Ariadne Schedule Last Success (hours ago)",
|
|
||||||
ARIADNE_SCHEDULE_LAST_SUCCESS_RANGE_HOURS,
|
|
||||||
{"h": 6, "w": 12, "x": 12, "y": 17},
|
|
||||||
unit="h",
|
|
||||||
instant=True,
|
|
||||||
legend="{{task}}",
|
|
||||||
thresholds=age_thresholds,
|
|
||||||
decimals=2,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
panels.append(
|
|
||||||
bargauge_panel(
|
|
||||||
12,
|
|
||||||
"Ariadne Fast Schedule Last Success (hours ago)",
|
|
||||||
ARIADNE_FAST_SCHEDULE_LAST_SUCCESS_RANGE_HOURS,
|
|
||||||
{"h": 6, "w": 12, "x": 0, "y": 23},
|
|
||||||
unit="h",
|
|
||||||
instant=True,
|
|
||||||
legend="{{task}}",
|
|
||||||
thresholds=age_thresholds,
|
|
||||||
decimals=2,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
panels.append(
|
|
||||||
bargauge_panel(
|
|
||||||
13,
|
|
||||||
"Ariadne Fast Schedule Next Run (hours from now)",
|
|
||||||
ARIADNE_FAST_SCHEDULE_NEXT_RUN_HOURS,
|
|
||||||
{"h": 6, "w": 12, "x": 12, "y": 23},
|
|
||||||
unit="h",
|
|
||||||
instant=True,
|
|
||||||
legend="{{task}}",
|
|
||||||
thresholds=age_thresholds,
|
|
||||||
decimals=2,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
panels.append(
|
|
||||||
bargauge_panel(
|
|
||||||
14,
|
|
||||||
"Ariadne Task Errors (1h)",
|
|
||||||
ARIADNE_TASK_ERRORS_1H,
|
|
||||||
{"h": 6, "w": 12, "x": 0, "y": 29},
|
|
||||||
unit="none",
|
unit="none",
|
||||||
instant=True,
|
instant=True,
|
||||||
legend="{{task}}",
|
legend="{{suite}}",
|
||||||
thresholds=task_error_thresholds,
|
thresholds=count_thresholds,
|
||||||
|
decimals=0,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
panels.append(
|
|
||||||
bargauge_panel(
|
|
||||||
15,
|
|
||||||
"Ariadne Task Errors (30d)",
|
|
||||||
ARIADNE_TASK_ERRORS_30D,
|
|
||||||
{"h": 6, "w": 12, "x": 12, "y": 29},
|
|
||||||
unit="none",
|
|
||||||
instant=True,
|
|
||||||
legend="{{task}}",
|
|
||||||
thresholds=task_error_thresholds,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
panels.append(
|
|
||||||
bargauge_panel(
|
|
||||||
16,
|
|
||||||
"Ariadne Access Requests",
|
|
||||||
ARIADNE_ACCESS_REQUESTS,
|
|
||||||
{"h": 6, "w": 8, "x": 0, "y": 11},
|
|
||||||
unit="none",
|
|
||||||
instant=True,
|
|
||||||
legend="{{status}}",
|
|
||||||
)
|
|
||||||
)
|
|
||||||
coverage_panel = stat_panel(
|
|
||||||
17,
|
|
||||||
"Platform Test Success Rate (30d)",
|
|
||||||
TEST_SUCCESS_RATE,
|
|
||||||
{"h": 6, "w": 4, "x": 8, "y": 11},
|
|
||||||
unit="percent",
|
|
||||||
decimals=2,
|
|
||||||
instant=True,
|
|
||||||
)
|
|
||||||
coverage_panel["description"] = "Internal rollup across Ariadne task runs and Metis build/flash outcomes."
|
|
||||||
panels.append(coverage_panel)
|
|
||||||
tests_panel = table_panel(
|
|
||||||
18,
|
|
||||||
"Platform Test Activity (30d)",
|
|
||||||
PLATFORM_TEST_ACTIVITY_30D,
|
|
||||||
{"h": 6, "w": 12, "x": 12, "y": 11},
|
|
||||||
unit="none",
|
|
||||||
transformations=[{"id": "labelsToFields", "options": {}}, {"id": "sortBy", "options": {"fields": ["Value"], "order": "desc"}}],
|
|
||||||
instant=True,
|
|
||||||
)
|
|
||||||
tests_panel["description"] = (
|
|
||||||
"Atlas Overview test panels depend on this internal activity table sourced from Ariadne and Metis counters."
|
|
||||||
)
|
|
||||||
panels.append(tests_panel)
|
|
||||||
suite_panel = timeseries_panel(
|
suite_panel = timeseries_panel(
|
||||||
19,
|
10,
|
||||||
"Platform Test Success Rate by Suite",
|
"Suite Success History (1h points)",
|
||||||
None,
|
None,
|
||||||
{"h": 6, "w": 16, "x": 8, "y": 17},
|
{"h": 8, "w": 24, "x": 0, "y": 18},
|
||||||
unit="percent",
|
unit="percent",
|
||||||
targets=PLATFORM_TEST_SUCCESS_RATE_SUITE_TARGETS,
|
targets=PLATFORM_TEST_SUCCESS_RATE_SUITE_TARGETS,
|
||||||
legend_display="list",
|
legend_display="list",
|
||||||
@ -3123,27 +3082,153 @@ def build_jobs_dashboard():
|
|||||||
"drawStyle": "line",
|
"drawStyle": "line",
|
||||||
"lineInterpolation": "linear",
|
"lineInterpolation": "linear",
|
||||||
"lineWidth": 2,
|
"lineWidth": 2,
|
||||||
"fillOpacity": 10,
|
"fillOpacity": 8,
|
||||||
"showPoints": "always",
|
"showPoints": "always",
|
||||||
"pointSize": 4,
|
"pointSize": 3,
|
||||||
"spanNulls": True,
|
"spanNulls": True,
|
||||||
}
|
}
|
||||||
suite_panel["description"] = (
|
|
||||||
"Per-run interval pass points (0-100) per suite. Existing suites: ariadne, metis, ananke; additional suites appear automatically when platform_quality_gate_runs_total is published."
|
|
||||||
)
|
|
||||||
panels.append(suite_panel)
|
panels.append(suite_panel)
|
||||||
|
|
||||||
|
panels.append(
|
||||||
|
table_panel(
|
||||||
|
11,
|
||||||
|
"Suite Activity Matrix (30d)",
|
||||||
|
PLATFORM_TEST_ACTIVITY_30D,
|
||||||
|
{"h": 8, "w": 24, "x": 0, "y": 26},
|
||||||
|
unit="none",
|
||||||
|
transformations=[
|
||||||
|
{"id": "labelsToFields", "options": {}},
|
||||||
|
{"id": "sortBy", "options": {"fields": ["Value"], "order": "desc"}},
|
||||||
|
],
|
||||||
|
instant=True,
|
||||||
|
description="Totals by suite and status over the last 30 days.",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
panels.append(
|
||||||
|
timeseries_panel(
|
||||||
|
12,
|
||||||
|
"Selected Suite Run Outcomes",
|
||||||
|
None,
|
||||||
|
{"h": 8, "w": 12, "x": 0, "y": 34},
|
||||||
|
unit="none",
|
||||||
|
targets=[
|
||||||
|
{
|
||||||
|
"refId": "A",
|
||||||
|
"expr": f'sum(increase(platform_quality_gate_runs_total{{suite=~"{suite_var}",status=~"{PLATFORM_TEST_SUCCESS_STATUS}"}}[$__interval])) or on() vector(0)',
|
||||||
|
"legendFormat": "Success",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"refId": "B",
|
||||||
|
"expr": f'sum(increase(platform_quality_gate_runs_total{{suite=~"{suite_var}",status!~"{PLATFORM_TEST_SUCCESS_STATUS}"}}[$__interval])) or on() vector(0)',
|
||||||
|
"legendFormat": "Failure",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"refId": "C",
|
||||||
|
"expr": f'sum(increase(platform_quality_gate_runs_total{{suite=~"{suite_var}"}}[$__interval])) or on() vector(0)',
|
||||||
|
"legendFormat": "Total",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
legend_display="table",
|
||||||
|
legend_placement="right",
|
||||||
|
legend_calcs=["lastNotNull", "sum"],
|
||||||
|
description="Use Suite Drilldown to isolate one project.",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
panels.append(
|
||||||
|
timeseries_panel(
|
||||||
|
13,
|
||||||
|
"Selected Suite Hygiene & Coverage History",
|
||||||
|
None,
|
||||||
|
{"h": 8, "w": 12, "x": 12, "y": 34},
|
||||||
|
unit="none",
|
||||||
|
targets=[
|
||||||
|
{
|
||||||
|
"refId": "A",
|
||||||
|
"expr": f'max_over_time(platform_quality_gate_workspace_line_coverage_percent{{suite=~"{suite_var}"}}[$__interval])',
|
||||||
|
"legendFormat": "{{suite}} coverage %",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"refId": "B",
|
||||||
|
"expr": f'max_over_time(platform_quality_gate_source_lines_over_500_total{{suite=~"{suite_var}"}}[$__interval])',
|
||||||
|
"legendFormat": "{{suite}} files >500 LOC",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
legend_display="table",
|
||||||
|
legend_placement="right",
|
||||||
|
legend_calcs=["lastNotNull", "max"],
|
||||||
|
description="Coverage and LOC hygiene trend for selected suite(s).",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
panels.append(
|
||||||
|
table_panel(
|
||||||
|
14,
|
||||||
|
"Selected Suite Failure Mix (30d)",
|
||||||
|
f'sum by (suite, status) (increase(platform_quality_gate_runs_total{{suite=~"{suite_var}",status!~"{PLATFORM_TEST_SUCCESS_STATUS}"}}[30d]))',
|
||||||
|
{"h": 8, "w": 12, "x": 0, "y": 42},
|
||||||
|
unit="none",
|
||||||
|
transformations=[
|
||||||
|
{"id": "labelsToFields", "options": {}},
|
||||||
|
{"id": "sortBy", "options": {"fields": ["Value"], "order": "desc"}},
|
||||||
|
],
|
||||||
|
instant=True,
|
||||||
|
description="Breakdown of non-success outcomes by status over 30 days.",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
panels.append(
|
||||||
|
table_panel(
|
||||||
|
15,
|
||||||
|
"Selected Suite Latest Test Counters",
|
||||||
|
f'sum by (suite, result, __name__) ({{__name__=~".*_quality_gate_tests_total",suite=~"{suite_var}"}})',
|
||||||
|
{"h": 8, "w": 12, "x": 12, "y": 42},
|
||||||
|
unit="none",
|
||||||
|
transformations=[
|
||||||
|
{"id": "labelsToFields", "options": {}},
|
||||||
|
{"id": "sortBy", "options": {"fields": ["Value"], "order": "desc"}},
|
||||||
|
],
|
||||||
|
instant=True,
|
||||||
|
description="Latest per-suite counters (passed/failed/error/skipped/total) from each pipeline exporter.",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
panels.append(
|
||||||
|
table_panel(
|
||||||
|
16,
|
||||||
|
"Selected Suite Check-Level Failures",
|
||||||
|
(
|
||||||
|
f'sum by (suite, check, result, __name__) '
|
||||||
|
f'({{__name__=~".*_quality_gate_checks_total",suite=~"{suite_var}",result!~"ok|passed|success"}})'
|
||||||
|
),
|
||||||
|
{"h": 8, "w": 24, "x": 0, "y": 50},
|
||||||
|
unit="none",
|
||||||
|
transformations=[
|
||||||
|
{"id": "labelsToFields", "options": {}},
|
||||||
|
{"id": "sortBy", "options": {"fields": ["Value"], "order": "desc"}},
|
||||||
|
],
|
||||||
|
instant=True,
|
||||||
|
description="Per-check failure details for suites that publish quality_gate_checks_total metrics.",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"uid": "atlas-jobs",
|
"uid": "atlas-jobs",
|
||||||
"title": "Atlas Jobs",
|
"title": "Atlas Testing",
|
||||||
"folderUid": PRIVATE_FOLDER,
|
"folderUid": PRIVATE_FOLDER,
|
||||||
"editable": True,
|
"editable": True,
|
||||||
"panels": panels,
|
"panels": panels,
|
||||||
"time": {"from": "now-7d", "to": "now"},
|
"time": {"from": "now-30d", "to": "now"},
|
||||||
"annotations": {"list": []},
|
"annotations": {"list": []},
|
||||||
"schemaVersion": 39,
|
"schemaVersion": 39,
|
||||||
"style": "dark",
|
"style": "dark",
|
||||||
"tags": ["atlas", "jobs", "ariadne"],
|
"tags": ["atlas", "testing", "quality-gate", "ci"],
|
||||||
|
"templating": {
|
||||||
|
"list": [
|
||||||
|
testing_suite_variable(),
|
||||||
|
]
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -129,7 +129,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-pods dashboard",
|
"title": "Open Atlas Pods",
|
||||||
"url": "/d/atlas-pods",
|
"url": "/d/atlas-pods",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -204,7 +204,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-pods dashboard",
|
"title": "Open Atlas Pods",
|
||||||
"url": "/d/atlas-pods",
|
"url": "/d/atlas-pods",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -352,7 +352,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-pods dashboard",
|
"title": "Open Atlas Pods",
|
||||||
"url": "/d/atlas-pods",
|
"url": "/d/atlas-pods",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -427,7 +427,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-pods dashboard",
|
"title": "Open Atlas Pods",
|
||||||
"url": "/d/atlas-pods",
|
"url": "/d/atlas-pods",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -565,7 +565,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-nodes dashboard",
|
"title": "Open Atlas Nodes",
|
||||||
"url": "/d/atlas-nodes",
|
"url": "/d/atlas-nodes",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -642,7 +642,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-nodes dashboard",
|
"title": "Open Atlas Nodes",
|
||||||
"url": "/d/atlas-nodes",
|
"url": "/d/atlas-nodes",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -711,7 +711,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-nodes dashboard",
|
"title": "Open Atlas Nodes",
|
||||||
"url": "/d/atlas-nodes",
|
"url": "/d/atlas-nodes",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -780,7 +780,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-nodes dashboard",
|
"title": "Open Atlas Nodes",
|
||||||
"url": "/d/atlas-nodes",
|
"url": "/d/atlas-nodes",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -855,7 +855,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-storage dashboard",
|
"title": "Open Atlas Storage",
|
||||||
"url": "/d/atlas-storage",
|
"url": "/d/atlas-storage",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -930,7 +930,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-storage dashboard",
|
"title": "Open Atlas Storage",
|
||||||
"url": "/d/atlas-storage",
|
"url": "/d/atlas-storage",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -997,7 +997,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-storage dashboard",
|
"title": "Open Atlas Storage",
|
||||||
"url": "/d/atlas-storage",
|
"url": "/d/atlas-storage",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1064,7 +1064,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-storage dashboard",
|
"title": "Open Atlas Storage",
|
||||||
"url": "/d/atlas-storage",
|
"url": "/d/atlas-storage",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1287,7 +1287,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-power dashboard",
|
"title": "Open Atlas Power",
|
||||||
"url": "/d/atlas-power",
|
"url": "/d/atlas-power",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1342,7 +1342,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-power dashboard",
|
"title": "Open Atlas Power",
|
||||||
"url": "/d/atlas-power",
|
"url": "/d/atlas-power",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1481,7 +1481,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-power dashboard",
|
"title": "Open Atlas Power",
|
||||||
"url": "/d/atlas-power",
|
"url": "/d/atlas-power",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1578,7 +1578,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-power dashboard",
|
"title": "Open Atlas Power",
|
||||||
"url": "/d/atlas-power",
|
"url": "/d/atlas-power",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1673,7 +1673,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-power dashboard",
|
"title": "Open Atlas Power",
|
||||||
"url": "/d/atlas-power",
|
"url": "/d/atlas-power",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1733,7 +1733,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-power dashboard",
|
"title": "Open Atlas Power",
|
||||||
"url": "/d/atlas-power",
|
"url": "/d/atlas-power",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1804,7 +1804,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-jobs dashboard",
|
"title": "Open Atlas Testing",
|
||||||
"url": "/d/atlas-jobs",
|
"url": "/d/atlas-jobs",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1901,7 +1901,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-jobs dashboard",
|
"title": "Open Atlas Testing",
|
||||||
"url": "/d/atlas-jobs",
|
"url": "/d/atlas-jobs",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1924,57 +1924,57 @@
|
|||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"ariadne\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"ariadne\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"ariadne\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"ariadne\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"ariadne\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"ariadne\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "ariadne"
|
"legendFormat": "ariadne"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "B",
|
"refId": "B",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"metis\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"metis\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"metis\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"metis\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"metis\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"metis\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "metis"
|
"legendFormat": "metis"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "C",
|
"refId": "C",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"ananke\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"ananke\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"ananke\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"ananke\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"ananke\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"ananke\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "ananke"
|
"legendFormat": "ananke"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "D",
|
"refId": "D",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"atlasbot\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"atlasbot\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"atlasbot\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"atlasbot\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"atlasbot\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"atlasbot\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "atlasbot"
|
"legendFormat": "atlasbot"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "E",
|
"refId": "E",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"lesavka\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"lesavka\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"lesavka\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"lesavka\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"lesavka\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"lesavka\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "lesavka"
|
"legendFormat": "lesavka"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "F",
|
"refId": "F",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"pegasus\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"pegasus\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"pegasus\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"pegasus\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"pegasus\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"pegasus\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "pegasus"
|
"legendFormat": "pegasus"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "G",
|
"refId": "G",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"soteria\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"soteria\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"soteria\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"soteria\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"soteria\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"soteria\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "soteria"
|
"legendFormat": "soteria"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "H",
|
"refId": "H",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"titan-iac\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"titan-iac\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"titan-iac\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"titan-iac\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"titan-iac\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"titan-iac\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "titan-iac"
|
"legendFormat": "titan-iac"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "I",
|
"refId": "I",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"bstein-home\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"bstein-home\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"bstein-home\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"bstein-home\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"bstein-home\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"bstein-home\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "bstein-home"
|
"legendFormat": "bstein-home"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "J",
|
"refId": "J",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"arcanagon\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"arcanagon\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"arcanagon\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"arcanagon\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"arcanagon\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"arcanagon\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "arcanagon"
|
"legendFormat": "arcanagon"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "K",
|
"refId": "K",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"data-prepper\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"data-prepper\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"data-prepper\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"data-prepper\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"data-prepper\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"data-prepper\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "data-prepper"
|
"legendFormat": "data-prepper"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -2009,7 +2009,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-jobs dashboard",
|
"title": "Open Atlas Testing",
|
||||||
"url": "/d/atlas-jobs",
|
"url": "/d/atlas-jobs",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -2092,7 +2092,7 @@
|
|||||||
],
|
],
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-storage dashboard",
|
"title": "Open Atlas Storage",
|
||||||
"url": "/d/atlas-storage",
|
"url": "/d/atlas-storage",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -2160,7 +2160,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-mail dashboard",
|
"title": "Open Atlas Mail",
|
||||||
"url": "/d/atlas-mail",
|
"url": "/d/atlas-mail",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -2265,7 +2265,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-mail dashboard",
|
"title": "Open Atlas Mail",
|
||||||
"url": "/d/atlas-mail",
|
"url": "/d/atlas-mail",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -2341,7 +2341,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-mail dashboard",
|
"title": "Open Atlas Mail",
|
||||||
"url": "/d/atlas-mail",
|
"url": "/d/atlas-mail",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -2417,7 +2417,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-mail dashboard",
|
"title": "Open Atlas Mail",
|
||||||
"url": "/d/atlas-mail",
|
"url": "/d/atlas-mail",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -2797,7 +2797,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-nodes dashboard",
|
"title": "Open Atlas Nodes",
|
||||||
"url": "/d/atlas-nodes",
|
"url": "/d/atlas-nodes",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -2844,7 +2844,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-nodes dashboard",
|
"title": "Open Atlas Nodes",
|
||||||
"url": "/d/atlas-nodes",
|
"url": "/d/atlas-nodes",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -3094,7 +3094,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-network dashboard",
|
"title": "Open Atlas Network",
|
||||||
"url": "/d/atlas-network",
|
"url": "/d/atlas-network",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -3138,7 +3138,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-network dashboard",
|
"title": "Open Atlas Network",
|
||||||
"url": "/d/atlas-network",
|
"url": "/d/atlas-network",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -3182,7 +3182,7 @@
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-network dashboard",
|
"title": "Open Atlas Network",
|
||||||
"url": "/d/atlas-network",
|
"url": "/d/atlas-network",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -3230,7 +3230,7 @@
|
|||||||
"timeFrom": "30d",
|
"timeFrom": "30d",
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-storage dashboard",
|
"title": "Open Atlas Storage",
|
||||||
"url": "/d/atlas-storage",
|
"url": "/d/atlas-storage",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -3278,7 +3278,7 @@
|
|||||||
"timeFrom": "1w",
|
"timeFrom": "1w",
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-storage dashboard",
|
"title": "Open Atlas Storage",
|
||||||
"url": "/d/atlas-storage",
|
"url": "/d/atlas-storage",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -3402,5 +3402,11 @@
|
|||||||
"to": "now"
|
"to": "now"
|
||||||
},
|
},
|
||||||
"refresh": "1m",
|
"refresh": "1m",
|
||||||
"links": []
|
"links": [
|
||||||
|
{
|
||||||
|
"title": "Atlas Testing (Internal)",
|
||||||
|
"url": "/d/atlas-jobs",
|
||||||
|
"targetBlank": false
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -138,7 +138,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-pods dashboard",
|
"title": "Open Atlas Pods",
|
||||||
"url": "/d/atlas-pods",
|
"url": "/d/atlas-pods",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -213,7 +213,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-pods dashboard",
|
"title": "Open Atlas Pods",
|
||||||
"url": "/d/atlas-pods",
|
"url": "/d/atlas-pods",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -361,7 +361,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-pods dashboard",
|
"title": "Open Atlas Pods",
|
||||||
"url": "/d/atlas-pods",
|
"url": "/d/atlas-pods",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -436,7 +436,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-pods dashboard",
|
"title": "Open Atlas Pods",
|
||||||
"url": "/d/atlas-pods",
|
"url": "/d/atlas-pods",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -574,7 +574,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-nodes dashboard",
|
"title": "Open Atlas Nodes",
|
||||||
"url": "/d/atlas-nodes",
|
"url": "/d/atlas-nodes",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -651,7 +651,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-nodes dashboard",
|
"title": "Open Atlas Nodes",
|
||||||
"url": "/d/atlas-nodes",
|
"url": "/d/atlas-nodes",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -720,7 +720,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-nodes dashboard",
|
"title": "Open Atlas Nodes",
|
||||||
"url": "/d/atlas-nodes",
|
"url": "/d/atlas-nodes",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -789,7 +789,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-nodes dashboard",
|
"title": "Open Atlas Nodes",
|
||||||
"url": "/d/atlas-nodes",
|
"url": "/d/atlas-nodes",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -864,7 +864,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-storage dashboard",
|
"title": "Open Atlas Storage",
|
||||||
"url": "/d/atlas-storage",
|
"url": "/d/atlas-storage",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -939,7 +939,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-storage dashboard",
|
"title": "Open Atlas Storage",
|
||||||
"url": "/d/atlas-storage",
|
"url": "/d/atlas-storage",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1006,7 +1006,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-storage dashboard",
|
"title": "Open Atlas Storage",
|
||||||
"url": "/d/atlas-storage",
|
"url": "/d/atlas-storage",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1073,7 +1073,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-storage dashboard",
|
"title": "Open Atlas Storage",
|
||||||
"url": "/d/atlas-storage",
|
"url": "/d/atlas-storage",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1296,7 +1296,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-power dashboard",
|
"title": "Open Atlas Power",
|
||||||
"url": "/d/atlas-power",
|
"url": "/d/atlas-power",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1351,7 +1351,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-power dashboard",
|
"title": "Open Atlas Power",
|
||||||
"url": "/d/atlas-power",
|
"url": "/d/atlas-power",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1490,7 +1490,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-power dashboard",
|
"title": "Open Atlas Power",
|
||||||
"url": "/d/atlas-power",
|
"url": "/d/atlas-power",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1587,7 +1587,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-power dashboard",
|
"title": "Open Atlas Power",
|
||||||
"url": "/d/atlas-power",
|
"url": "/d/atlas-power",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1682,7 +1682,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-power dashboard",
|
"title": "Open Atlas Power",
|
||||||
"url": "/d/atlas-power",
|
"url": "/d/atlas-power",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1742,7 +1742,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-power dashboard",
|
"title": "Open Atlas Power",
|
||||||
"url": "/d/atlas-power",
|
"url": "/d/atlas-power",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1813,7 +1813,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-jobs dashboard",
|
"title": "Open Atlas Testing",
|
||||||
"url": "/d/atlas-jobs",
|
"url": "/d/atlas-jobs",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1910,7 +1910,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-jobs dashboard",
|
"title": "Open Atlas Testing",
|
||||||
"url": "/d/atlas-jobs",
|
"url": "/d/atlas-jobs",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -1933,57 +1933,57 @@ data:
|
|||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"ariadne\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"ariadne\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"ariadne\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"ariadne\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"ariadne\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"ariadne\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "ariadne"
|
"legendFormat": "ariadne"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "B",
|
"refId": "B",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"metis\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"metis\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"metis\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"metis\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"metis\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"metis\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "metis"
|
"legendFormat": "metis"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "C",
|
"refId": "C",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"ananke\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"ananke\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"ananke\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"ananke\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"ananke\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"ananke\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "ananke"
|
"legendFormat": "ananke"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "D",
|
"refId": "D",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"atlasbot\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"atlasbot\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"atlasbot\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"atlasbot\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"atlasbot\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"atlasbot\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "atlasbot"
|
"legendFormat": "atlasbot"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "E",
|
"refId": "E",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"lesavka\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"lesavka\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"lesavka\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"lesavka\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"lesavka\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"lesavka\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "lesavka"
|
"legendFormat": "lesavka"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "F",
|
"refId": "F",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"pegasus\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"pegasus\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"pegasus\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"pegasus\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"pegasus\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"pegasus\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "pegasus"
|
"legendFormat": "pegasus"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "G",
|
"refId": "G",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"soteria\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"soteria\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"soteria\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"soteria\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"soteria\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"soteria\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "soteria"
|
"legendFormat": "soteria"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "H",
|
"refId": "H",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"titan-iac\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"titan-iac\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"titan-iac\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"titan-iac\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"titan-iac\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"titan-iac\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "titan-iac"
|
"legendFormat": "titan-iac"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "I",
|
"refId": "I",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"bstein-home\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"bstein-home\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"bstein-home\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"bstein-home\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"bstein-home\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"bstein-home\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "bstein-home"
|
"legendFormat": "bstein-home"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "J",
|
"refId": "J",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"arcanagon\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"arcanagon\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"arcanagon\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"arcanagon\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"arcanagon\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"arcanagon\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "arcanagon"
|
"legendFormat": "arcanagon"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"refId": "K",
|
"refId": "K",
|
||||||
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"data-prepper\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"data-prepper\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"data-prepper\"}[1h]))) > 0)",
|
"expr": "(100 * (sum(increase(platform_quality_gate_runs_total{suite=\"data-prepper\",status=~\"ok|passed|success\"}[1h]))) / clamp_min((sum(increase(platform_quality_gate_runs_total{suite=\"data-prepper\"}[1h]))), 1)) and on() ((sum(increase(platform_quality_gate_runs_total{suite=\"data-prepper\"}[1h]))) > 0) or on() vector(0)",
|
||||||
"legendFormat": "data-prepper"
|
"legendFormat": "data-prepper"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -2018,7 +2018,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-jobs dashboard",
|
"title": "Open Atlas Testing",
|
||||||
"url": "/d/atlas-jobs",
|
"url": "/d/atlas-jobs",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -2101,7 +2101,7 @@ data:
|
|||||||
],
|
],
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-storage dashboard",
|
"title": "Open Atlas Storage",
|
||||||
"url": "/d/atlas-storage",
|
"url": "/d/atlas-storage",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -2169,7 +2169,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-mail dashboard",
|
"title": "Open Atlas Mail",
|
||||||
"url": "/d/atlas-mail",
|
"url": "/d/atlas-mail",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -2274,7 +2274,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-mail dashboard",
|
"title": "Open Atlas Mail",
|
||||||
"url": "/d/atlas-mail",
|
"url": "/d/atlas-mail",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -2350,7 +2350,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-mail dashboard",
|
"title": "Open Atlas Mail",
|
||||||
"url": "/d/atlas-mail",
|
"url": "/d/atlas-mail",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -2426,7 +2426,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-mail dashboard",
|
"title": "Open Atlas Mail",
|
||||||
"url": "/d/atlas-mail",
|
"url": "/d/atlas-mail",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -2806,7 +2806,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-nodes dashboard",
|
"title": "Open Atlas Nodes",
|
||||||
"url": "/d/atlas-nodes",
|
"url": "/d/atlas-nodes",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -2853,7 +2853,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-nodes dashboard",
|
"title": "Open Atlas Nodes",
|
||||||
"url": "/d/atlas-nodes",
|
"url": "/d/atlas-nodes",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -3103,7 +3103,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-network dashboard",
|
"title": "Open Atlas Network",
|
||||||
"url": "/d/atlas-network",
|
"url": "/d/atlas-network",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -3147,7 +3147,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-network dashboard",
|
"title": "Open Atlas Network",
|
||||||
"url": "/d/atlas-network",
|
"url": "/d/atlas-network",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -3191,7 +3191,7 @@ data:
|
|||||||
},
|
},
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-network dashboard",
|
"title": "Open Atlas Network",
|
||||||
"url": "/d/atlas-network",
|
"url": "/d/atlas-network",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -3239,7 +3239,7 @@ data:
|
|||||||
"timeFrom": "30d",
|
"timeFrom": "30d",
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-storage dashboard",
|
"title": "Open Atlas Storage",
|
||||||
"url": "/d/atlas-storage",
|
"url": "/d/atlas-storage",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -3287,7 +3287,7 @@ data:
|
|||||||
"timeFrom": "1w",
|
"timeFrom": "1w",
|
||||||
"links": [
|
"links": [
|
||||||
{
|
{
|
||||||
"title": "Open atlas-storage dashboard",
|
"title": "Open Atlas Storage",
|
||||||
"url": "/d/atlas-storage",
|
"url": "/d/atlas-storage",
|
||||||
"targetBlank": true
|
"targetBlank": true
|
||||||
}
|
}
|
||||||
@ -3411,5 +3411,11 @@ data:
|
|||||||
"to": "now"
|
"to": "now"
|
||||||
},
|
},
|
||||||
"refresh": "1m",
|
"refresh": "1m",
|
||||||
"links": []
|
"links": [
|
||||||
|
{
|
||||||
|
"title": "Atlas Testing (Internal)",
|
||||||
|
"url": "/d/atlas-jobs",
|
||||||
|
"targetBlank": false
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user