From ba9b72312a2174cfd9e6d7b136a5629f78ec0e2b Mon Sep 17 00:00:00 2001 From: jenkins Date: Tue, 19 May 2026 03:59:55 -0300 Subject: [PATCH] monitoring(testing): derive gate health from raw checks --- scripts/dashboards_render_atlas.py | 73 ++++++++++++++++--- scripts/tests/test_dashboards_render_atlas.py | 13 +++- .../monitoring/dashboards/atlas-testing.json | 30 ++++---- .../monitoring/grafana-dashboard-testing.yaml | 30 ++++---- 4 files changed, 102 insertions(+), 44 deletions(-) diff --git a/scripts/dashboards_render_atlas.py b/scripts/dashboards_render_atlas.py index b793a3d2..81d5073f 100644 --- a/scripts/dashboards_render_atlas.py +++ b/scripts/dashboards_render_atlas.py @@ -627,6 +627,49 @@ PLATFORM_TEST_ACTIVE_SUITES_24H = ( PLATFORM_TEST_POINT_WINDOW = "1h" PLATFORM_TEST_FRESH_WINDOW = "30h" PLATFORM_TEST_LATEST_WINDOW = "30d" + + +def platform_check_status_expr( + suite_matcher: str, + *, + branch_matcher: str = 'branch!=""', + check_matcher: str = 'check!=""', + status_matcher: str = 'status!=""', + window: str = PLATFORM_TEST_FRESH_WINDOW, +) -> str: + """Return recent check gauges normalized to a status label.""" + result_matcher = status_matcher.replace("status", "result", 1) + base = ( + f'__name__=~".*_quality_gate_checks_total",{suite_matcher},' + f'{PLATFORM_TEST_EXPORT_FILTER},{check_matcher}' + ) + build_info = ( + f'max by (suite, branch) (last_over_time(platform_quality_gate_build_info' + f'{{{suite_matcher},{PLATFORM_TEST_EXPORT_FILTER},{branch_matcher}}}[{window}]))' + ) + with_status = ( + f'last_over_time({{{base},{branch_matcher},{status_matcher}}}[{window}])' + ) + with_result = ( + f'label_replace(last_over_time({{{base},{branch_matcher},{result_matcher},status=""}}' + f'[{window}]), "status", "$1", "result", "(.*)")' + ) + inferred_status = ( + f'(last_over_time({{{base},branch="",{status_matcher}}}[{window}]) ' + f'* on (suite) group_left(branch) ({build_info}))' + ) + inferred_result = ( + f'(label_replace(last_over_time({{{base},branch="",{result_matcher},status=""}}' + f'[{window}]), "status", "$1", "result", "(.*)") ' + f'* on (suite) group_left(branch) ({build_info}))' + ) + return ( + f"sum by (suite, branch, check, status) (" + f"{with_status} or {with_result} or {inferred_status} or {inferred_result}" + f")" + ) + + PLATFORM_TEST_SUCCESS_RATE_SUITE_TARGETS = [ { "refId": chr(ord("A") + index), @@ -679,18 +722,26 @@ PLATFORM_TEST_CHECKS_SELECTOR = ( f"{PLATFORM_TEST_EXPORT_FILTER}" ) PLATFORM_TEST_CHECK_ROLLUP_MATCHERS = ( - f'suite=~"{PLATFORM_TEST_SUITE_CANONICAL_MATCHER}",branch!="",check!=""' + f'suite=~"{PLATFORM_TEST_SUITE_CANONICAL_MATCHER}"' ) -# This recording rule already folds recent scrape freshness into the current sample. -# Do not wrap it in a multi-hour range for "latest" panels, or old failures linger. -PLATFORM_TEST_CHECK_ROLLUP_SELECTOR = ( - f'platform_quality:check_status:present_1h{{{PLATFORM_TEST_CHECK_ROLLUP_MATCHERS},status!=""}}' +PLATFORM_TEST_PRIMARY_BRANCH_MATCHER = 'branch=~"main|master|origin/main|origin/master"' +PLATFORM_TEST_CHECK_ROLLUP_SELECTOR = platform_check_status_expr( + PLATFORM_TEST_CHECK_ROLLUP_MATCHERS, + branch_matcher=PLATFORM_TEST_PRIMARY_BRANCH_MATCHER, ) PLATFORM_TEST_CHECK_ROLLUP_OK_SELECTOR = ( - f'platform_quality:check_status:present_1h{{{PLATFORM_TEST_CHECK_ROLLUP_MATCHERS},status=~"{PLATFORM_TEST_NON_FAILURE_STATUS}"}}' + platform_check_status_expr( + PLATFORM_TEST_CHECK_ROLLUP_MATCHERS, + branch_matcher=PLATFORM_TEST_PRIMARY_BRANCH_MATCHER, + status_matcher=f'status=~"{PLATFORM_TEST_NON_FAILURE_STATUS}"', + ) ) PLATFORM_TEST_CHECK_ROLLUP_FAILED_SELECTOR = ( - f'platform_quality:check_status:present_1h{{{PLATFORM_TEST_CHECK_ROLLUP_MATCHERS},status!~"{PLATFORM_TEST_NON_FAILURE_STATUS}"}}' + platform_check_status_expr( + PLATFORM_TEST_CHECK_ROLLUP_MATCHERS, + branch_matcher=PLATFORM_TEST_PRIMARY_BRANCH_MATCHER, + status_matcher=f'status!~"{PLATFORM_TEST_NON_FAILURE_STATUS}"', + ) ) PLATFORM_TEST_CHECK_ROLLUP_SEEN_FLAGS = ( f'clamp_max(max by (suite, check) (({PLATFORM_TEST_CHECK_ROLLUP_SELECTOR}) > 0), 1)' @@ -3776,9 +3827,11 @@ def build_jobs_dashboard(): check_matcher: str = 'check!=""', status_matcher: str = 'status!=""', ) -> str: - selector = ( - f'platform_quality:check_status:present_1h{{suite=~"{suite_var}",branch!="",' - f'branch=~"{branch_var}",{check_matcher},{status_matcher}}}' + selector = platform_check_status_expr( + f'suite=~"{suite_var}"', + branch_matcher=f'branch!="",branch=~"{branch_var}"', + check_matcher=check_matcher, + status_matcher=status_matcher, ) return selector diff --git a/scripts/tests/test_dashboards_render_atlas.py b/scripts/tests/test_dashboards_render_atlas.py index 4840b109..d82551db 100644 --- a/scripts/tests/test_dashboards_render_atlas.py +++ b/scripts/tests/test_dashboards_render_atlas.py @@ -227,8 +227,11 @@ def test_jobs_dashboard_separates_current_gate_health_from_reliability(): current_gate_expr = panels_by_title["Latest Gate Checks Passing by Suite"]["targets"][0]["expr"] assert 'check)' in current_gate_expr - assert "platform_quality:check_status:present_1h" in current_gate_expr - assert "platform_quality_gate_checks_total" not in current_gate_expr + assert "platform_quality:check_status:present_1h" not in current_gate_expr + assert '.*_quality_gate_checks_total' in current_gate_expr + assert "last_over_time" in current_gate_expr + assert 'label_replace' in current_gate_expr + assert 'result=~"ok|passed|success|not_applicable|skipped|na|n/a"' in current_gate_expr assert 'status=~"ok|passed|success|not_applicable|skipped|na|n/a"' in current_gate_expr assert 'status!~"ok|passed|success|not_applicable|skipped|na|n/a"' in current_gate_expr assert "unless on(suite, check)" in current_gate_expr @@ -337,8 +340,10 @@ def test_jobs_dashboard_collapses_heavy_drilldowns_for_light_first_paint(): assert failure_rate_panel["fieldConfig"]["defaults"]["max"] == 100 assert failure_rate_panel["fieldConfig"]["defaults"]["thresholds"]["steps"][0]["color"] == "dark-blue" assert "increase(" not in failure_rate_panel["targets"][0]["expr"] - assert "platform_quality:check_status:present_1h" in failure_rate_panel["targets"][0]["expr"] - assert "platform_quality_gate_checks_total" not in failure_rate_panel["targets"][0]["expr"] + assert "platform_quality:check_status:present_1h" not in failure_rate_panel["targets"][0]["expr"] + assert '.*_quality_gate_checks_total' in failure_rate_panel["targets"][0]["expr"] + assert "last_over_time" in failure_rate_panel["targets"][0]["expr"] + assert 'label_replace' in failure_rate_panel["targets"][0]["expr"] assert "0 *" in failure_rate_panel["targets"][0]["expr"] assert "and on(suite)" not in failure_rate_panel["targets"][0]["expr"] diff --git a/services/monitoring/dashboards/atlas-testing.json b/services/monitoring/dashboards/atlas-testing.json index 848ee4b7..3cc6e04a 100644 --- a/services/monitoring/dashboards/atlas-testing.json +++ b/services/monitoring/dashboards/atlas-testing.json @@ -455,7 +455,7 @@ }, "targets": [ { - "expr": "sort(((100 * (sum by (suite) (((clamp_max(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\"}) > 0), 1)) unless on(suite, check) (clamp_max(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\"}) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check!=\"\",status!=\"\"}) > 0), 1))), 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) (((clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch!=\"\",branch=~\"${branch:regex}\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch=\"\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}", "instant": true @@ -1330,7 +1330,7 @@ }, "targets": [ { - "expr": "(((100 * (sum by (suite) (clamp_max(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\"}) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status!=\"\"}) > 0), 1))), 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) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -1406,7 +1406,7 @@ }, "targets": [ { - "expr": "(((100 * (sum by (suite) (clamp_max(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\"}) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status!=\"\"}) > 0), 1))), 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) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -1482,7 +1482,7 @@ }, "targets": [ { - "expr": "(((100 * (sum by (suite) (clamp_max(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\"}) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status!=\"\"}) > 0), 1))), 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) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -1558,7 +1558,7 @@ }, "targets": [ { - "expr": "(((100 * (sum by (suite) (clamp_max(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\"}) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(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!=\"\"}) > 0), 1))), 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) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -1634,7 +1634,7 @@ }, "targets": [ { - "expr": "(((100 * (sum by (suite) (clamp_max(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\"}) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status!=\"\"}) > 0), 1))), 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) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -1710,7 +1710,7 @@ }, "targets": [ { - "expr": "(((100 * (sum by (suite) (clamp_max(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\"}) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status!=\"\"}) > 0), 1))), 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) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -1786,7 +1786,7 @@ }, "targets": [ { - "expr": "(((100 * (sum by (suite) (clamp_max(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\"}) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(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!=\"\"}) > 0), 1))), 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) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -1877,7 +1877,7 @@ }, "targets": [ { - "expr": "(((100 * (sum by (suite) (((clamp_max(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\"}) > 0), 1)) unless on(suite, check) (clamp_max(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\"}) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status!=\"\"}) > 0), 1))), 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) (((clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -1953,7 +1953,7 @@ }, "targets": [ { - "expr": "(((100 * (sum by (suite) (((clamp_max(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\"}) > 0), 1)) unless on(suite, check) (clamp_max(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\"}) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status!=\"\"}) > 0), 1))), 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) (((clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -2029,7 +2029,7 @@ }, "targets": [ { - "expr": "(((100 * (sum by (suite) (((clamp_max(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\"}) > 0), 1)) unless on(suite, check) (clamp_max(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\"}) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status!=\"\"}) > 0), 1))), 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) (((clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -2105,7 +2105,7 @@ }, "targets": [ { - "expr": "(((100 * (sum by (suite) (((clamp_max(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\"}) > 0), 1)) unless on(suite, check) (clamp_max(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\"}) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(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!=\"\"}) > 0), 1))), 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) (((clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -2181,7 +2181,7 @@ }, "targets": [ { - "expr": "(((100 * (sum by (suite) (((clamp_max(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\"}) > 0), 1)) unless on(suite, check) (clamp_max(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\"}) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status!=\"\"}) > 0), 1))), 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) (((clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -2257,7 +2257,7 @@ }, "targets": [ { - "expr": "(((100 * (sum by (suite) (((clamp_max(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\"}) > 0), 1)) unless on(suite, check) (clamp_max(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\"}) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status!=\"\"}) > 0), 1))), 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) (((clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -2333,7 +2333,7 @@ }, "targets": [ { - "expr": "(((100 * (sum by (suite) (((clamp_max(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\"}) > 0), 1)) unless on(suite, check) (clamp_max(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\"}) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(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!=\"\"}) > 0), 1))), 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) (((clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } diff --git a/services/monitoring/grafana-dashboard-testing.yaml b/services/monitoring/grafana-dashboard-testing.yaml index e82ebc0c..fe38f91c 100644 --- a/services/monitoring/grafana-dashboard-testing.yaml +++ b/services/monitoring/grafana-dashboard-testing.yaml @@ -464,7 +464,7 @@ data: }, "targets": [ { - "expr": "sort(((100 * (sum by (suite) (((clamp_max(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\"}) > 0), 1)) unless on(suite, check) (clamp_max(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\"}) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check!=\"\",status!=\"\"}) > 0), 1))), 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) (((clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch!=\"\",branch=~\"${branch:regex}\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch=\"\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check!=\"\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}", "instant": true @@ -1339,7 +1339,7 @@ data: }, "targets": [ { - "expr": "(((100 * (sum by (suite) (clamp_max(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\"}) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status!=\"\"}) > 0), 1))), 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) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -1415,7 +1415,7 @@ data: }, "targets": [ { - "expr": "(((100 * (sum by (suite) (clamp_max(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\"}) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status!=\"\"}) > 0), 1))), 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) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -1491,7 +1491,7 @@ data: }, "targets": [ { - "expr": "(((100 * (sum by (suite) (clamp_max(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\"}) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status!=\"\"}) > 0), 1))), 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) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -1567,7 +1567,7 @@ data: }, "targets": [ { - "expr": "(((100 * (sum by (suite) (clamp_max(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\"}) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(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!=\"\"}) > 0), 1))), 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) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -1643,7 +1643,7 @@ data: }, "targets": [ { - "expr": "(((100 * (sum by (suite) (clamp_max(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\"}) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status!=\"\"}) > 0), 1))), 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) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -1719,7 +1719,7 @@ data: }, "targets": [ { - "expr": "(((100 * (sum by (suite) (clamp_max(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\"}) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status!=\"\"}) > 0), 1))), 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) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -1795,7 +1795,7 @@ data: }, "targets": [ { - "expr": "(((100 * (sum by (suite) (clamp_max(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\"}) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(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!=\"\"}) > 0), 1))), 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) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -1886,7 +1886,7 @@ data: }, "targets": [ { - "expr": "(((100 * (sum by (suite) (((clamp_max(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\"}) > 0), 1)) unless on(suite, check) (clamp_max(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\"}) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\",status!=\"\"}) > 0), 1))), 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) (((clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -1962,7 +1962,7 @@ data: }, "targets": [ { - "expr": "(((100 * (sum by (suite) (((clamp_max(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\"}) > 0), 1)) unless on(suite, check) (clamp_max(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\"}) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\",status!=\"\"}) > 0), 1))), 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) (((clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -2038,7 +2038,7 @@ data: }, "targets": [ { - "expr": "(((100 * (sum by (suite) (((clamp_max(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\"}) > 0), 1)) unless on(suite, check) (clamp_max(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\"}) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\",status!=\"\"}) > 0), 1))), 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) (((clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -2114,7 +2114,7 @@ data: }, "targets": [ { - "expr": "(((100 * (sum by (suite) (((clamp_max(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\"}) > 0), 1)) unless on(suite, check) (clamp_max(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\"}) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(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!=\"\"}) > 0), 1))), 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) (((clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming|style\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -2190,7 +2190,7 @@ data: }, "targets": [ { - "expr": "(((100 * (sum by (suite) (((clamp_max(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\"}) > 0), 1)) unless on(suite, check) (clamp_max(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\"}) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\",status!=\"\"}) > 0), 1))), 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) (((clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -2266,7 +2266,7 @@ data: }, "targets": [ { - "expr": "(((100 * (sum by (suite) (((clamp_max(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\"}) > 0), 1)) unless on(suite, check) (clamp_max(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\"}) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\",status!=\"\"}) > 0), 1))), 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) (((clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" } @@ -2342,7 +2342,7 @@ data: }, "targets": [ { - "expr": "(((100 * (sum by (suite) (((clamp_max(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\"}) > 0), 1)) unless on(suite, check) (clamp_max(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\"}) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(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!=\"\"}) > 0), 1))), 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) (((clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",result=~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",result!~\"ok|passed|success|not_applicable|skipped|na|n/a\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((sum by (suite, branch, check, status) (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",status!=\"\"}[30h]) or label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch!=\"\",branch=~\"${branch:regex}\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") or (last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",status!=\"\"}[30h]) * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))) or (label_replace(last_over_time({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",branch=\"\",result!=\"\",status=\"\"}[30h]), \"status\", \"$1\", \"result\", \"(.*)\") * on (suite) group_left(branch) (max by (suite, branch) (last_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",branch!=\"\",branch=~\"${branch:regex}\"}[30h])))))) > 0), 1))), 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", "legendFormat": "{{suite}}" }