monitoring(testing): add branch evidence panels

This commit is contained in:
jenkins 2026-04-21 09:35:43 -03:00
parent e53adc17b3
commit d599a162a9
5 changed files with 773 additions and 0 deletions

View File

@ -209,6 +209,8 @@ def _build_payload(
"# TYPE titan_iac_quality_gate_run_status gauge",
f'titan_iac_quality_gate_run_status{{suite="{suite}",status="ok"}} {1 if status == "ok" else 0}',
f'titan_iac_quality_gate_run_status{{suite="{suite}",status="failed"}} {1 if status == "failed" else 0}',
"# TYPE platform_quality_gate_build_info gauge",
f"platform_quality_gate_build_info{build_labels} 1",
"# TYPE titan_iac_quality_gate_build_info gauge",
f"titan_iac_quality_gate_build_info{build_labels} 1",
"# TYPE platform_quality_gate_workspace_line_coverage_percent gauge",

View File

@ -1138,6 +1138,24 @@ def testing_case_variable():
}
def testing_branch_variable():
return {
"name": "branch",
"label": "Branch",
"type": "query",
"query": f'label_values(platform_quality_gate_build_info{{suite=~"${{suite:regex}}",{PLATFORM_TEST_EXPORT_FILTER}}}, branch)',
"current": {"text": "All", "value": "$__all", "selected": True},
"options": [],
"hide": 0,
"multi": False,
"includeAll": True,
"allValue": ".*",
"refresh": 2,
"sort": 1,
"skipUrlSync": False,
}
def jenkins_base_variable():
return {
"name": "jenkins_base",
@ -3020,6 +3038,7 @@ def build_jobs_dashboard():
panels = []
suite_var = "${suite:regex}"
test_var = "${test:regex}"
branch_var = "${branch:regex}"
success = PLATFORM_TEST_SUCCESS_STATUS
exported = PLATFORM_TEST_EXPORT_FILTER
runs_selector = f'suite=~"{suite_var}",{exported}'
@ -3031,6 +3050,7 @@ def build_jobs_dashboard():
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}",test!="__no_test_cases__",{exported}'
build_info_selector = f'suite=~"{suite_var}",branch=~"{branch_var}",{exported}'
suite_universe = " or ".join(
f'label_replace(vector(1), "suite", "{suite}", "__name__", ".*")'
@ -3138,6 +3158,12 @@ def build_jobs_dashboard():
"legendFormat": "skipped · {{suite}}",
},
]
recent_branch_evidence = (
f'sort_desc(count by (suite, branch) (max_over_time(platform_quality_gate_build_info{{{build_info_selector}}}[30d])))'
)
non_primary_branch_evidence = (
f'sort_desc(count by (suite, branch) (max_over_time(platform_quality_gate_build_info{{{build_info_selector},branch!~"main|master|origin/main|origin/master|unknown"}}[30d])))'
)
missing_tests_by_suite = (
f'(({suite_universe}) unless on(suite) count by (suite) ({{__name__=~".*_quality_gate_tests_total",{exported}}}))'
@ -3891,6 +3917,36 @@ def build_jobs_dashboard():
decimals=0,
)
)
panels.append(
bargauge_panel(
149,
"Recent Branch Evidence by Suite (30d)",
recent_branch_evidence,
{"h": 7, "w": 12, "x": 0, "y": 80},
unit="none",
instant=True,
legend="{{suite}} · {{branch}}",
sort_order="desc",
thresholds=missing_thresholds,
decimals=0,
links=jenkins_suite_links(),
)
)
panels.append(
bargauge_panel(
150,
"Non-Primary Branch Evidence (30d)",
non_primary_branch_evidence,
{"h": 7, "w": 12, "x": 12, "y": 80},
unit="none",
instant=True,
legend="{{suite}} · {{branch}}",
sort_order="desc",
thresholds=failures_thresholds,
decimals=0,
links=jenkins_suite_links(),
)
)
return {
"uid": "atlas-jobs",
@ -3907,6 +3963,7 @@ def build_jobs_dashboard():
"list": [
testing_suite_variable(),
testing_case_variable(),
testing_branch_variable(),
jenkins_base_variable(),
]
},

View File

