monitoring(overview): clean up category pass-rate panel
This commit is contained in:
parent
eb39335d59
commit
52bee00432
@ -1325,25 +1325,29 @@ def testing_suite_variable():
|
||||
|
||||
|
||||
def overview_testing_suite_variable():
|
||||
preferred = "lesavka"
|
||||
options = [
|
||||
preferred = "$__all"
|
||||
options = [{"text": "All", "value": "$__all", "selected": True}]
|
||||
options.extend(
|
||||
{
|
||||
"text": suite,
|
||||
"value": suite,
|
||||
"selected": suite == preferred,
|
||||
"selected": False,
|
||||
}
|
||||
for suite in PLATFORM_TEST_SUITE_NAMES
|
||||
]
|
||||
)
|
||||
return {
|
||||
"name": "overview_suite",
|
||||
"label": "Testing Suite",
|
||||
"type": "custom",
|
||||
"query": ",".join(f"{suite} : {suite}" for suite in PLATFORM_TEST_SUITE_NAMES),
|
||||
"current": {"text": preferred, "value": preferred, "selected": True},
|
||||
"current": {"text": "All", "value": preferred, "selected": True},
|
||||
"options": options,
|
||||
"hide": 0,
|
||||
# Grafana variables are dashboard-scoped controls; hide this one because only the
|
||||
# Test Category Pass Rate panel consumes it.
|
||||
"hide": 2,
|
||||
"multi": False,
|
||||
"includeAll": False,
|
||||
"includeAll": True,
|
||||
"allValue": PLATFORM_TEST_SUITE_CANONICAL_MATCHER,
|
||||
"refresh": 1,
|
||||
"sort": 1,
|
||||
"skipUrlSync": False,
|
||||
@ -2093,7 +2097,7 @@ def build_overview():
|
||||
overview_category_pass_rate = (
|
||||
'avg by (category) (platform_quality:test_case_pass_rate:percent_1h{'
|
||||
'suite=~"${overview_suite:regex}",branch!="",branch=~"main|master|origin/main|origin/master",'
|
||||
f'test!="",test!="__no_test_cases__",category!="",category!~"{PLATFORM_TEST_SUPPORT_CATEGORY_REGEX}"'
|
||||
f'test!="",test!="__no_test_cases__",category!="",category!~"uncategorized|{PLATFORM_TEST_SUPPORT_CATEGORY_REGEX}"'
|
||||
"})"
|
||||
)
|
||||
for panel_id, title, draw_expr, runtime_expr, y_pos in [
|
||||
@ -2425,23 +2429,21 @@ def build_overview():
|
||||
)
|
||||
panels.append(apply_bar_timeseries_style(ariadne_volume, stacked=False))
|
||||
panels.append(
|
||||
state_timeline_panel(
|
||||
bargauge_panel(
|
||||
46,
|
||||
"Test Category Pass Rate",
|
||||
overview_category_pass_rate,
|
||||
{"h": 6, "w": 6, "x": 15, "y": 13},
|
||||
unit="percent",
|
||||
min_value=0,
|
||||
max_value=100,
|
||||
instant=True,
|
||||
legend="{{category}}",
|
||||
sort_order="asc",
|
||||
thresholds=test_success_thresholds,
|
||||
decimals=1,
|
||||
links=overview_link("atlas-testing"),
|
||||
description="Pass rate by test category for the selected suite. Blue means clean categories; warmer colors show where attention belongs.",
|
||||
description="Current pass rate by test category for the selected suite set. Blue is clean; warmer colors show categories needing attention.",
|
||||
)
|
||||
)
|
||||
panels[-1]["options"]["legend"] = {"displayMode": "list", "placement": "bottom"}
|
||||
panels[-1]["options"]["mergeValues"] = False
|
||||
panels[-1]["options"]["showValue"] = "auto"
|
||||
for panel_id, title, metric, x_pos, description in [
|
||||
(
|
||||
142,
|
||||
|
||||
@ -72,7 +72,7 @@ def test_overview_uses_readable_quality_power_and_gitops_panels():
|
||||
]
|
||||
assert "atlas-jobs" not in repr(dashboard)
|
||||
assert "Platform Test Success Rate" not in panels_by_title
|
||||
assert panels_by_title["Test Category Pass Rate"]["type"] == "state-timeline"
|
||||
assert panels_by_title["Test Category Pass Rate"]["type"] == "bargauge"
|
||||
assert panels_by_title["Test Category Pass Rate"]["gridPos"] == {"h": 6, "w": 6, "x": 15, "y": 13}
|
||||
assert panels_by_title["Test Category Pass Rate"]["targets"][0]["legendFormat"] == "{{category}}"
|
||||
assert "${overview_suite:regex}" in panels_by_title["Test Category Pass Rate"]["targets"][0]["expr"]
|
||||
@ -131,12 +131,17 @@ def test_overview_uses_readable_quality_power_and_gitops_panels():
|
||||
gitops_expr = panels_by_title["GitOps Health"]["targets"][0]["expr"]
|
||||
assert "Kustomizations Not Suspended" in gitops_expr
|
||||
assert "HelmReleases Not Suspended" in gitops_expr
|
||||
assert panels_by_title["Test Category Pass Rate"]["options"]["legend"]["displayMode"] == "list"
|
||||
assert panels_by_title["Test Category Pass Rate"]["options"]["legend"]["placement"] == "bottom"
|
||||
assert panels_by_title["Test Category Pass Rate"]["options"]["mergeValues"] is False
|
||||
assert panels_by_title["Test Category Pass Rate"]["options"]["showValue"] == "auto"
|
||||
assert "rowHeight" not in panels_by_title["Test Category Pass Rate"]["options"]
|
||||
assert any(variable["name"] == "overview_suite" for variable in dashboard["templating"]["list"])
|
||||
assert panels_by_title["Test Category Pass Rate"]["type"] == "bargauge"
|
||||
assert panels_by_title["Test Category Pass Rate"]["options"]["orientation"] == "horizontal"
|
||||
assert panels_by_title["Test Category Pass Rate"]["targets"][0]["instant"] is True
|
||||
assert panels_by_title["Test Category Pass Rate"]["targets"][0]["legendFormat"] == "{{category}}"
|
||||
assert panels_by_title["Test Category Pass Rate"]["transformations"][0]["id"] == "sortBy"
|
||||
assert panels_by_title["Test Category Pass Rate"]["transformations"][0]["options"]["order"] == "asc"
|
||||
overview_suite = next(variable for variable in dashboard["templating"]["list"] if variable["name"] == "overview_suite")
|
||||
assert overview_suite["current"] == {"text": "All", "value": "$__all", "selected": True}
|
||||
assert overview_suite["includeAll"] is True
|
||||
assert overview_suite["allValue"] == mod.PLATFORM_TEST_SUITE_CANONICAL_MATCHER
|
||||
assert overview_suite["hide"] == 2
|
||||
|
||||
pvc_backup_expr = panels_by_title["PVC Backup Health / Age"]["targets"][0]["expr"]
|
||||
assert "backup-telemetry-missing" in pvc_backup_expr
|
||||
|
||||
@ -2794,9 +2794,8 @@
|
||||
},
|
||||
{
|
||||
"id": 46,
|
||||
"type": "state-timeline",
|
||||
"type": "bargauge",
|
||||
"title": "Test Category Pass Rate",
|
||||
"description": "Pass rate by test category for the selected suite. Blue means clean categories; warmer colors show where attention belongs.",
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "atlas-vm"
|
||||
@ -2809,9 +2808,10 @@
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "avg by (category) (platform_quality:test_case_pass_rate:percent_1h{suite=~\"${overview_suite:regex}\",branch!=\"\",branch=~\"main|master|origin/main|origin/master\",test!=\"\",test!=\"__no_test_cases__\",category!=\"\",category!~\"fixtures|golden|helpers\"})",
|
||||
"expr": "sort(avg by (category) (platform_quality:test_case_pass_rate:percent_1h{suite=~\"${overview_suite:regex}\",branch!=\"\",branch=~\"main|master|origin/main|origin/master\",test!=\"\",test!=\"__no_test_cases__\",category!=\"\",category!~\"uncategorized|fixtures|golden|helpers\"}))",
|
||||
"refId": "A",
|
||||
"legendFormat": "{{category}}"
|
||||
"legendFormat": "{{category}}",
|
||||
"instant": true
|
||||
}
|
||||
],
|
||||
"fieldConfig": {
|
||||
@ -2820,6 +2820,8 @@
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"unit": "percent",
|
||||
"min": 0,
|
||||
"max": 100,
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
@ -2845,26 +2847,19 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"custom": {
|
||||
"fillOpacity": 70,
|
||||
"lineWidth": 0,
|
||||
"spanNulls": true
|
||||
},
|
||||
"min": 0,
|
||||
"max": 100
|
||||
"decimals": 1
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"options": {
|
||||
"mergeValues": false,
|
||||
"showValue": "auto",
|
||||
"legend": {
|
||||
"displayMode": "list",
|
||||
"placement": "bottom"
|
||||
},
|
||||
"tooltip": {
|
||||
"mode": "single",
|
||||
"sort": "none"
|
||||
"displayMode": "basic",
|
||||
"orientation": "horizontal",
|
||||
"reduceOptions": {
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
}
|
||||
},
|
||||
"links": [
|
||||
@ -2873,6 +2868,18 @@
|
||||
"url": "/d/atlas-testing",
|
||||
"targetBlank": true
|
||||
}
|
||||
],
|
||||
"description": "Current pass rate by test category for the selected suite set. Blue is clean; warmer colors show categories needing attention.",
|
||||
"transformations": [
|
||||
{
|
||||
"id": "sortBy",
|
||||
"options": {
|
||||
"fields": [
|
||||
"Value"
|
||||
],
|
||||
"order": "asc"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -4490,11 +4497,16 @@
|
||||
"type": "custom",
|
||||
"query": "ariadne : ariadne,metis : metis,ananke : ananke,atlasbot : atlasbot,lesavka : lesavka,pegasus : pegasus,soteria : soteria,titan_iac : titan_iac,typhon : typhon,bstein_home : bstein_home,data_prepper : data_prepper",
|
||||
"current": {
|
||||
"text": "lesavka",
|
||||
"value": "lesavka",
|
||||
"text": "All",
|
||||
"value": "$__all",
|
||||
"selected": true
|
||||
},
|
||||
"options": [
|
||||
{
|
||||
"text": "All",
|
||||
"value": "$__all",
|
||||
"selected": true
|
||||
},
|
||||
{
|
||||
"text": "ariadne",
|
||||
"value": "ariadne",
|
||||
@ -4518,7 +4530,7 @@
|
||||
{
|
||||
"text": "lesavka",
|
||||
"value": "lesavka",
|
||||
"selected": true
|
||||
"selected": false
|
||||
},
|
||||
{
|
||||
"text": "pegasus",
|
||||
@ -4551,9 +4563,10 @@
|
||||
"selected": false
|
||||
}
|
||||
],
|
||||
"hide": 0,
|
||||
"hide": 2,
|
||||
"multi": false,
|
||||
"includeAll": false,
|
||||
"includeAll": true,
|
||||
"allValue": "ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper",
|
||||
"refresh": 1,
|
||||
"sort": 1,
|
||||
"skipUrlSync": false
|
||||
|
||||
@ -2803,9 +2803,8 @@ data:
|
||||
},
|
||||
{
|
||||
"id": 46,
|
||||
"type": "state-timeline",
|
||||
"type": "bargauge",
|
||||
"title": "Test Category Pass Rate",
|
||||
"description": "Pass rate by test category for the selected suite. Blue means clean categories; warmer colors show where attention belongs.",
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "atlas-vm"
|
||||
@ -2818,9 +2817,10 @@ data:
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "avg by (category) (platform_quality:test_case_pass_rate:percent_1h{suite=~\"${overview_suite:regex}\",branch!=\"\",branch=~\"main|master|origin/main|origin/master\",test!=\"\",test!=\"__no_test_cases__\",category!=\"\",category!~\"fixtures|golden|helpers\"})",
|
||||
"expr": "sort(avg by (category) (platform_quality:test_case_pass_rate:percent_1h{suite=~\"${overview_suite:regex}\",branch!=\"\",branch=~\"main|master|origin/main|origin/master\",test!=\"\",test!=\"__no_test_cases__\",category!=\"\",category!~\"uncategorized|fixtures|golden|helpers\"}))",
|
||||
"refId": "A",
|
||||
"legendFormat": "{{category}}"
|
||||
"legendFormat": "{{category}}",
|
||||
"instant": true
|
||||
}
|
||||
],
|
||||
"fieldConfig": {
|
||||
@ -2829,6 +2829,8 @@ data:
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"unit": "percent",
|
||||
"min": 0,
|
||||
"max": 100,
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
@ -2854,26 +2856,19 @@ data:
|
||||
}
|
||||
]
|
||||
},
|
||||
"custom": {
|
||||
"fillOpacity": 70,
|
||||
"lineWidth": 0,
|
||||
"spanNulls": true
|
||||
},
|
||||
"min": 0,
|
||||
"max": 100
|
||||
"decimals": 1
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"options": {
|
||||
"mergeValues": false,
|
||||
"showValue": "auto",
|
||||
"legend": {
|
||||
"displayMode": "list",
|
||||
"placement": "bottom"
|
||||
},
|
||||
"tooltip": {
|
||||
"mode": "single",
|
||||
"sort": "none"
|
||||
"displayMode": "basic",
|
||||
"orientation": "horizontal",
|
||||
"reduceOptions": {
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
}
|
||||
},
|
||||
"links": [
|
||||
@ -2882,6 +2877,18 @@ data:
|
||||
"url": "/d/atlas-testing",
|
||||
"targetBlank": true
|
||||
}
|
||||
],
|
||||
"description": "Current pass rate by test category for the selected suite set. Blue is clean; warmer colors show categories needing attention.",
|
||||
"transformations": [
|
||||
{
|
||||
"id": "sortBy",
|
||||
"options": {
|
||||
"fields": [
|
||||
"Value"
|
||||
],
|
||||
"order": "asc"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -4499,11 +4506,16 @@ data:
|
||||
"type": "custom",
|
||||
"query": "ariadne : ariadne,metis : metis,ananke : ananke,atlasbot : atlasbot,lesavka : lesavka,pegasus : pegasus,soteria : soteria,titan_iac : titan_iac,typhon : typhon,bstein_home : bstein_home,data_prepper : data_prepper",
|
||||
"current": {
|
||||
"text": "lesavka",
|
||||
"value": "lesavka",
|
||||
"text": "All",
|
||||
"value": "$__all",
|
||||
"selected": true
|
||||
},
|
||||
"options": [
|
||||
{
|
||||
"text": "All",
|
||||
"value": "$__all",
|
||||
"selected": true
|
||||
},
|
||||
{
|
||||
"text": "ariadne",
|
||||
"value": "ariadne",
|
||||
@ -4527,7 +4539,7 @@ data:
|
||||
{
|
||||
"text": "lesavka",
|
||||
"value": "lesavka",
|
||||
"selected": true
|
||||
"selected": false
|
||||
},
|
||||
{
|
||||
"text": "pegasus",
|
||||
@ -4560,9 +4572,10 @@ data:
|
||||
"selected": false
|
||||
}
|
||||
],
|
||||
"hide": 0,
|
||||
"hide": 2,
|
||||
"multi": false,
|
||||
"includeAll": false,
|
||||
"includeAll": true,
|
||||
"allValue": "ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper",
|
||||
"refresh": 1,
|
||||
"sort": 1,
|
||||
"skipUrlSync": false
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user