monitoring(testing): add branch evidence panels
This commit is contained in:
parent
e53adc17b3
commit
d599a162a9
@ -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",
|
||||
|
||||
@ -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(),
|
||||
]
|
||||
},
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user