@ -295,6 +295,8 @@ EOF
if [ "${status}" != "ok" ]; then
gate_glue_check="failed"
fi
metric_branch="$(printf '%s' "${BRANCH_NAME:-${GIT_BRANCH:-unknown}}" | jq -Rsa . | sed -e 's/^"//' -e 's/"$//')"
metric_build_number="$(printf '%s' "${BUILD_NUMBER:-unknown}" | jq -Rsa . | sed -e 's/^"//' -e 's/"$//')"
cat <<METRICS | curl -fsS -X PUT --data-binary @- "${gateway}/metrics/job/platform-quality-ci/suite/${suite}" >/dev/null || \
echo "warning: metrics push failed for suite=${suite}" >&2
# TYPE platform_quality_gate_runs_total counter
@ -309,6 +311,8 @@ data_prepper_quality_gate_tests_total{suite="${suite}",result="skipped"} 0
platform_quality_gate_workspace_line_coverage_percent{suite="${suite}"} 0
# TYPE platform_quality_gate_source_lines_over_500_total gauge
platform_quality_gate_source_lines_over_500_total{suite="${suite}"} 0
# TYPE platform_quality_gate_build_info gauge
platform_quality_gate_build_info{suite="${suite}",branch="${metric_branch}",build_number="${metric_build_number}"} 1
# TYPE data_prepper_quality_gate_checks_total gauge
data_prepper_quality_gate_checks_total{suite="${suite}",check="tests",result="not_applicable"} 1
data_prepper_quality_gate_checks_total{suite="${suite}",check="coverage",result="not_applicable"} 1

View File

