monitoring(testing): fix missing-state queries and add test-case drilldowns
This commit is contained in:
parent
b7f6cbd87c
commit
607d8c21fa
@ -512,6 +512,18 @@ PLATFORM_TEST_SUITE_VALUE_BY_NAME = {
|
||||
"bstein_home": "bstein_home|bstein-home",
|
||||
"data_prepper": "data_prepper|data-prepper",
|
||||
}
|
||||
PLATFORM_TEST_JENKINS_JOB_BY_SUITE = {
|
||||
"ariadne": "ariadne",
|
||||
"metis": "metis",
|
||||
"ananke": "ananke",
|
||||
"atlasbot": "atlasbot",
|
||||
"pegasus": "pegasus",
|
||||
"soteria": "Soteria",
|
||||
"titan_iac": "titan-iac",
|
||||
"bstein_home": "bstein-dev-home",
|
||||
"data_prepper": "data-prepper",
|
||||
}
|
||||
JENKINS_UI_BASE_DEFAULT = "https://ci.bstein.dev"
|
||||
PLATFORM_TEST_SUITE_MATCHER = "|".join(
|
||||
PLATFORM_TEST_SUITE_VALUE_BY_NAME.get(suite, suite) for suite in PLATFORM_TEST_SUITE_NAMES
|
||||
)
|
||||
@ -1126,6 +1138,44 @@ def testing_case_variable():
|
||||
}
|
||||
|
||||
|
||||
def jenkins_base_variable():
|
||||
return {
|
||||
"name": "jenkins_base",
|
||||
"label": "Jenkins Base URL",
|
||||
"type": "textbox",
|
||||
"query": JENKINS_UI_BASE_DEFAULT,
|
||||
"current": {
|
||||
"text": JENKINS_UI_BASE_DEFAULT,
|
||||
"value": JENKINS_UI_BASE_DEFAULT,
|
||||
"selected": True,
|
||||
},
|
||||
"hide": 0,
|
||||
"skipUrlSync": False,
|
||||
}
|
||||
|
||||
|
||||
def jenkins_suite_links(base_var="${jenkins_base}"):
|
||||
links = [{"title": "Open Jenkins", "url": f"{base_var}/", "targetBlank": True}]
|
||||
for suite in PLATFORM_TEST_SUITE_NAMES:
|
||||
job = PLATFORM_TEST_JENKINS_JOB_BY_SUITE.get(suite, suite)
|
||||
encoded_job = urllib.parse.quote(job, safe="")
|
||||
links.append(
|
||||
{
|
||||
"title": f"{suite}: Job",
|
||||
"url": f"{base_var}/job/{encoded_job}/",
|
||||
"targetBlank": True,
|
||||
}
|
||||
)
|
||||
links.append(
|
||||
{
|
||||
"title": f"{suite}: Last Artifacts",
|
||||
"url": f"{base_var}/job/{encoded_job}/lastCompletedBuild/artifact/",
|
||||
"targetBlank": True,
|
||||
}
|
||||
)
|
||||
return links
|
||||
|
||||
|
||||
def bargauge_panel(
|
||||
panel_id,
|
||||
title,
|
||||
@ -3015,10 +3065,14 @@ def build_jobs_dashboard():
|
||||
f'(max by (suite) ({{{coverage_metric_selector}}})) '
|
||||
f'or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{{{workspace_coverage_selector}}}))'
|
||||
)
|
||||
coverage_with_missing = coverage_by_suite
|
||||
coverage_with_missing = (
|
||||
f"({coverage_by_suite}) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[30d])))) - 1)"
|
||||
)
|
||||
coverage_gap = f"clamp_min(95 - ({coverage_by_suite}), 0)"
|
||||
smell_by_suite = f'max by (suite) (platform_quality_gate_source_lines_over_500_total{{{smell_selector}}})'
|
||||
smell_with_missing = smell_by_suite
|
||||
smell_with_missing = (
|
||||
f"({smell_by_suite}) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[30d])))) - 1)"
|
||||
)
|
||||
average_coverage = f"(avg(({coverage_by_suite})) or on() vector(0))"
|
||||
suites_loc_violating = f'(sum((({smell_by_suite}) > bool 0)) or on() vector(0))'
|
||||
|
||||
@ -3097,6 +3151,9 @@ def build_jobs_dashboard():
|
||||
missing_loc_by_suite = (
|
||||
f'(({suite_universe}) unless on(suite) count by (suite) (platform_quality_gate_source_lines_over_500_total{{{exported}}}))'
|
||||
)
|
||||
missing_test_case_by_suite = (
|
||||
f'(({suite_universe}) unless on(suite) count by (suite) (platform_quality_gate_test_case_result{{{exported}}}))'
|
||||
)
|
||||
|
||||
success_thresholds = {
|
||||
"mode": "absolute",
|
||||
@ -3638,6 +3695,7 @@ def build_jobs_dashboard():
|
||||
legend_display="list",
|
||||
legend_placement="bottom",
|
||||
legend_calcs=["lastNotNull", "max", "sum"],
|
||||
links=jenkins_suite_links(),
|
||||
)
|
||||
)
|
||||
panels.append(
|
||||
@ -3651,6 +3709,7 @@ def build_jobs_dashboard():
|
||||
legend_display="list",
|
||||
legend_placement="bottom",
|
||||
legend_calcs=["lastNotNull", "sum"],
|
||||
links=jenkins_suite_links(),
|
||||
)
|
||||
)
|
||||
panels.append(
|
||||
@ -3665,6 +3724,7 @@ def build_jobs_dashboard():
|
||||
sort_order="desc",
|
||||
thresholds=failures_thresholds,
|
||||
limit=9,
|
||||
links=jenkins_suite_links(),
|
||||
)
|
||||
)
|
||||
|
||||
@ -3817,6 +3877,20 @@ def build_jobs_dashboard():
|
||||
thresholds=failures_thresholds,
|
||||
)
|
||||
)
|
||||
panels.append(
|
||||
bargauge_panel(
|
||||
148,
|
||||
"Missing Test-Case Metrics by Suite",
|
||||
missing_test_case_by_suite,
|
||||
{"h": 6, "w": 24, "x": 0, "y": 74},
|
||||
unit="none",
|
||||
instant=True,
|
||||
legend="{{suite}}",
|
||||
sort_order="desc",
|
||||
thresholds=missing_thresholds,
|
||||
decimals=0,
|
||||
)
|
||||
)
|
||||
|
||||
return {
|
||||
"uid": "atlas-jobs",
|
||||
@ -3833,6 +3907,7 @@ def build_jobs_dashboard():
|
||||
"list": [
|
||||
testing_suite_variable(),
|
||||
testing_case_variable(),
|
||||
jenkins_base_variable(),
|
||||
]
|
||||
},
|
||||
}
|
||||
|
||||
@ -2084,7 +2084,104 @@
|
||||
"tooltip": {
|
||||
"mode": "multi"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 146,
|
||||
@ -2135,7 +2232,104 @@
|
||||
"tooltip": {
|
||||
"mode": "multi"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 147,
|
||||
@ -2199,6 +2393,103 @@
|
||||
"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",
|
||||
@ -2233,7 +2524,7 @@
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sort((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})))",
|
||||
"expr": "sort(((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) - 1))",
|
||||
"refId": "A",
|
||||
"legendFormat": "{{suite}}",
|
||||
"instant": true
|
||||
@ -2318,7 +2609,7 @@
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sort_desc(max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))",
|
||||
"expr": "sort_desc((max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) - 1))",
|
||||
"refId": "A",
|
||||
"legendFormat": "{{suite}}",
|
||||
"instant": true
|
||||
@ -2981,6 +3272,73 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 148,
|
||||
"type": "bargauge",
|
||||
"title": "Missing Test-Case Metrics by Suite",
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 74
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sort_desc(((label_replace(vector(1), \"suite\", \"ariadne\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"metis\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"ananke\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"atlasbot\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"pegasus\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"soteria\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"titan_iac\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"bstein_home\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"data_prepper\", \"__name__\", \".*\")) unless on(suite) count by (suite) (platform_quality_gate_test_case_result{exported_job=\"platform-quality-ci\"})))",
|
||||
"refId": "A",
|
||||
"legendFormat": "{{suite}}",
|
||||
"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
|
||||
}
|
||||
},
|
||||
"transformations": [
|
||||
{
|
||||
"id": "sortBy",
|
||||
"options": {
|
||||
"fields": [
|
||||
"Value"
|
||||
],
|
||||
"order": "desc"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"time": {
|
||||
@ -3083,6 +3441,19 @@
|
||||
"refresh": 2,
|
||||
"sort": 1,
|
||||
"skipUrlSync": false
|
||||
},
|
||||
{
|
||||
"name": "jenkins_base",
|
||||
"label": "Jenkins Base URL",
|
||||
"type": "textbox",
|
||||
"query": "https://ci.bstein.dev",
|
||||
"current": {
|
||||
"text": "https://ci.bstein.dev",
|
||||
"value": "https://ci.bstein.dev",
|
||||
"selected": true
|
||||
},
|
||||
"hide": 0,
|
||||
"skipUrlSync": false
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -2093,7 +2093,104 @@ data:
|
||||
"tooltip": {
|
||||
"mode": "multi"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 146,
|
||||
@ -2144,7 +2241,104 @@ data:
|
||||
"tooltip": {
|
||||
"mode": "multi"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 147,
|
||||
@ -2208,6 +2402,103 @@ data:
|
||||
"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",
|
||||
@ -2242,7 +2533,7 @@ data:
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sort((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})))",
|
||||
"expr": "sort(((max by (suite) ({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) or on(suite) (max by (suite) (platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) - 1))",
|
||||
"refId": "A",
|
||||
"legendFormat": "{{suite}}",
|
||||
"instant": true
|
||||
@ -2327,7 +2618,7 @@ data:
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sort_desc(max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))",
|
||||
"expr": "sort_desc((max by (suite) (platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"})) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) - 1))",
|
||||
"refId": "A",
|
||||
"legendFormat": "{{suite}}",
|
||||
"instant": true
|
||||
@ -2990,6 +3281,73 @@ data:
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 148,
|
||||
"type": "bargauge",
|
||||
"title": "Missing Test-Case Metrics by Suite",
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "atlas-vm"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 6,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 74
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sort_desc(((label_replace(vector(1), \"suite\", \"ariadne\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"metis\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"ananke\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"atlasbot\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"pegasus\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"soteria\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"titan_iac\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"bstein_home\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"data_prepper\", \"__name__\", \".*\")) unless on(suite) count by (suite) (platform_quality_gate_test_case_result{exported_job=\"platform-quality-ci\"})))",
|
||||
"refId": "A",
|
||||
"legendFormat": "{{suite}}",
|
||||
"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
|
||||
}
|
||||
},
|
||||
"transformations": [
|
||||
{
|
||||
"id": "sortBy",
|
||||
"options": {
|
||||
"fields": [
|
||||
"Value"
|
||||
],
|
||||
"order": "desc"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"time": {
|
||||
@ -3092,6 +3450,19 @@ data:
|
||||
"refresh": 2,
|
||||
"sort": 1,
|
||||
"skipUrlSync": false
|
||||
},
|
||||
{
|
||||
"name": "jenkins_base",
|
||||
"label": "Jenkins Base URL",
|
||||
"type": "textbox",
|
||||
"query": "https://ci.bstein.dev",
|
||||
"current": {
|
||||
"text": "https://ci.bstein.dev",
|
||||
"value": "https://ci.bstein.dev",
|
||||
"selected": true
|
||||
},
|
||||
"hide": 0,
|
||||
"skipUrlSync": false
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user