From 57306201cfa77ac543062e5f232bd1c9ab6c3e55 Mon Sep 17 00:00:00 2001 From: jenkins Date: Mon, 20 Apr 2026 09:13:34 -0300 Subject: [PATCH] monitoring(testing): backfill placeholder test-case metrics across sparse suites --- scripts/dashboards_render_atlas.py | 8 ++++---- services/logging/Jenkinsfile.data-prepper | 2 ++ services/monitoring/dashboards/atlas-jobs.json | 12 ++++++------ services/monitoring/grafana-dashboard-jobs.yaml | 12 ++++++------ 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/scripts/dashboards_render_atlas.py b/scripts/dashboards_render_atlas.py index 1b89b361..710aee68 100644 --- a/scripts/dashboards_render_atlas.py +++ b/scripts/dashboards_render_atlas.py @@ -1113,7 +1113,7 @@ def testing_case_variable(): "name": "test", "label": "Test Case", "type": "query", - "query": f'label_values(platform_quality_gate_test_case_result{{suite=~"${{suite:regex}}",{PLATFORM_TEST_EXPORT_FILTER}}}, test)', + "query": f'label_values(platform_quality_gate_test_case_result{{suite=~"${{suite:regex}}",test!="__no_test_cases__",{PLATFORM_TEST_EXPORT_FILTER}}}, test)', "current": {"text": "All", "value": "$__all", "selected": True}, "options": [], "hide": 0, @@ -2980,7 +2980,7 @@ def build_jobs_dashboard(): coverage_metric_selector = f'__name__=~".*_quality_gate_coverage_percent",suite=~"{suite_var}",{exported}' workspace_coverage_selector = f'suite=~"{suite_var}",{exported}' smell_selector = f'suite=~"{suite_var}",{exported}' - test_case_selector = f'suite=~"{suite_var}",test=~"{test_var}",{exported}' + test_case_selector = f'suite=~"{suite_var}",test=~"{test_var}",test!="__no_test_cases__",{exported}' suite_universe = " or ".join( f'label_replace(vector(1), "suite", "{suite}", "__name__", ".*")' @@ -3066,11 +3066,11 @@ def build_jobs_dashboard(): return f'({core}) or on(suite) (0 * ({suite_universe}))' problematic_tests_history_core = ( - f'topk(12, sum by (suite, test) (increase(platform_quality_gate_test_case_result{{suite=~"{suite_var}",status="failed",{exported}}}[$__interval])))' + f'topk(12, sum by (suite, test) (increase(platform_quality_gate_test_case_result{{suite=~"{suite_var}",test!="__no_test_cases__",status="failed",{exported}}}[$__interval])))' ) problematic_tests_history = f"({problematic_tests_history_core}) or on() vector(0)" worst_test_per_suite_core = ( - f'topk by (suite) (1, sum by (suite, test) (increase(platform_quality_gate_test_case_result{{suite=~"{suite_var}",status="failed",{exported}}}[30d])))' + f'topk by (suite) (1, sum by (suite, test) (increase(platform_quality_gate_test_case_result{{suite=~"{suite_var}",test!="__no_test_cases__",status="failed",{exported}}}[30d])))' ) worst_test_per_suite = f"({worst_test_per_suite_core}) or on() vector(0)" selected_test_pass_fail = [ diff --git a/services/logging/Jenkinsfile.data-prepper b/services/logging/Jenkinsfile.data-prepper index 8c99d786..2f35f09e 100644 --- a/services/logging/Jenkinsfile.data-prepper +++ b/services/logging/Jenkinsfile.data-prepper @@ -313,6 +313,8 @@ data_prepper_quality_gate_checks_total{suite="${suite}",check="docs_naming",resu data_prepper_quality_gate_checks_total{suite="${suite}",check="gate_glue",result="${gate_glue_check}"} 1 data_prepper_quality_gate_checks_total{suite="${suite}",check="sonarqube",result="${sonarqube_check}"} 1 data_prepper_quality_gate_checks_total{suite="${suite}",check="supply_chain",result="${supply_chain_check}"} 1 +# TYPE platform_quality_gate_test_case_result gauge +platform_quality_gate_test_case_result{suite="${suite}",test="__no_test_cases__",status="skipped"} 1 METRICS ''' } diff --git a/services/monitoring/dashboards/atlas-jobs.json b/services/monitoring/dashboards/atlas-jobs.json index b49d3cb5..4f96283c 100644 --- a/services/monitoring/dashboards/atlas-jobs.json +++ b/services/monitoring/dashboards/atlas-jobs.json @@ -2060,7 +2060,7 @@ }, "targets": [ { - "expr": "(topk(12, sum by (suite, test) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",status=\"failed\",exported_job=\"platform-quality-ci\"}[$__interval])))) or on() vector(0)", + "expr": "(topk(12, sum by (suite, test) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test!=\"__no_test_cases__\",status=\"failed\",exported_job=\"platform-quality-ci\"}[$__interval])))) or on() vector(0)", "refId": "A", "legendFormat": "{{suite}} \u00b7 {{test}}" } @@ -2103,17 +2103,17 @@ "targets": [ { "refId": "A", - "expr": "sum by (suite) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test=~\"${test:regex}\",exported_job=\"platform-quality-ci\",status=\"passed\"}[$__interval])) or on() vector(0)", + "expr": "sum by (suite) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test=~\"${test:regex}\",test!=\"__no_test_cases__\",exported_job=\"platform-quality-ci\",status=\"passed\"}[$__interval])) or on() vector(0)", "legendFormat": "passed \u00b7 {{suite}}" }, { "refId": "B", - "expr": "sum by (suite) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test=~\"${test:regex}\",exported_job=\"platform-quality-ci\",status=\"failed\"}[$__interval])) or on() vector(0)", + "expr": "sum by (suite) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test=~\"${test:regex}\",test!=\"__no_test_cases__\",exported_job=\"platform-quality-ci\",status=\"failed\"}[$__interval])) or on() vector(0)", "legendFormat": "failed \u00b7 {{suite}}" }, { "refId": "C", - "expr": "sum by (suite) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test=~\"${test:regex}\",exported_job=\"platform-quality-ci\",status=\"skipped\"}[$__interval])) or on() vector(0)", + "expr": "sum by (suite) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test=~\"${test:regex}\",test!=\"__no_test_cases__\",exported_job=\"platform-quality-ci\",status=\"skipped\"}[$__interval])) or on() vector(0)", "legendFormat": "skipped \u00b7 {{suite}}" } ], @@ -2153,7 +2153,7 @@ }, "targets": [ { - "expr": "sort_desc((topk by (suite) (1, sum by (suite, test) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",status=\"failed\",exported_job=\"platform-quality-ci\"}[30d])))) or on() vector(0))", + "expr": "sort_desc((topk by (suite) (1, sum by (suite, test) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test!=\"__no_test_cases__\",status=\"failed\",exported_job=\"platform-quality-ci\"}[30d])))) or on() vector(0))", "refId": "A", "legendFormat": "{{suite}} \u00b7 {{test}}", "instant": true @@ -3069,7 +3069,7 @@ "name": "test", "label": "Test Case", "type": "query", - "query": "label_values(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}, test)", + "query": "label_values(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test!=\"__no_test_cases__\",exported_job=\"platform-quality-ci\"}, test)", "current": { "text": "All", "value": "$__all", diff --git a/services/monitoring/grafana-dashboard-jobs.yaml b/services/monitoring/grafana-dashboard-jobs.yaml index a8bbc658..2ed3d7c6 100644 --- a/services/monitoring/grafana-dashboard-jobs.yaml +++ b/services/monitoring/grafana-dashboard-jobs.yaml @@ -2069,7 +2069,7 @@ data: }, "targets": [ { - "expr": "(topk(12, sum by (suite, test) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",status=\"failed\",exported_job=\"platform-quality-ci\"}[$__interval])))) or on() vector(0)", + "expr": "(topk(12, sum by (suite, test) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test!=\"__no_test_cases__\",status=\"failed\",exported_job=\"platform-quality-ci\"}[$__interval])))) or on() vector(0)", "refId": "A", "legendFormat": "{{suite}} \u00b7 {{test}}" } @@ -2112,17 +2112,17 @@ data: "targets": [ { "refId": "A", - "expr": "sum by (suite) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test=~\"${test:regex}\",exported_job=\"platform-quality-ci\",status=\"passed\"}[$__interval])) or on() vector(0)", + "expr": "sum by (suite) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test=~\"${test:regex}\",test!=\"__no_test_cases__\",exported_job=\"platform-quality-ci\",status=\"passed\"}[$__interval])) or on() vector(0)", "legendFormat": "passed \u00b7 {{suite}}" }, { "refId": "B", - "expr": "sum by (suite) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test=~\"${test:regex}\",exported_job=\"platform-quality-ci\",status=\"failed\"}[$__interval])) or on() vector(0)", + "expr": "sum by (suite) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test=~\"${test:regex}\",test!=\"__no_test_cases__\",exported_job=\"platform-quality-ci\",status=\"failed\"}[$__interval])) or on() vector(0)", "legendFormat": "failed \u00b7 {{suite}}" }, { "refId": "C", - "expr": "sum by (suite) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test=~\"${test:regex}\",exported_job=\"platform-quality-ci\",status=\"skipped\"}[$__interval])) or on() vector(0)", + "expr": "sum by (suite) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test=~\"${test:regex}\",test!=\"__no_test_cases__\",exported_job=\"platform-quality-ci\",status=\"skipped\"}[$__interval])) or on() vector(0)", "legendFormat": "skipped \u00b7 {{suite}}" } ], @@ -2162,7 +2162,7 @@ data: }, "targets": [ { - "expr": "sort_desc((topk by (suite) (1, sum by (suite, test) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",status=\"failed\",exported_job=\"platform-quality-ci\"}[30d])))) or on() vector(0))", + "expr": "sort_desc((topk by (suite) (1, sum by (suite, test) (increase(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test!=\"__no_test_cases__\",status=\"failed\",exported_job=\"platform-quality-ci\"}[30d])))) or on() vector(0))", "refId": "A", "legendFormat": "{{suite}} \u00b7 {{test}}", "instant": true @@ -3078,7 +3078,7 @@ data: "name": "test", "label": "Test Case", "type": "query", - "query": "label_values(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}, test)", + "query": "label_values(platform_quality_gate_test_case_result{suite=~\"${suite:regex}\",test!=\"__no_test_cases__\",exported_job=\"platform-quality-ci\"}, test)", "current": { "text": "All", "value": "$__all",