@ -3339,6 +3339,342 @@
}
}
]
},
{
"id": 149,
"type": "bargauge",
"title": "Recent Branch Evidence by Suite (30d)",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 80
},
"targets": [
{
"expr": "sort_desc(count by (suite, branch) (max_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}[30d])))",
"refId": "A",
"legendFormat": "{{suite}} \u00b7 {{branch}}",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"unit": "none",
"min": 0,
"max": null,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 1
}
]
},
"decimals": 0
},
"overrides": []
},
"options": {
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
}
},
"links": [
{
"title": "Open Jenkins",
"url": "${jenkins_base}/",
"targetBlank": true
},
{
"title": "ariadne: Job",
"url": "${jenkins_base}/job/ariadne/",
"targetBlank": true
},
{
"title": "ariadne: Last Artifacts",
"url": "${jenkins_base}/job/ariadne/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "metis: Job",
"url": "${jenkins_base}/job/metis/",
"targetBlank": true
},
{
"title": "metis: Last Artifacts",
"url": "${jenkins_base}/job/metis/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "ananke: Job",
"url": "${jenkins_base}/job/ananke/",
"targetBlank": true
},
{
"title": "ananke: Last Artifacts",
"url": "${jenkins_base}/job/ananke/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "atlasbot: Job",
"url": "${jenkins_base}/job/atlasbot/",
"targetBlank": true
},
{
"title": "atlasbot: Last Artifacts",
"url": "${jenkins_base}/job/atlasbot/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "pegasus: Job",
"url": "${jenkins_base}/job/pegasus/",
"targetBlank": true
},
{
"title": "pegasus: Last Artifacts",
"url": "${jenkins_base}/job/pegasus/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "soteria: Job",
"url": "${jenkins_base}/job/Soteria/",
"targetBlank": true
},
{
"title": "soteria: Last Artifacts",
"url": "${jenkins_base}/job/Soteria/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "titan_iac: Job",
"url": "${jenkins_base}/job/titan-iac/",
"targetBlank": true
},
{
"title": "titan_iac: Last Artifacts",
"url": "${jenkins_base}/job/titan-iac/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "bstein_home: Job",
"url": "${jenkins_base}/job/bstein-dev-home/",
"targetBlank": true
},
{
"title": "bstein_home: Last Artifacts",
"url": "${jenkins_base}/job/bstein-dev-home/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "data_prepper: Job",
"url": "${jenkins_base}/job/data-prepper/",
"targetBlank": true
},
{
"title": "data_prepper: Last Artifacts",
"url": "${jenkins_base}/job/data-prepper/lastCompletedBuild/artifact/",
"targetBlank": true
}
],
"transformations": [
{
"id": "sortBy",
"options": {
"fields": [
"Value"
],
"order": "desc"
}
}
]
},
{
"id": 150,
"type": "bargauge",
"title": "Non-Primary Branch Evidence (30d)",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 80
},
"targets": [
{
"expr": "sort_desc(count by (suite, branch) (max_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\",branch!~\"main|master|origin/main|origin/master|unknown\"}[30d])))",
"refId": "A",
"legendFormat": "{{suite}} \u00b7 {{branch}}",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"unit": "none",
"min": 0,
"max": null,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 1
},
{
"color": "orange",
"value": 3
},
{
"color": "red",
"value": 5
}
]
},
"decimals": 0
},
"overrides": []
},
"options": {
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
}
},
"links": [
{
"title": "Open Jenkins",
"url": "${jenkins_base}/",
"targetBlank": true
},
{
"title": "ariadne: Job",
"url": "${jenkins_base}/job/ariadne/",
"targetBlank": true
},
{
"title": "ariadne: Last Artifacts",
"url": "${jenkins_base}/job/ariadne/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "metis: Job",
"url": "${jenkins_base}/job/metis/",
"targetBlank": true
},
{
"title": "metis: Last Artifacts",
"url": "${jenkins_base}/job/metis/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "ananke: Job",
"url": "${jenkins_base}/job/ananke/",
"targetBlank": true
},
{
"title": "ananke: Last Artifacts",
"url": "${jenkins_base}/job/ananke/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "atlasbot: Job",
"url": "${jenkins_base}/job/atlasbot/",
"targetBlank": true
},
{
"title": "atlasbot: Last Artifacts",
"url": "${jenkins_base}/job/atlasbot/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "pegasus: Job",
"url": "${jenkins_base}/job/pegasus/",
"targetBlank": true
},
{
"title": "pegasus: Last Artifacts",
"url": "${jenkins_base}/job/pegasus/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "soteria: Job",
"url": "${jenkins_base}/job/Soteria/",
"targetBlank": true
},
{
"title": "soteria: Last Artifacts",
"url": "${jenkins_base}/job/Soteria/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "titan_iac: Job",
"url": "${jenkins_base}/job/titan-iac/",
"targetBlank": true
},
{
"title": "titan_iac: Last Artifacts",
"url": "${jenkins_base}/job/titan-iac/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "bstein_home: Job",
"url": "${jenkins_base}/job/bstein-dev-home/",
"targetBlank": true
},
{
"title": "bstein_home: Last Artifacts",
"url": "${jenkins_base}/job/bstein-dev-home/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "data_prepper: Job",
"url": "${jenkins_base}/job/data-prepper/",
"targetBlank": true
},
{
"title": "data_prepper: Last Artifacts",
"url": "${jenkins_base}/job/data-prepper/lastCompletedBuild/artifact/",
"targetBlank": true
}
],
"transformations": [
{
"id": "sortBy",
"options": {
"fields": [
"Value"
],
"order": "desc"
}
}
]
}
],
"time": {
@ -3442,6 +3778,25 @@
"sort": 1,
"skipUrlSync": false
},
{
"name": "branch",
"label": "Branch",
"type": "query",
"query": "label_values(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}, branch)",
"current": {
"text": "All",
"value": "$__all",
"selected": true
},
"options": [],
"hide": 0,
"multi": false,
"includeAll": true,
"allValue": ".*",
"refresh": 2,
"sort": 1,
"skipUrlSync": false
},
{
"name": "jenkins_base",
"label": "Jenkins Base URL",

View File

@ -3348,6 +3348,342 @@ data:
}
}
]
},
{
"id": 149,
"type": "bargauge",
"title": "Recent Branch Evidence by Suite (30d)",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 80
},
"targets": [
{
"expr": "sort_desc(count by (suite, branch) (max_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}[30d])))",
"refId": "A",
"legendFormat": "{{suite}} \u00b7 {{branch}}",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"unit": "none",
"min": 0,
"max": null,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 1
}
]
},
"decimals": 0
},
"overrides": []
},
"options": {
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
}
},
"links": [
{
"title": "Open Jenkins",
"url": "${jenkins_base}/",
"targetBlank": true
},
{
"title": "ariadne: Job",
"url": "${jenkins_base}/job/ariadne/",
"targetBlank": true
},
{
"title": "ariadne: Last Artifacts",
"url": "${jenkins_base}/job/ariadne/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "metis: Job",
"url": "${jenkins_base}/job/metis/",
"targetBlank": true
},
{
"title": "metis: Last Artifacts",
"url": "${jenkins_base}/job/metis/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "ananke: Job",
"url": "${jenkins_base}/job/ananke/",
"targetBlank": true
},
{
"title": "ananke: Last Artifacts",
"url": "${jenkins_base}/job/ananke/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "atlasbot: Job",
"url": "${jenkins_base}/job/atlasbot/",
"targetBlank": true
},
{
"title": "atlasbot: Last Artifacts",
"url": "${jenkins_base}/job/atlasbot/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "pegasus: Job",
"url": "${jenkins_base}/job/pegasus/",
"targetBlank": true
},
{
"title": "pegasus: Last Artifacts",
"url": "${jenkins_base}/job/pegasus/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "soteria: Job",
"url": "${jenkins_base}/job/Soteria/",
"targetBlank": true
},
{
"title": "soteria: Last Artifacts",
"url": "${jenkins_base}/job/Soteria/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "titan_iac: Job",
"url": "${jenkins_base}/job/titan-iac/",
"targetBlank": true
},
{
"title": "titan_iac: Last Artifacts",
"url": "${jenkins_base}/job/titan-iac/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "bstein_home: Job",
"url": "${jenkins_base}/job/bstein-dev-home/",
"targetBlank": true
},
{
"title": "bstein_home: Last Artifacts",
"url": "${jenkins_base}/job/bstein-dev-home/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "data_prepper: Job",
"url": "${jenkins_base}/job/data-prepper/",
"targetBlank": true
},
{
"title": "data_prepper: Last Artifacts",
"url": "${jenkins_base}/job/data-prepper/lastCompletedBuild/artifact/",
"targetBlank": true
}
],
"transformations": [
{
"id": "sortBy",
"options": {
"fields": [
"Value"
],
"order": "desc"
}
}
]
},
{
"id": 150,
"type": "bargauge",
"title": "Non-Primary Branch Evidence (30d)",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 80
},
"targets": [
{
"expr": "sort_desc(count by (suite, branch) (max_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\",branch!~\"main|master|origin/main|origin/master|unknown\"}[30d])))",
"refId": "A",
"legendFormat": "{{suite}} \u00b7 {{branch}}",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"unit": "none",
"min": 0,
"max": null,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 1
},
{
"color": "orange",
"value": 3
},
{
"color": "red",
"value": 5
}
]
},
"decimals": 0
},
"overrides": []
},
"options": {
"displayMode": "gradient",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
}
},
"links": [
{
"title": "Open Jenkins",
"url": "${jenkins_base}/",
"targetBlank": true
},
{
"title": "ariadne: Job",
"url": "${jenkins_base}/job/ariadne/",
"targetBlank": true
},
{
"title": "ariadne: Last Artifacts",
"url": "${jenkins_base}/job/ariadne/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "metis: Job",
"url": "${jenkins_base}/job/metis/",
"targetBlank": true
},
{
"title": "metis: Last Artifacts",
"url": "${jenkins_base}/job/metis/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "ananke: Job",
"url": "${jenkins_base}/job/ananke/",
"targetBlank": true
},
{
"title": "ananke: Last Artifacts",
"url": "${jenkins_base}/job/ananke/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "atlasbot: Job",
"url": "${jenkins_base}/job/atlasbot/",
"targetBlank": true
},
{
"title": "atlasbot: Last Artifacts",
"url": "${jenkins_base}/job/atlasbot/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "pegasus: Job",
"url": "${jenkins_base}/job/pegasus/",
"targetBlank": true
},
{
"title": "pegasus: Last Artifacts",
"url": "${jenkins_base}/job/pegasus/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "soteria: Job",
"url": "${jenkins_base}/job/Soteria/",
"targetBlank": true
},
{
"title": "soteria: Last Artifacts",
"url": "${jenkins_base}/job/Soteria/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "titan_iac: Job",
"url": "${jenkins_base}/job/titan-iac/",
"targetBlank": true
},
{
"title": "titan_iac: Last Artifacts",
"url": "${jenkins_base}/job/titan-iac/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "bstein_home: Job",
"url": "${jenkins_base}/job/bstein-dev-home/",
"targetBlank": true
},
{
"title": "bstein_home: Last Artifacts",
"url": "${jenkins_base}/job/bstein-dev-home/lastCompletedBuild/artifact/",
"targetBlank": true
},
{
"title": "data_prepper: Job",
"url": "${jenkins_base}/job/data-prepper/",
"targetBlank": true
},
{
"title": "data_prepper: Last Artifacts",
"url": "${jenkins_base}/job/data-prepper/lastCompletedBuild/artifact/",
"targetBlank": true
}
],
"transformations": [
{
"id": "sortBy",
"options": {
"fields": [
"Value"
],
"order": "desc"
}
}
]
}
],
"time": {
@ -3451,6 +3787,25 @@ data:
"sort": 1,
"skipUrlSync": false
},
{
"name": "branch",
"label": "Branch",
"type": "query",
"query": "label_values(platform_quality_gate_build_info{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}, branch)",
"current": {
"text": "All",
"value": "$__all",
"selected": true
},
"options": [],
"hide": 0,
"multi": false,
"includeAll": true,
"allValue": ".*",
"refresh": 2,
"sort": 1,
"skipUrlSync": false
},
{
"name": "jenkins_base",
"label": "Jenkins Base URL",