From f9d7694f250b7324d2582e6fe3f16269ed082a50 Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Sun, 19 Apr 2026 15:31:59 -0300 Subject: [PATCH] monitoring(testing): harden suite selector and success history query --- scripts/dashboards_render_atlas.py | 7 ++- .../monitoring/dashboards/atlas-jobs.json | 62 +++++++++---------- .../monitoring/grafana-dashboard-jobs.yaml | 62 +++++++++---------- 3 files changed, 66 insertions(+), 65 deletions(-) diff --git a/scripts/dashboards_render_atlas.py b/scripts/dashboards_render_atlas.py index a1c867b2..8dad1cc8 100644 --- a/scripts/dashboards_render_atlas.py +++ b/scripts/dashboards_render_atlas.py @@ -2958,7 +2958,7 @@ def build_mail_dashboard(): def build_jobs_dashboard(): panels = [] - suite_var = "${suite}" + suite_var = "${suite:raw}" success = PLATFORM_TEST_SUCCESS_STATUS exported = PLATFORM_TEST_EXPORT_FILTER runs_selector = f'suite=~"{suite_var}",{exported}' @@ -2996,8 +2996,9 @@ def build_jobs_dashboard(): f'sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_failure_selector}}}[24h]))' ) success_history_by_suite = ( - f'100 * (sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_success_selector}}}[$__interval])) ' - f'/ clamp_min((sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[$__interval]))), 1))' + f'(100 * (sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_success_selector}}}[$__interval])) ' + f'/ clamp_min((sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[$__interval]))), 1))) ' + f'or on(suite) (0 * sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[$__range])))' ) coverage_by_suite = ( f'(max by (suite) ({{{coverage_metric_selector}}})) ' diff --git a/services/monitoring/dashboards/atlas-jobs.json b/services/monitoring/dashboards/atlas-jobs.json index fa87c5c9..bbf9c093 100644 --- a/services/monitoring/dashboards/atlas-jobs.json +++ b/services/monitoring/dashboards/atlas-jobs.json @@ -20,7 +20,7 @@ }, "targets": [ { - "expr": "100 * ((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[24h])) or on() vector(0))) / clamp_min(((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))), 1)", + "expr": "100 * ((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[24h])) or on() vector(0))) / clamp_min(((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))), 1)", "refId": "A", "instant": true } @@ -90,7 +90,7 @@ }, "targets": [ { - "expr": "100 * ((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d])) or on() vector(0))) / clamp_min(((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[30d])) or on() vector(0))), 1)", + "expr": "100 * ((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d])) or on() vector(0))) / clamp_min(((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[30d])) or on() vector(0))), 1)", "refId": "A", "instant": true } @@ -160,7 +160,7 @@ }, "targets": [ { - "expr": "(sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}[24h])) or on() vector(0))", + "expr": "(sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}[24h])) or on() vector(0))", "refId": "A", "instant": true } @@ -229,7 +229,7 @@ }, "targets": [ { - "expr": "(sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))", + "expr": "(sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))", "refId": "A", "instant": true } @@ -290,7 +290,7 @@ }, "targets": [ { - "expr": "(avg(((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"})))) or on() vector(0))", + "expr": "(avg(((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"})))) or on() vector(0))", "refId": "A", "instant": true } @@ -360,7 +360,7 @@ }, "targets": [ { - "expr": "(sum(((max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"})) > bool 0)) or on() vector(0))", + "expr": "(sum(((max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"})) > bool 0)) or on() vector(0))", "refId": "A", "instant": true } @@ -433,7 +433,7 @@ }, "targets": [ { - "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",result!~\"ok|passed|success\"})) or on() vector(0))", + "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",result!~\"ok|passed|success\"})) or on() vector(0))", "refId": "A", "instant": true } @@ -502,7 +502,7 @@ }, "targets": [ { - "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",result!~\"ok|passed|success\"})) or on() vector(0))", + "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",result!~\"ok|passed|success\"})) or on() vector(0))", "refId": "A", "instant": true } @@ -571,7 +571,7 @@ }, "targets": [ { - "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",result!~\"ok|passed|success\"})) or on() vector(0))", + "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",result!~\"ok|passed|success\"})) or on() vector(0))", "refId": "A", "instant": true } @@ -640,7 +640,7 @@ }, "targets": [ { - "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming\",result!~\"ok|passed|success\"})) or on() vector(0))", + "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming\",result!~\"ok|passed|success\"})) or on() vector(0))", "refId": "A", "instant": true } @@ -709,7 +709,7 @@ }, "targets": [ { - "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",result!~\"ok|passed|success\"})) or on() vector(0))", + "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",result!~\"ok|passed|success\"})) or on() vector(0))", "refId": "A", "instant": true } @@ -778,7 +778,7 @@ }, "targets": [ { - "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",result!~\"ok|passed|success\"})) or on() vector(0))", + "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",result!~\"ok|passed|success\"})) or on() vector(0))", "refId": "A", "instant": true } @@ -847,7 +847,7 @@ }, "targets": [ { - "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",result!~\"ok|passed|success\"})) or on() vector(0))", + "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",result!~\"ok|passed|success\"})) or on() vector(0))", "refId": "A", "instant": true } @@ -916,7 +916,7 @@ }, "targets": [ { - "expr": "(sum({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",result!~\"ok|passed|success\"}) or on() vector(0))", + "expr": "(sum({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",result!~\"ok|passed|success\"}) or on() vector(0))", "refId": "A", "instant": true } @@ -985,7 +985,7 @@ }, "targets": [ { - "expr": "sort_desc(sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}[24h])))", + "expr": "sort_desc(sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}[24h])))", "refId": "A", "legendFormat": "{{suite}}", "instant": true @@ -1059,7 +1059,7 @@ }, "targets": [ { - "expr": "sort_desc(100 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[24h]))) / clamp_min((sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[24h]))), 1))", + "expr": "sort_desc(100 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[24h]))) / clamp_min((sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[24h]))), 1))", "refId": "A", "legendFormat": "{{suite}}", "instant": true @@ -1134,7 +1134,7 @@ }, "targets": [ { - "expr": "sort_desc(clamp_min(95 - ((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}))), 0))", + "expr": "sort_desc(clamp_min(95 - ((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}))), 0))", "refId": "A", "legendFormat": "{{suite}}", "instant": true @@ -1210,7 +1210,7 @@ }, "targets": [ { - "expr": "100 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[$__interval])) / clamp_min((sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[$__interval]))), 1))", + "expr": "(100 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[$__interval])) / clamp_min((sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[$__interval]))), 1))) or on(suite) (0 * sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[$__range])))", "refId": "A", "legendFormat": "{{suite}}" } @@ -1259,17 +1259,17 @@ "targets": [ { "refId": "A", - "expr": "sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[$__interval])) or on() vector(0)", + "expr": "sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[$__interval])) or on() vector(0)", "legendFormat": "Success" }, { "refId": "B", - "expr": "sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}[$__interval])) or on() vector(0)", + "expr": "sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}[$__interval])) or on() vector(0)", "legendFormat": "Failure" }, { "refId": "C", - "expr": "sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[$__interval])) or on() vector(0)", + "expr": "sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[$__interval])) or on() vector(0)", "legendFormat": "Total" } ], @@ -1310,12 +1310,12 @@ "targets": [ { "refId": "A", - "expr": "max_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[$__interval])", + "expr": "max_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[$__interval])", "legendFormat": "{{suite}} coverage %" }, { "refId": "B", - "expr": "max_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[$__interval])", + "expr": "max_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[$__interval])", "legendFormat": "{{suite}} files >500 LOC" } ], @@ -1355,7 +1355,7 @@ }, "targets": [ { - "expr": "sum by (status) (increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[30d]))", + "expr": "sum by (status) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[30d]))", "refId": "A", "legendFormat": "{{status}}" } @@ -1406,7 +1406,7 @@ }, "targets": [ { - "expr": "sort_desc(sum by (suite, result) ({__name__=~\".*_quality_gate_tests_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}))", + "expr": "sort_desc(sum by (suite, result) ({__name__=~\".*_quality_gate_tests_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}))", "refId": "A", "legendFormat": "{{suite}} \u00b7 {{result}}", "instant": true @@ -1486,7 +1486,7 @@ }, "targets": [ { - "expr": "sort_desc(sum by (suite, check) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",result!~\"ok|passed|success\"}))", + "expr": "sort_desc(sum by (suite, check) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",result!~\"ok|passed|success\"}))", "refId": "A", "legendFormat": "{{suite}} \u00b7 {{check}}", "instant": true @@ -1567,7 +1567,7 @@ }, "targets": [ { - "expr": "sort(((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}))) or on(suite) (0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[30d]))) - 1))", + "expr": "sort(((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}))) or on(suite) (0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[30d]))) - 1))", "refId": "A", "legendFormat": "{{suite}}", "instant": true @@ -1652,7 +1652,7 @@ }, "targets": [ { - "expr": "sort_desc((max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"})) or on(suite) (0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[30d]))) - 1))", + "expr": "sort_desc((max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"})) or on(suite) (0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[30d]))) - 1))", "refId": "A", "legendFormat": "{{suite}}", "instant": true @@ -2069,7 +2069,7 @@ }, "targets": [ { - "expr": "(count(sonarqube_project_quality_gate_pass{project_key=~\"${suite}\"}) or on() vector(0))", + "expr": "(count(sonarqube_project_quality_gate_pass{project_key=~\"${suite:raw}\"}) or on() vector(0))", "refId": "A", "instant": true } @@ -2207,7 +2207,7 @@ }, "targets": [ { - "expr": "count by (status) (sonarqube_project_quality_gate_pass{project_key=~\"${suite}\"})", + "expr": "count by (status) (sonarqube_project_quality_gate_pass{project_key=~\"${suite:raw}\"})", "refId": "A", "legendFormat": "{{status}}" } @@ -2258,7 +2258,7 @@ }, "targets": [ { - "expr": "sort_desc(count by (project_key) (sonarqube_project_quality_gate_pass{project_key=~\"${suite}\",status!~\"OK|ok\"}))", + "expr": "sort_desc(count by (project_key) (sonarqube_project_quality_gate_pass{project_key=~\"${suite:raw}\",status!~\"OK|ok\"}))", "refId": "A", "legendFormat": "{{project_key}}", "instant": true diff --git a/services/monitoring/grafana-dashboard-jobs.yaml b/services/monitoring/grafana-dashboard-jobs.yaml index b54c8be0..44024c2b 100644 --- a/services/monitoring/grafana-dashboard-jobs.yaml +++ b/services/monitoring/grafana-dashboard-jobs.yaml @@ -29,7 +29,7 @@ data: }, "targets": [ { - "expr": "100 * ((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[24h])) or on() vector(0))) / clamp_min(((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))), 1)", + "expr": "100 * ((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[24h])) or on() vector(0))) / clamp_min(((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))), 1)", "refId": "A", "instant": true } @@ -99,7 +99,7 @@ data: }, "targets": [ { - "expr": "100 * ((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d])) or on() vector(0))) / clamp_min(((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[30d])) or on() vector(0))), 1)", + "expr": "100 * ((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d])) or on() vector(0))) / clamp_min(((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[30d])) or on() vector(0))), 1)", "refId": "A", "instant": true } @@ -169,7 +169,7 @@ data: }, "targets": [ { - "expr": "(sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}[24h])) or on() vector(0))", + "expr": "(sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}[24h])) or on() vector(0))", "refId": "A", "instant": true } @@ -238,7 +238,7 @@ data: }, "targets": [ { - "expr": "(sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))", + "expr": "(sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))", "refId": "A", "instant": true } @@ -299,7 +299,7 @@ data: }, "targets": [ { - "expr": "(avg(((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"})))) or on() vector(0))", + "expr": "(avg(((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"})))) or on() vector(0))", "refId": "A", "instant": true } @@ -369,7 +369,7 @@ data: }, "targets": [ { - "expr": "(sum(((max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"})) > bool 0)) or on() vector(0))", + "expr": "(sum(((max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"})) > bool 0)) or on() vector(0))", "refId": "A", "instant": true } @@ -442,7 +442,7 @@ data: }, "targets": [ { - "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",result!~\"ok|passed|success\"})) or on() vector(0))", + "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",check=~\"tests|unit|build\",result!~\"ok|passed|success\"})) or on() vector(0))", "refId": "A", "instant": true } @@ -511,7 +511,7 @@ data: }, "targets": [ { - "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",result!~\"ok|passed|success\"})) or on() vector(0))", + "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",check=~\"coverage\",result!~\"ok|passed|success\"})) or on() vector(0))", "refId": "A", "instant": true } @@ -580,7 +580,7 @@ data: }, "targets": [ { - "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",result!~\"ok|passed|success\"})) or on() vector(0))", + "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",check=~\"loc|smell\",result!~\"ok|passed|success\"})) or on() vector(0))", "refId": "A", "instant": true } @@ -649,7 +649,7 @@ data: }, "targets": [ { - "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming\",result!~\"ok|passed|success\"})) or on() vector(0))", + "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",check=~\"docs|naming|hygiene|lint|docs_naming\",result!~\"ok|passed|success\"})) or on() vector(0))", "refId": "A", "instant": true } @@ -718,7 +718,7 @@ data: }, "targets": [ { - "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",result!~\"ok|passed|success\"})) or on() vector(0))", + "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",check=~\"gate|glue|gate_glue\",result!~\"ok|passed|success\"})) or on() vector(0))", "refId": "A", "instant": true } @@ -787,7 +787,7 @@ data: }, "targets": [ { - "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",result!~\"ok|passed|success\"})) or on() vector(0))", + "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",check=~\"sonarqube|sonar\",result!~\"ok|passed|success\"})) or on() vector(0))", "refId": "A", "instant": true } @@ -856,7 +856,7 @@ data: }, "targets": [ { - "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",result!~\"ok|passed|success\"})) or on() vector(0))", + "expr": "(sum(count by (suite) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\",result!~\"ok|passed|success\"})) or on() vector(0))", "refId": "A", "instant": true } @@ -925,7 +925,7 @@ data: }, "targets": [ { - "expr": "(sum({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",result!~\"ok|passed|success\"}) or on() vector(0))", + "expr": "(sum({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",result!~\"ok|passed|success\"}) or on() vector(0))", "refId": "A", "instant": true } @@ -994,7 +994,7 @@ data: }, "targets": [ { - "expr": "sort_desc(sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}[24h])))", + "expr": "sort_desc(sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}[24h])))", "refId": "A", "legendFormat": "{{suite}}", "instant": true @@ -1068,7 +1068,7 @@ data: }, "targets": [ { - "expr": "sort_desc(100 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[24h]))) / clamp_min((sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[24h]))), 1))", + "expr": "sort_desc(100 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[24h]))) / clamp_min((sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[24h]))), 1))", "refId": "A", "legendFormat": "{{suite}}", "instant": true @@ -1143,7 +1143,7 @@ data: }, "targets": [ { - "expr": "sort_desc(clamp_min(95 - ((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}))), 0))", + "expr": "sort_desc(clamp_min(95 - ((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}))), 0))", "refId": "A", "legendFormat": "{{suite}}", "instant": true @@ -1219,7 +1219,7 @@ data: }, "targets": [ { - "expr": "100 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[$__interval])) / clamp_min((sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[$__interval]))), 1))", + "expr": "(100 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[$__interval])) / clamp_min((sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[$__interval]))), 1))) or on(suite) (0 * sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[$__range])))", "refId": "A", "legendFormat": "{{suite}}" } @@ -1268,17 +1268,17 @@ data: "targets": [ { "refId": "A", - "expr": "sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[$__interval])) or on() vector(0)", + "expr": "sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[$__interval])) or on() vector(0)", "legendFormat": "Success" }, { "refId": "B", - "expr": "sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}[$__interval])) or on() vector(0)", + "expr": "sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}[$__interval])) or on() vector(0)", "legendFormat": "Failure" }, { "refId": "C", - "expr": "sum(increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[$__interval])) or on() vector(0)", + "expr": "sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[$__interval])) or on() vector(0)", "legendFormat": "Total" } ], @@ -1319,12 +1319,12 @@ data: "targets": [ { "refId": "A", - "expr": "max_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[$__interval])", + "expr": "max_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[$__interval])", "legendFormat": "{{suite}} coverage %" }, { "refId": "B", - "expr": "max_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[$__interval])", + "expr": "max_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[$__interval])", "legendFormat": "{{suite}} files >500 LOC" } ], @@ -1364,7 +1364,7 @@ data: }, "targets": [ { - "expr": "sum by (status) (increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[30d]))", + "expr": "sum by (status) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[30d]))", "refId": "A", "legendFormat": "{{status}}" } @@ -1415,7 +1415,7 @@ data: }, "targets": [ { - "expr": "sort_desc(sum by (suite, result) ({__name__=~\".*_quality_gate_tests_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}))", + "expr": "sort_desc(sum by (suite, result) ({__name__=~\".*_quality_gate_tests_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}))", "refId": "A", "legendFormat": "{{suite}} \u00b7 {{result}}", "instant": true @@ -1495,7 +1495,7 @@ data: }, "targets": [ { - "expr": "sort_desc(sum by (suite, check) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\",result!~\"ok|passed|success\"}))", + "expr": "sort_desc(sum by (suite, check) ({__name__=~\".*_quality_gate_checks_total\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\",result!~\"ok|passed|success\"}))", "refId": "A", "legendFormat": "{{suite}} \u00b7 {{check}}", "instant": true @@ -1576,7 +1576,7 @@ data: }, "targets": [ { - "expr": "sort(((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}))) or on(suite) (0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[30d]))) - 1))", + "expr": "sort(((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}))) or on(suite) (0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[30d]))) - 1))", "refId": "A", "legendFormat": "{{suite}}", "instant": true @@ -1661,7 +1661,7 @@ data: }, "targets": [ { - "expr": "sort_desc((max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"})) or on(suite) (0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite}\",exported_job=\"platform-quality-ci\"}[30d]))) - 1))", + "expr": "sort_desc((max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"})) or on(suite) (0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:raw}\",exported_job=\"platform-quality-ci\"}[30d]))) - 1))", "refId": "A", "legendFormat": "{{suite}}", "instant": true @@ -2078,7 +2078,7 @@ data: }, "targets": [ { - "expr": "(count(sonarqube_project_quality_gate_pass{project_key=~\"${suite}\"}) or on() vector(0))", + "expr": "(count(sonarqube_project_quality_gate_pass{project_key=~\"${suite:raw}\"}) or on() vector(0))", "refId": "A", "instant": true } @@ -2216,7 +2216,7 @@ data: }, "targets": [ { - "expr": "count by (status) (sonarqube_project_quality_gate_pass{project_key=~\"${suite}\"})", + "expr": "count by (status) (sonarqube_project_quality_gate_pass{project_key=~\"${suite:raw}\"})", "refId": "A", "legendFormat": "{{status}}" } @@ -2267,7 +2267,7 @@ data: }, "targets": [ { - "expr": "sort_desc(count by (project_key) (sonarqube_project_quality_gate_pass{project_key=~\"${suite}\",status!~\"OK|ok\"}))", + "expr": "sort_desc(count by (project_key) (sonarqube_project_quality_gate_pass{project_key=~\"${suite:raw}\",status!~\"OK|ok\"}))", "refId": "A", "legendFormat": "{{project_key}}", "instant": true