monitoring: use fresh quality snapshots
This commit is contained in:
parent
8a13b9d4e7
commit
a69a21f05d
@ -603,6 +603,8 @@ PLATFORM_TEST_ACTIVE_SUITES_24H = (
|
|||||||
"or on() vector(0)"
|
"or on() vector(0)"
|
||||||
)
|
)
|
||||||
PLATFORM_TEST_POINT_WINDOW = "1h"
|
PLATFORM_TEST_POINT_WINDOW = "1h"
|
||||||
|
PLATFORM_TEST_FRESH_WINDOW = "30h"
|
||||||
|
PLATFORM_TEST_LATEST_WINDOW = "30d"
|
||||||
PLATFORM_TEST_SUCCESS_RATE_SUITE_TARGETS = [
|
PLATFORM_TEST_SUCCESS_RATE_SUITE_TARGETS = [
|
||||||
{
|
{
|
||||||
"refId": chr(ord("A") + index),
|
"refId": chr(ord("A") + index),
|
||||||
@ -623,8 +625,8 @@ QUALITY_GATE_SUITE_INDEX_30D = (
|
|||||||
f'sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",{PLATFORM_TEST_EXPORT_FILTER}}}[30d]))'
|
f'sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",{PLATFORM_TEST_EXPORT_FILTER}}}[30d]))'
|
||||||
)
|
)
|
||||||
QUALITY_GATE_COVERAGE_BY_SUITE = (
|
QUALITY_GATE_COVERAGE_BY_SUITE = (
|
||||||
f'(max by (suite) ({{__name__=~".*_quality_gate_coverage_percent",{PLATFORM_TEST_EXPORT_FILTER}}})) '
|
f'(max by (suite) (last_over_time({{__name__=~".*_quality_gate_coverage_percent",{PLATFORM_TEST_EXPORT_FILTER}}}[{PLATFORM_TEST_LATEST_WINDOW}]))) '
|
||||||
f'or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{{{PLATFORM_TEST_EXPORT_FILTER}}}))'
|
f'or on(suite) (max by (suite) (last_over_time(platform_quality_gate_workspace_line_coverage_percent{{{PLATFORM_TEST_EXPORT_FILTER}}}[{PLATFORM_TEST_LATEST_WINDOW}])))'
|
||||||
)
|
)
|
||||||
QUALITY_GATE_COVERAGE_BY_SUITE_WITH_MISSING = (
|
QUALITY_GATE_COVERAGE_BY_SUITE_WITH_MISSING = (
|
||||||
f"({QUALITY_GATE_COVERAGE_BY_SUITE}) or on(suite) (0 * ({QUALITY_GATE_SUITE_INDEX_30D}) - 1)"
|
f"({QUALITY_GATE_COVERAGE_BY_SUITE}) or on(suite) (0 * ({QUALITY_GATE_SUITE_INDEX_30D}) - 1)"
|
||||||
@ -633,7 +635,7 @@ QUALITY_GATE_COVERAGE_GAP_BY_SUITE = (
|
|||||||
f"clamp_min(95 - ({QUALITY_GATE_COVERAGE_BY_SUITE}), 0)"
|
f"clamp_min(95 - ({QUALITY_GATE_COVERAGE_BY_SUITE}), 0)"
|
||||||
)
|
)
|
||||||
QUALITY_GATE_SMELL_INFRACTIONS_BY_SUITE = (
|
QUALITY_GATE_SMELL_INFRACTIONS_BY_SUITE = (
|
||||||
f"max by (suite) (platform_quality_gate_source_lines_over_500_total{{{PLATFORM_TEST_EXPORT_FILTER}}})"
|
f"max by (suite) (last_over_time(platform_quality_gate_source_lines_over_500_total{{{PLATFORM_TEST_EXPORT_FILTER}}}[{PLATFORM_TEST_LATEST_WINDOW}]))"
|
||||||
)
|
)
|
||||||
QUALITY_GATE_SMELL_INFRACTIONS_BY_SUITE_WITH_MISSING = (
|
QUALITY_GATE_SMELL_INFRACTIONS_BY_SUITE_WITH_MISSING = (
|
||||||
f"({QUALITY_GATE_SMELL_INFRACTIONS_BY_SUITE}) or on(suite) (0 * ({QUALITY_GATE_SUITE_INDEX_30D}) - 1)"
|
f"({QUALITY_GATE_SMELL_INFRACTIONS_BY_SUITE}) or on(suite) (0 * ({QUALITY_GATE_SUITE_INDEX_30D}) - 1)"
|
||||||
@ -646,10 +648,10 @@ PLATFORM_TEST_CHECK_ROLLUP_MATCHERS = (
|
|||||||
f'suite=~"{PLATFORM_TEST_SUITE_CANONICAL_MATCHER}",branch!="",check!=""'
|
f'suite=~"{PLATFORM_TEST_SUITE_CANONICAL_MATCHER}",branch!="",check!=""'
|
||||||
)
|
)
|
||||||
PLATFORM_TEST_CHECK_ROLLUP_SELECTOR = (
|
PLATFORM_TEST_CHECK_ROLLUP_SELECTOR = (
|
||||||
f'platform_quality:check_status:present_1h{{{PLATFORM_TEST_CHECK_ROLLUP_MATCHERS},status!=""}}'
|
f'last_over_time(platform_quality:check_status:present_1h{{{PLATFORM_TEST_CHECK_ROLLUP_MATCHERS},status!=""}}[{PLATFORM_TEST_FRESH_WINDOW}])'
|
||||||
)
|
)
|
||||||
PLATFORM_TEST_CHECK_ROLLUP_OK_SELECTOR = (
|
PLATFORM_TEST_CHECK_ROLLUP_OK_SELECTOR = (
|
||||||
f'platform_quality:check_status:present_1h{{{PLATFORM_TEST_CHECK_ROLLUP_MATCHERS},status=~"{PLATFORM_TEST_NON_FAILURE_STATUS}"}}'
|
f'last_over_time(platform_quality:check_status:present_1h{{{PLATFORM_TEST_CHECK_ROLLUP_MATCHERS},status=~"{PLATFORM_TEST_NON_FAILURE_STATUS}"}}[{PLATFORM_TEST_FRESH_WINDOW}])'
|
||||||
)
|
)
|
||||||
PLATFORM_TEST_CURRENT_GATE_HEALTH_BY_SUITE = (
|
PLATFORM_TEST_CURRENT_GATE_HEALTH_BY_SUITE = (
|
||||||
f'(100 * sum by (suite) (max by (suite, check) '
|
f'(100 * sum by (suite) (max by (suite, check) '
|
||||||
@ -1660,7 +1662,7 @@ TESTING_PANEL_DESCRIPTIONS = {
|
|||||||
"Runs (24h)": "Selected quality-gate run count in 24h; zero means the dashboard may be stale.",
|
"Runs (24h)": "Selected quality-gate run count in 24h; zero means the dashboard may be stale.",
|
||||||
"Avg Coverage (%)": "Average latest line coverage for selected suites; higher means better test protection.",
|
"Avg Coverage (%)": "Average latest line coverage for selected suites; higher means better test protection.",
|
||||||
"Suites with LOC >500": "Selected suites with oversized source files; zero is good for maintainability.",
|
"Suites with LOC >500": "Selected suites with oversized source files; zero is good for maintainability.",
|
||||||
"Current Gate Health by Suite": "Latest gate pass percent per suite; 100% means all required checks currently pass.",
|
"Current Gate Health by Suite": "Latest gate pass percent per suite from the daily freshness window; 100% means required checks recently passed.",
|
||||||
"Run Reliability by Suite (24h)": "24h quality-gate pass rate by suite; lower rows are worse and can lag after failed/debug runs.",
|
"Run Reliability by Suite (24h)": "24h quality-gate pass rate by suite; lower rows are worse and can lag after failed/debug runs.",
|
||||||
"Coverage by Suite (Latest, gate 95)": "Latest suite coverage; 95%+ is acceptable and 100% is strongest.",
|
"Coverage by Suite (Latest, gate 95)": "Latest suite coverage; 95%+ is acceptable and 100% is strongest.",
|
||||||
"Files <=500 LOC by Suite (Latest)": "Percent of source files within the 500-line limit; higher is easier to maintain.",
|
"Files <=500 LOC by Suite (Latest)": "Percent of source files within the 500-line limit; higher is easier to maintain.",
|
||||||
@ -3737,8 +3739,8 @@ def build_jobs_dashboard():
|
|||||||
runs_failure_selector = f'{runs_selector},status!~"{success}"'
|
runs_failure_selector = f'{runs_selector},status!~"{success}"'
|
||||||
checks_selector = f'__name__=~".*_quality_gate_checks_total",suite=~"{suite_var}",{exported}'
|
checks_selector = f'__name__=~".*_quality_gate_checks_total",suite=~"{suite_var}",{exported}'
|
||||||
check_rollup_selector = (
|
check_rollup_selector = (
|
||||||
f'platform_quality:check_status:present_1h{{suite=~"{suite_var}",branch!="",'
|
f'last_over_time(platform_quality:check_status:present_1h{{suite=~"{suite_var}",branch!="",'
|
||||||
f'branch=~"{branch_var}",check!="",status!=""}}'
|
f'branch=~"{branch_var}",check!="",status!=""}}[{PLATFORM_TEST_FRESH_WINDOW}])'
|
||||||
)
|
)
|
||||||
coverage_metric_selector = f'__name__=~".*_quality_gate_coverage_percent",suite=~"{suite_var}",{exported}'
|
coverage_metric_selector = f'__name__=~".*_quality_gate_coverage_percent",suite=~"{suite_var}",{exported}'
|
||||||
workspace_coverage_selector = f'suite=~"{suite_var}",{exported}'
|
workspace_coverage_selector = f'suite=~"{suite_var}",{exported}'
|
||||||
@ -3780,8 +3782,8 @@ def build_jobs_dashboard():
|
|||||||
)
|
)
|
||||||
non_failure = PLATFORM_TEST_NON_FAILURE_STATUS
|
non_failure = PLATFORM_TEST_NON_FAILURE_STATUS
|
||||||
current_gate_ok_selector = (
|
current_gate_ok_selector = (
|
||||||
f'platform_quality:check_status:present_1h{{suite=~"{suite_var}",branch!="",'
|
f'last_over_time(platform_quality:check_status:present_1h{{suite=~"{suite_var}",branch!="",'
|
||||||
f'branch=~"{branch_var}",check!="",status=~"{non_failure}"}}'
|
f'branch=~"{branch_var}",check!="",status=~"{non_failure}"}}[{PLATFORM_TEST_FRESH_WINDOW}])'
|
||||||
)
|
)
|
||||||
current_gate_ok_vector = f"(({current_gate_ok_selector}) > bool 0)"
|
current_gate_ok_vector = f"(({current_gate_ok_selector}) > bool 0)"
|
||||||
current_gate_seen_vector = f'({check_rollup_selector} > bool 0)'
|
current_gate_seen_vector = f'({check_rollup_selector} > bool 0)'
|
||||||
@ -3807,18 +3809,28 @@ def build_jobs_dashboard():
|
|||||||
f'sum(increase(platform_quality_gate_runs_total{{{runs_failure_selector}}}[24h])) or on() vector(0)'
|
f'sum(increase(platform_quality_gate_runs_total{{{runs_failure_selector}}}[24h])) or on() vector(0)'
|
||||||
)
|
)
|
||||||
coverage_by_suite = (
|
coverage_by_suite = (
|
||||||
f'(max by (suite) ({{{coverage_metric_selector}}})) '
|
f'(max by (suite) (last_over_time({{{coverage_metric_selector}}}[{PLATFORM_TEST_LATEST_WINDOW}]))) '
|
||||||
f'or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{{{workspace_coverage_selector}}}))'
|
f'or on(suite) (max by (suite) (last_over_time(platform_quality_gate_workspace_line_coverage_percent{{{workspace_coverage_selector}}}[{PLATFORM_TEST_LATEST_WINDOW}])))'
|
||||||
)
|
)
|
||||||
coverage_history_by_suite = (
|
coverage_history_by_suite = (
|
||||||
f'(max by (suite) (platform_quality_gate_workspace_line_coverage_percent{{{workspace_coverage_selector}}})) '
|
f'(max by (suite) (last_over_time(platform_quality_gate_workspace_line_coverage_percent{{{workspace_coverage_selector}}}[{PLATFORM_TEST_FRESH_WINDOW}]))) '
|
||||||
f'or on(suite) (max by (suite) ({{{coverage_metric_selector}}}))'
|
f'or on(suite) (max by (suite) (last_over_time({{{coverage_metric_selector}}}[{PLATFORM_TEST_FRESH_WINDOW}])))'
|
||||||
)
|
)
|
||||||
coverage_with_missing = (
|
coverage_with_missing = (
|
||||||
f"({coverage_by_suite}) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[30d])))) - 1)"
|
f"({coverage_by_suite}) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[30d])))) - 1)"
|
||||||
)
|
)
|
||||||
smell_by_suite = f'max by (suite) (platform_quality_gate_source_lines_over_500_total{{{smell_selector}}})'
|
smell_by_suite = (
|
||||||
loc_files_by_suite = f'max by (suite) (platform_quality_gate_source_files_total{{{smell_selector}}})'
|
f'max by (suite) (last_over_time(platform_quality_gate_source_lines_over_500_total{{{smell_selector}}}[{PLATFORM_TEST_LATEST_WINDOW}]))'
|
||||||
|
)
|
||||||
|
loc_files_by_suite = (
|
||||||
|
f'max by (suite) (last_over_time(platform_quality_gate_source_files_total{{{smell_selector}}}[{PLATFORM_TEST_LATEST_WINDOW}]))'
|
||||||
|
)
|
||||||
|
smell_history_by_suite = (
|
||||||
|
f'max by (suite) (last_over_time(platform_quality_gate_source_lines_over_500_total{{{smell_selector}}}[{PLATFORM_TEST_FRESH_WINDOW}]))'
|
||||||
|
)
|
||||||
|
loc_files_history_by_suite = (
|
||||||
|
f'max by (suite) (last_over_time(platform_quality_gate_source_files_total{{{smell_selector}}}[{PLATFORM_TEST_FRESH_WINDOW}]))'
|
||||||
|
)
|
||||||
smell_with_missing = (
|
smell_with_missing = (
|
||||||
f"({smell_by_suite}) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[30d])))) - 1)"
|
f"({smell_by_suite}) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[30d])))) - 1)"
|
||||||
)
|
)
|
||||||
@ -3832,8 +3844,9 @@ def build_jobs_dashboard():
|
|||||||
f"or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[30d])))) - 1)"
|
f"or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[30d])))) - 1)"
|
||||||
)
|
)
|
||||||
loc_limit_compliance_history = (
|
loc_limit_compliance_history = (
|
||||||
f"({loc_limit_compliance_by_suite}) "
|
f"(100 * clamp_min(({loc_files_history_by_suite}) - ({smell_history_by_suite}), 0) / ({loc_files_history_by_suite})) "
|
||||||
f"or on(suite) (100 * (1 - clamp_max(({smell_by_suite}), 1)))"
|
f"and on(suite) (({loc_files_history_by_suite}) > 0) "
|
||||||
|
f"or on(suite) (100 * (1 - clamp_max(({smell_history_by_suite}), 1)))"
|
||||||
)
|
)
|
||||||
average_coverage = f"(avg(({coverage_by_suite})) or on() vector(0))"
|
average_coverage = f"(avg(({coverage_by_suite})) or on() vector(0))"
|
||||||
suites_loc_violating = f'(sum((({smell_by_suite}) > bool 0)) or on() vector(0))'
|
suites_loc_violating = f'(sum((({smell_by_suite}) > bool 0)) or on() vector(0))'
|
||||||
@ -3849,12 +3862,12 @@ def build_jobs_dashboard():
|
|||||||
def _check_state_percent_series(regex: str, failed: bool) -> str:
|
def _check_state_percent_series(regex: str, failed: bool) -> str:
|
||||||
status_state = f'status!~"{non_failure}"' if failed else f'status=~"{non_failure}"'
|
status_state = f'status!~"{non_failure}"' if failed else f'status=~"{non_failure}"'
|
||||||
family_selector = (
|
family_selector = (
|
||||||
f'platform_quality:check_status:present_1h{{suite=~"{suite_var}",branch!="",'
|
f'last_over_time(platform_quality:check_status:present_1h{{suite=~"{suite_var}",branch!="",'
|
||||||
f'branch=~"{branch_var}",check=~"{regex}",status!=""}}'
|
f'branch=~"{branch_var}",check=~"{regex}",status!=""}}[{PLATFORM_TEST_FRESH_WINDOW}])'
|
||||||
)
|
)
|
||||||
state_selector = (
|
state_selector = (
|
||||||
f'platform_quality:check_status:present_1h{{suite=~"{suite_var}",branch!="",'
|
f'last_over_time(platform_quality:check_status:present_1h{{suite=~"{suite_var}",branch!="",'
|
||||||
f'branch=~"{branch_var}",check=~"{regex}",{status_state}}}'
|
f'branch=~"{branch_var}",check=~"{regex}",{status_state}}}[{PLATFORM_TEST_FRESH_WINDOW}])'
|
||||||
)
|
)
|
||||||
state_vector = f"(({state_selector}) > bool 0)"
|
state_vector = f"(({state_selector}) > bool 0)"
|
||||||
state_checks = (
|
state_checks = (
|
||||||
@ -4106,8 +4119,8 @@ def build_jobs_dashboard():
|
|||||||
{"type": "value", "options": {"-1": {"text": "missing"}}}
|
{"type": "value", "options": {"-1": {"text": "missing"}}}
|
||||||
]
|
]
|
||||||
panels[-1]["description"] = (
|
panels[-1]["description"] = (
|
||||||
"Current pass percentage across the required gate dimensions reported by each suite. "
|
"Latest pass percentage across required gate dimensions in the daily freshness window. "
|
||||||
"100% is clean; missing means the suite has not published current gate data."
|
"100% is clean; missing means the suite has not published recent gate data."
|
||||||
)
|
)
|
||||||
reliability_suite_panel = bargauge_panel(
|
reliability_suite_panel = bargauge_panel(
|
||||||
9,
|
9,
|
||||||
@ -4210,11 +4223,11 @@ def build_jobs_dashboard():
|
|||||||
def _append_check_trends(start_id: int, title_prefix: str, failed: bool, y: int) -> None:
|
def _append_check_trends(start_id: int, title_prefix: str, failed: bool, y: int) -> None:
|
||||||
trend_thresholds = failures_thresholds if failed else success_thresholds
|
trend_thresholds = failures_thresholds if failed else success_thresholds
|
||||||
trend_description = (
|
trend_description = (
|
||||||
"Current bad-state percentage for this check family, evaluated over time. "
|
"Latest bad-state percentage for this check family, evaluated over time. "
|
||||||
"Higher means more of the selected suites/checks are failing right now; this is not an event-count spike chart."
|
"Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart."
|
||||||
if failed
|
if failed
|
||||||
else "Current acceptable-state percentage for this check family, evaluated over time. "
|
else "Latest acceptable-state percentage for this check family, evaluated over time. "
|
||||||
"Higher means more of the selected suites/checks are healthy right now; gaps mean there was no check evidence."
|
"Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence."
|
||||||
)
|
)
|
||||||
for index, (label, regex) in enumerate(check_dimensions[:4]):
|
for index, (label, regex) in enumerate(check_dimensions[:4]):
|
||||||
panel = state_timeline_panel(
|
panel = state_timeline_panel(
|
||||||
|
|||||||
@ -2377,7 +2377,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(avg(((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{exported_job=\"platform-quality-ci\"})))) or on() vector(0))",
|
"expr": "(avg(((max by (suite) (last_over_time({__name__=~\".*_quality_gate_coverage_percent\",exported_job=\"platform-quality-ci\"}[30d]))) or on(suite) (max by (suite) (last_over_time(platform_quality_gate_workspace_line_coverage_percent{exported_job=\"platform-quality-ci\"}[30d]))))) or on() vector(0))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"instant": true
|
"instant": true
|
||||||
}
|
}
|
||||||
@ -2463,7 +2463,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(sum((max by (suite) (platform_quality_gate_source_lines_over_500_total{exported_job=\"platform-quality-ci\"})) == bool 0) or on() vector(0))",
|
"expr": "(sum((max by (suite) (last_over_time(platform_quality_gate_source_lines_over_500_total{exported_job=\"platform-quality-ci\"}[30d]))) == bool 0) or on() vector(0))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"instant": true
|
"instant": true
|
||||||
}
|
}
|
||||||
|
|||||||
@ -306,7 +306,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(avg(((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})))) or on() vector(0))",
|
"expr": "(avg(((max by (suite) (last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))) or on(suite) (max by (suite) (last_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))) or on() vector(0))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"instant": true
|
"instant": true
|
||||||
}
|
}
|
||||||
@ -381,7 +381,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(sum(((max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) > bool 0)) or on() vector(0))",
|
"expr": "(sum(((max by (suite) (last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))) > bool 0)) or on() vector(0))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"instant": true
|
"instant": true
|
||||||
}
|
}
|
||||||
@ -455,7 +455,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "sort(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check!=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check!=\"\",status!=\"\"} > bool 0)))), 1)) or on(suite) ((((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))) - 1))))",
|
"expr": "sort(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check!=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check!=\"\",status!=\"\"}[30h]) > bool 0)))), 1)) or on(suite) ((((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))) - 1))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}",
|
"legendFormat": "{{suite}}",
|
||||||
"instant": true
|
"instant": true
|
||||||
@ -530,7 +530,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "Current pass percentage across the required gate dimensions reported by each suite. 100% is clean; missing means the suite has not published current gate data."
|
"description": "Latest pass percentage across required gate dimensions in the daily freshness window. 100% is clean; missing means the suite has not published recent gate data."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 9,
|
"id": 9,
|
||||||
@ -641,7 +641,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "sort(((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) - 1))",
|
"expr": "sort(((max by (suite) (last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))) or on(suite) (max by (suite) (last_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) - 1))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}",
|
"legendFormat": "{{suite}}",
|
||||||
"instant": true
|
"instant": true
|
||||||
@ -734,7 +734,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "sort(((100 * clamp_min((max by (suite) (platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) - (max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})), 0) / (max by (suite) (platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))) and on(suite) ((max by (suite) (platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) > 0)) or on(suite) (100 * (1 - clamp_max((max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})), 1))) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) - 1))",
|
"expr": "sort(((100 * clamp_min((max by (suite) (last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))) - (max by (suite) (last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))), 0) / (max by (suite) (last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) and on(suite) ((max by (suite) (last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))) > 0)) or on(suite) (100 * (1 - clamp_max((max by (suite) (last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))), 1))) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) - 1))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}",
|
"legendFormat": "{{suite}}",
|
||||||
"instant": true
|
"instant": true
|
||||||
@ -1163,7 +1163,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))",
|
"expr": "(max by (suite) (last_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h]))) or on(suite) (max by (suite) (last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h])))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1239,7 +1239,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "((100 * clamp_min((max by (suite) (platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) - (max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})), 0) / (max by (suite) (platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))) and on(suite) ((max by (suite) (platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) > 0)) or on(suite) (100 * (1 - clamp_max((max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})), 1)))",
|
"expr": "(100 * clamp_min((max by (suite) (last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h]))) - (max by (suite) (last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h]))), 0) / (max by (suite) (last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h])))) and on(suite) ((max by (suite) (last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h]))) > 0) or on(suite) (100 * (1 - clamp_max((max by (suite) (last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h]))), 1)))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1317,7 +1317,7 @@
|
|||||||
"id": 130,
|
"id": 130,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Tests Failure Rate",
|
"title": "Tests Failure Rate",
|
||||||
"description": "Current bad-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are failing right now; this is not an event-count spike chart.",
|
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1330,7 +1330,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1393,7 +1393,7 @@
|
|||||||
"id": 131,
|
"id": 131,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Coverage Failure Rate",
|
"title": "Coverage Failure Rate",
|
||||||
"description": "Current bad-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are failing right now; this is not an event-count spike chart.",
|
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1406,7 +1406,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1469,7 +1469,7 @@
|
|||||||
"id": 132,
|
"id": 132,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "LOC Failure Rate",
|
"title": "LOC Failure Rate",
|
||||||
"description": "Current bad-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are failing right now; this is not an event-count spike chart.",
|
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1482,7 +1482,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1545,7 +1545,7 @@
|
|||||||
"id": 133,
|
"id": 133,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Style Failure Rate",
|
"title": "Style Failure Rate",
|
||||||
"description": "Current bad-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are failing right now; this is not an event-count spike chart.",
|
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1558,7 +1558,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1621,7 +1621,7 @@
|
|||||||
"id": 134,
|
"id": 134,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Gate Glue Failure Rate",
|
"title": "Gate Glue Failure Rate",
|
||||||
"description": "Current bad-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are failing right now; this is not an event-count spike chart.",
|
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1634,7 +1634,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1697,7 +1697,7 @@
|
|||||||
"id": 135,
|
"id": 135,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "SonarQube Failure Rate",
|
"title": "SonarQube Failure Rate",
|
||||||
"description": "Current bad-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are failing right now; this is not an event-count spike chart.",
|
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1710,7 +1710,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1773,7 +1773,7 @@
|
|||||||
"id": 136,
|
"id": 136,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Supply Chain Failure Rate",
|
"title": "Supply Chain Failure Rate",
|
||||||
"description": "Current bad-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are failing right now; this is not an event-count spike chart.",
|
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1786,7 +1786,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1864,7 +1864,7 @@
|
|||||||
"id": 138,
|
"id": 138,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Tests Healthy Rate",
|
"title": "Tests Healthy Rate",
|
||||||
"description": "Current acceptable-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are healthy right now; gaps mean there was no check evidence.",
|
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1877,7 +1877,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1940,7 +1940,7 @@
|
|||||||
"id": 139,
|
"id": 139,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Coverage Healthy Rate",
|
"title": "Coverage Healthy Rate",
|
||||||
"description": "Current acceptable-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are healthy right now; gaps mean there was no check evidence.",
|
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1953,7 +1953,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -2016,7 +2016,7 @@
|
|||||||
"id": 140,
|
"id": 140,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "LOC Healthy Rate",
|
"title": "LOC Healthy Rate",
|
||||||
"description": "Current acceptable-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are healthy right now; gaps mean there was no check evidence.",
|
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -2029,7 +2029,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -2092,7 +2092,7 @@
|
|||||||
"id": 141,
|
"id": 141,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Style Healthy Rate",
|
"title": "Style Healthy Rate",
|
||||||
"description": "Current acceptable-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are healthy right now; gaps mean there was no check evidence.",
|
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -2105,7 +2105,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -2168,7 +2168,7 @@
|
|||||||
"id": 142,
|
"id": 142,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Gate Glue Healthy Rate",
|
"title": "Gate Glue Healthy Rate",
|
||||||
"description": "Current acceptable-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are healthy right now; gaps mean there was no check evidence.",
|
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -2181,7 +2181,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -2244,7 +2244,7 @@
|
|||||||
"id": 143,
|
"id": 143,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "SonarQube Healthy Rate",
|
"title": "SonarQube Healthy Rate",
|
||||||
"description": "Current acceptable-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are healthy right now; gaps mean there was no check evidence.",
|
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -2257,7 +2257,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -2320,7 +2320,7 @@
|
|||||||
"id": 144,
|
"id": 144,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Supply Chain Healthy Rate",
|
"title": "Supply Chain Healthy Rate",
|
||||||
"description": "Current acceptable-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are healthy right now; gaps mean there was no check evidence.",
|
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -2333,7 +2333,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2386,7 +2386,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(avg(((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{exported_job=\"platform-quality-ci\"})))) or on() vector(0))",
|
"expr": "(avg(((max by (suite) (last_over_time({__name__=~\".*_quality_gate_coverage_percent\",exported_job=\"platform-quality-ci\"}[30d]))) or on(suite) (max by (suite) (last_over_time(platform_quality_gate_workspace_line_coverage_percent{exported_job=\"platform-quality-ci\"}[30d]))))) or on() vector(0))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"instant": true
|
"instant": true
|
||||||
}
|
}
|
||||||
@ -2472,7 +2472,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(sum((max by (suite) (platform_quality_gate_source_lines_over_500_total{exported_job=\"platform-quality-ci\"})) == bool 0) or on() vector(0))",
|
"expr": "(sum((max by (suite) (last_over_time(platform_quality_gate_source_lines_over_500_total{exported_job=\"platform-quality-ci\"}[30d]))) == bool 0) or on() vector(0))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"instant": true
|
"instant": true
|
||||||
}
|
}
|
||||||
|
|||||||
@ -315,7 +315,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(avg(((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})))) or on() vector(0))",
|
"expr": "(avg(((max by (suite) (last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))) or on(suite) (max by (suite) (last_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))) or on() vector(0))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"instant": true
|
"instant": true
|
||||||
}
|
}
|
||||||
@ -390,7 +390,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(sum(((max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) > bool 0)) or on() vector(0))",
|
"expr": "(sum(((max by (suite) (last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))) > bool 0)) or on() vector(0))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"instant": true
|
"instant": true
|
||||||
}
|
}
|
||||||
@ -464,7 +464,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "sort(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check!=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check!=\"\",status!=\"\"} > bool 0)))), 1)) or on(suite) ((((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))) - 1))))",
|
"expr": "sort(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check!=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check!=\"\",status!=\"\"}[30h]) > bool 0)))), 1)) or on(suite) ((((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))) - 1))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}",
|
"legendFormat": "{{suite}}",
|
||||||
"instant": true
|
"instant": true
|
||||||
@ -539,7 +539,7 @@ data:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "Current pass percentage across the required gate dimensions reported by each suite. 100% is clean; missing means the suite has not published current gate data."
|
"description": "Latest pass percentage across required gate dimensions in the daily freshness window. 100% is clean; missing means the suite has not published recent gate data."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 9,
|
"id": 9,
|
||||||
@ -650,7 +650,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "sort(((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) - 1))",
|
"expr": "sort(((max by (suite) (last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))) or on(suite) (max by (suite) (last_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) - 1))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}",
|
"legendFormat": "{{suite}}",
|
||||||
"instant": true
|
"instant": true
|
||||||
@ -743,7 +743,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "sort(((100 * clamp_min((max by (suite) (platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) - (max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})), 0) / (max by (suite) (platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))) and on(suite) ((max by (suite) (platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) > 0)) or on(suite) (100 * (1 - clamp_max((max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})), 1))) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) - 1))",
|
"expr": "sort(((100 * clamp_min((max by (suite) (last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))) - (max by (suite) (last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))), 0) / (max by (suite) (last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) and on(suite) ((max by (suite) (last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))) > 0)) or on(suite) (100 * (1 - clamp_max((max by (suite) (last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))), 1))) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) - 1))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}",
|
"legendFormat": "{{suite}}",
|
||||||
"instant": true
|
"instant": true
|
||||||
@ -1172,7 +1172,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))",
|
"expr": "(max by (suite) (last_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h]))) or on(suite) (max by (suite) (last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h])))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1248,7 +1248,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "((100 * clamp_min((max by (suite) (platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) - (max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})), 0) / (max by (suite) (platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))) and on(suite) ((max by (suite) (platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) > 0)) or on(suite) (100 * (1 - clamp_max((max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})), 1)))",
|
"expr": "(100 * clamp_min((max by (suite) (last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h]))) - (max by (suite) (last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h]))), 0) / (max by (suite) (last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h])))) and on(suite) ((max by (suite) (last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h]))) > 0) or on(suite) (100 * (1 - clamp_max((max by (suite) (last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h]))), 1)))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1326,7 +1326,7 @@ data:
|
|||||||
"id": 130,
|
"id": 130,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Tests Failure Rate",
|
"title": "Tests Failure Rate",
|
||||||
"description": "Current bad-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are failing right now; this is not an event-count spike chart.",
|
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1339,7 +1339,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1402,7 +1402,7 @@ data:
|
|||||||
"id": 131,
|
"id": 131,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Coverage Failure Rate",
|
"title": "Coverage Failure Rate",
|
||||||
"description": "Current bad-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are failing right now; this is not an event-count spike chart.",
|
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1415,7 +1415,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1478,7 +1478,7 @@ data:
|
|||||||
"id": 132,
|
"id": 132,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "LOC Failure Rate",
|
"title": "LOC Failure Rate",
|
||||||
"description": "Current bad-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are failing right now; this is not an event-count spike chart.",
|
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1491,7 +1491,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1554,7 +1554,7 @@ data:
|
|||||||
"id": 133,
|
"id": 133,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Style Failure Rate",
|
"title": "Style Failure Rate",
|
||||||
"description": "Current bad-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are failing right now; this is not an event-count spike chart.",
|
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1567,7 +1567,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1630,7 +1630,7 @@ data:
|
|||||||
"id": 134,
|
"id": 134,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Gate Glue Failure Rate",
|
"title": "Gate Glue Failure Rate",
|
||||||
"description": "Current bad-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are failing right now; this is not an event-count spike chart.",
|
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1643,7 +1643,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1706,7 +1706,7 @@ data:
|
|||||||
"id": 135,
|
"id": 135,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "SonarQube Failure Rate",
|
"title": "SonarQube Failure Rate",
|
||||||
"description": "Current bad-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are failing right now; this is not an event-count spike chart.",
|
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1719,7 +1719,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1782,7 +1782,7 @@ data:
|
|||||||
"id": 136,
|
"id": 136,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Supply Chain Failure Rate",
|
"title": "Supply Chain Failure Rate",
|
||||||
"description": "Current bad-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are failing right now; this is not an event-count spike chart.",
|
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1795,7 +1795,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1873,7 +1873,7 @@ data:
|
|||||||
"id": 138,
|
"id": 138,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Tests Healthy Rate",
|
"title": "Tests Healthy Rate",
|
||||||
"description": "Current acceptable-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are healthy right now; gaps mean there was no check evidence.",
|
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1886,7 +1886,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -1949,7 +1949,7 @@ data:
|
|||||||
"id": 139,
|
"id": 139,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Coverage Healthy Rate",
|
"title": "Coverage Healthy Rate",
|
||||||
"description": "Current acceptable-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are healthy right now; gaps mean there was no check evidence.",
|
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -1962,7 +1962,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -2025,7 +2025,7 @@ data:
|
|||||||
"id": 140,
|
"id": 140,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "LOC Healthy Rate",
|
"title": "LOC Healthy Rate",
|
||||||
"description": "Current acceptable-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are healthy right now; gaps mean there was no check evidence.",
|
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -2038,7 +2038,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -2101,7 +2101,7 @@ data:
|
|||||||
"id": 141,
|
"id": 141,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Style Healthy Rate",
|
"title": "Style Healthy Rate",
|
||||||
"description": "Current acceptable-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are healthy right now; gaps mean there was no check evidence.",
|
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -2114,7 +2114,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -2177,7 +2177,7 @@ data:
|
|||||||
"id": 142,
|
"id": 142,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Gate Glue Healthy Rate",
|
"title": "Gate Glue Healthy Rate",
|
||||||
"description": "Current acceptable-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are healthy right now; gaps mean there was no check evidence.",
|
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -2190,7 +2190,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -2253,7 +2253,7 @@ data:
|
|||||||
"id": 143,
|
"id": 143,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "SonarQube Healthy Rate",
|
"title": "SonarQube Healthy Rate",
|
||||||
"description": "Current acceptable-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are healthy right now; gaps mean there was no check evidence.",
|
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -2266,7 +2266,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
@ -2329,7 +2329,7 @@ data:
|
|||||||
"id": 144,
|
"id": 144,
|
||||||
"type": "state-timeline",
|
"type": "state-timeline",
|
||||||
"title": "Supply Chain Healthy Rate",
|
"title": "Supply Chain Healthy Rate",
|
||||||
"description": "Current acceptable-state percentage for this check family, evaluated over time. Higher means more of the selected suites/checks are healthy right now; gaps mean there was no check evidence.",
|
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
|
||||||
"datasource": {
|
"datasource": {
|
||||||
"type": "prometheus",
|
"type": "prometheus",
|
||||||
"uid": "atlas-vm"
|
"uid": "atlas-vm"
|
||||||
@ -2342,7 +2342,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",status!=\"\"}) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
"expr": "(((100 * (sum by (suite) (max by (suite, check) (((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h])) > bool 0)))) / clamp_min((sum by (suite) (max by (suite, check) ((last_over_time(platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",status!=\"\"}[30h])) > bool 0))), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))))",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"legendFormat": "{{suite}}"
|
"legendFormat": "{{suite}}"
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user