monitoring(testing): prefer fresh suite quality samples

This commit is contained in:
jenkins 2026-05-17 05:52:06 -03:00
parent 4a32ad5fe5
commit 65c6e123cf
5 changed files with 84 additions and 28 deletions

View File

@ -57,6 +57,20 @@ def apply_global_status_palette(value, parent_key=None):
return GLOBAL_STATUS_COLOR_TONES.get(value, value)
return value
def latest_suite_value(
selector: str, window: str, success_selector: str | None = None
) -> str:
"""Return the newest sample per suite, ignoring stale Pushgateway scrape instances."""
sample = f"last_over_time({selector}[{window}])"
sample_time = f"tlast_over_time({selector}[{window}])"
if success_selector:
successful_run = f"(last_over_time({success_selector}[{window}]) > 0)"
sample = f"(({sample}) and ignoring(status) ({successful_run}))"
sample_time = f"(({sample_time}) and ignoring(status) ({successful_run}))"
latest_series = f"topk by (suite) (1, {sample_time})"
return f"max by (suite) (({sample}) and ({latest_series}))"
PERCENT_THRESHOLDS = {
"mode": "absolute",
"steps": [
@ -622,11 +636,20 @@ PLATFORM_TEST_SUCCESS_RATE_24H_BY_SUITE = (
f'/ clamp_min((sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",{PLATFORM_TEST_EXPORT_FILTER}}}[24h]))), 1))'
)
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_CANONICAL_MATCHER}",{PLATFORM_TEST_EXPORT_FILTER}}}[30d]))'
)
QUALITY_GATE_COVERAGE_BY_SUITE = (
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) (last_over_time(platform_quality_gate_workspace_line_coverage_percent{{{PLATFORM_TEST_EXPORT_FILTER}}}[{PLATFORM_TEST_LATEST_WINDOW}])))'
latest_suite_value(
f'{{__name__=~".*_quality_gate_coverage_percent",suite=~"{PLATFORM_TEST_SUITE_CANONICAL_MATCHER}",{PLATFORM_TEST_EXPORT_FILTER}}}',
PLATFORM_TEST_LATEST_WINDOW,
f"platform_quality_gate_runs_total{{suite=~\"{PLATFORM_TEST_SUITE_CANONICAL_MATCHER}\",status=~\"{PLATFORM_TEST_SUCCESS_STATUS}\",{PLATFORM_TEST_EXPORT_FILTER}}}",
)
+ " or on(suite) "
+ latest_suite_value(
f"platform_quality_gate_workspace_line_coverage_percent{{suite=~\"{PLATFORM_TEST_SUITE_CANONICAL_MATCHER}\",{PLATFORM_TEST_EXPORT_FILTER}}}",
PLATFORM_TEST_LATEST_WINDOW,
f"platform_quality_gate_runs_total{{suite=~\"{PLATFORM_TEST_SUITE_CANONICAL_MATCHER}\",status=~\"{PLATFORM_TEST_SUCCESS_STATUS}\",{PLATFORM_TEST_EXPORT_FILTER}}}",
)
)
QUALITY_GATE_COVERAGE_BY_SUITE_WITH_MISSING = (
f"({QUALITY_GATE_COVERAGE_BY_SUITE}) or on(suite) (0 * ({QUALITY_GATE_SUITE_INDEX_30D}) - 1)"
@ -635,7 +658,10 @@ QUALITY_GATE_COVERAGE_GAP_BY_SUITE = (
f"clamp_min(95 - ({QUALITY_GATE_COVERAGE_BY_SUITE}), 0)"
)
QUALITY_GATE_SMELL_INFRACTIONS_BY_SUITE = (
f"max by (suite) (last_over_time(platform_quality_gate_source_lines_over_500_total{{{PLATFORM_TEST_EXPORT_FILTER}}}[{PLATFORM_TEST_LATEST_WINDOW}]))"
latest_suite_value(
f"platform_quality_gate_source_lines_over_500_total{{suite=~\"{PLATFORM_TEST_SUITE_CANONICAL_MATCHER}\",{PLATFORM_TEST_EXPORT_FILTER}}}",
PLATFORM_TEST_LATEST_WINDOW,
)
)
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)"
@ -3809,27 +3835,57 @@ def build_jobs_dashboard():
f'sum(increase(platform_quality_gate_runs_total{{{runs_failure_selector}}}[24h])) or on() vector(0)'
)
coverage_by_suite = (
f'(max by (suite) (last_over_time({{{coverage_metric_selector}}}[{PLATFORM_TEST_LATEST_WINDOW}]))) '
f'or on(suite) (max by (suite) (last_over_time(platform_quality_gate_workspace_line_coverage_percent{{{workspace_coverage_selector}}}[{PLATFORM_TEST_LATEST_WINDOW}])))'
latest_suite_value(
f"{{{coverage_metric_selector}}}",
PLATFORM_TEST_LATEST_WINDOW,
f"platform_quality_gate_runs_total{{{runs_success_selector}}}",
)
+ " or on(suite) "
+ latest_suite_value(
f"platform_quality_gate_workspace_line_coverage_percent{{{workspace_coverage_selector}}}",
PLATFORM_TEST_LATEST_WINDOW,
f"platform_quality_gate_runs_total{{{runs_success_selector}}}",
)
)
coverage_history_by_suite = (
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) (last_over_time({{{coverage_metric_selector}}}[{PLATFORM_TEST_FRESH_WINDOW}])))'
latest_suite_value(
f"platform_quality_gate_workspace_line_coverage_percent{{{workspace_coverage_selector}}}",
PLATFORM_TEST_FRESH_WINDOW,
f"platform_quality_gate_runs_total{{{runs_success_selector}}}",
)
+ " or on(suite) "
+ latest_suite_value(
f"{{{coverage_metric_selector}}}",
PLATFORM_TEST_FRESH_WINDOW,
f"platform_quality_gate_runs_total{{{runs_success_selector}}}",
)
)
coverage_with_missing = (
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) (last_over_time(platform_quality_gate_source_lines_over_500_total{{{smell_selector}}}[{PLATFORM_TEST_LATEST_WINDOW}]))'
latest_suite_value(
f"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}]))'
latest_suite_value(
f"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}]))'
latest_suite_value(
f"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}]))'
latest_suite_value(
f"platform_quality_gate_source_files_total{{{smell_selector}}}",
PLATFORM_TEST_FRESH_WINDOW,
)
)
smell_with_missing = (
f"({smell_by_suite}) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[30d])))) - 1)"

View File

@ -2377,7 +2377,7 @@
},
"targets": [
{
"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))",
"expr": "(avg((max by (suite) ((((last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",status=~\"ok|passed|success\",exported_job=\"platform-quality-ci\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",status=~\"ok|passed|success\",exported_job=\"platform-quality-ci\"}[30d]) > 0)))))) or on(suite) max by (suite) ((((last_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",status=~\"ok|passed|success\",exported_job=\"platform-quality-ci\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",status=~\"ok|passed|success\",exported_job=\"platform-quality-ci\"}[30d]) > 0)))))))) or on() vector(0))",
"refId": "A",
"instant": true
}
@ -2463,7 +2463,7 @@
},
"targets": [
{
"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))",
"expr": "(sum((max by (suite) ((last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",exported_job=\"platform-quality-ci\"}[30d]))))) == bool 0) or on() vector(0))",
"refId": "A",
"instant": true
}

View File

@ -306,7 +306,7 @@
},
"targets": [
{
"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))",
"expr": "(avg((max by (suite) ((((last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))))) 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])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))))))) or on() vector(0))",
"refId": "A",
"instant": true
}
@ -381,7 +381,7 @@
},
"targets": [
{
"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))",
"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])) and (topk by (suite) (1, tlast_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",
"instant": true
}
@ -641,7 +641,7 @@
},
"targets": [
{
"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))",
"expr": "sort((max by (suite) ((((last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))))) 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])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0))))))) 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",
"legendFormat": "{{suite}}",
"instant": true
@ -734,7 +734,7 @@
},
"targets": [
{
"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))",
"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])) and (topk by (suite) (1, tlast_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])) and (topk by (suite) (1, tlast_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 (topk by (suite) (1, tlast_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])) and (topk by (suite) (1, tlast_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])) and (topk by (suite) (1, tlast_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",
"legendFormat": "{{suite}}",
"instant": true
@ -1163,7 +1163,7 @@
},
"targets": [
{
"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])))",
"expr": "max by (suite) ((((last_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30h]) > 0)))) and (topk by (suite) (1, ((tlast_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30h]) > 0)))))) or on(suite) max by (suite) ((((last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30h]) > 0)))) and (topk by (suite) (1, ((tlast_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30h]) > 0))))))",
"refId": "A",
"legendFormat": "{{suite}}"
}
@ -1239,7 +1239,7 @@
},
"targets": [
{
"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)))",
"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])) and (topk by (suite) (1, tlast_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])) and (topk by (suite) (1, tlast_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 (topk by (suite) (1, tlast_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])) and (topk by (suite) (1, tlast_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])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h]))))), 1)))",
"refId": "A",
"legendFormat": "{{suite}}"
}

View File

@ -2386,7 +2386,7 @@ data:
},
"targets": [
{
"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))",
"expr": "(avg((max by (suite) ((((last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",status=~\"ok|passed|success\",exported_job=\"platform-quality-ci\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",status=~\"ok|passed|success\",exported_job=\"platform-quality-ci\"}[30d]) > 0)))))) or on(suite) max by (suite) ((((last_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",status=~\"ok|passed|success\",exported_job=\"platform-quality-ci\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",status=~\"ok|passed|success\",exported_job=\"platform-quality-ci\"}[30d]) > 0)))))))) or on() vector(0))",
"refId": "A",
"instant": true
}
@ -2472,7 +2472,7 @@ data:
},
"targets": [
{
"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))",
"expr": "(sum((max by (suite) ((last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",exported_job=\"platform-quality-ci\"}[30d]))))) == bool 0) or on() vector(0))",
"refId": "A",
"instant": true
}

View File

@ -315,7 +315,7 @@ data:
},
"targets": [
{
"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))",
"expr": "(avg((max by (suite) ((((last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))))) 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])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))))))) or on() vector(0))",
"refId": "A",
"instant": true
}
@ -390,7 +390,7 @@ data:
},
"targets": [
{
"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))",
"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])) and (topk by (suite) (1, tlast_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",
"instant": true
}
@ -650,7 +650,7 @@ data:
},
"targets": [
{
"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))",
"expr": "sort((max by (suite) ((((last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))))) 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])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0))))))) 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",
"legendFormat": "{{suite}}",
"instant": true
@ -743,7 +743,7 @@ data:
},
"targets": [
{
"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))",
"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])) and (topk by (suite) (1, tlast_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])) and (topk by (suite) (1, tlast_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 (topk by (suite) (1, tlast_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])) and (topk by (suite) (1, tlast_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])) and (topk by (suite) (1, tlast_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",
"legendFormat": "{{suite}}",
"instant": true
@ -1172,7 +1172,7 @@ data:
},
"targets": [
{
"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])))",
"expr": "max by (suite) ((((last_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30h]) > 0)))) and (topk by (suite) (1, ((tlast_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30h]) > 0)))))) or on(suite) max by (suite) ((((last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30h]) > 0)))) and (topk by (suite) (1, ((tlast_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h])) and ignoring(status) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30h]) > 0))))))",
"refId": "A",
"legendFormat": "{{suite}}"
}
@ -1248,7 +1248,7 @@ data:
},
"targets": [
{
"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)))",
"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])) and (topk by (suite) (1, tlast_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])) and (topk by (suite) (1, tlast_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 (topk by (suite) (1, tlast_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])) and (topk by (suite) (1, tlast_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])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30h]))))), 1)))",
"refId": "A",
"legendFormat": "{{suite}}"
}