monitoring(testing): backfill placeholder test-case metrics across sparse suites

This commit is contained in:
jenkins 2026-04-20 09:13:34 -03:00
parent 7437ec5929
commit 57306201cf
4 changed files with 18 additions and 16 deletions

View File

@ -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 = [

View File

@ -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
'''
}

View File

@ -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",

View File

@ -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",