monitoring(testing): dedupe run counters by scrape target
This commit is contained in:
parent
c898e71242
commit
e29299a90d
@ -71,6 +71,19 @@ def latest_suite_value(
|
||||
latest_series = f"topk by (suite) (1, {sample_time})"
|
||||
return f"max by (suite) (({sample}) and ({latest_series}))"
|
||||
|
||||
|
||||
def deduped_counter_increase(selector: str, window: str, step: str = "1m") -> str:
|
||||
"""Increase after collapsing Pushgateway scrape identity labels."""
|
||||
return f"increase((max without(instance, job) ({selector}))[{window}:{step}])"
|
||||
|
||||
|
||||
def platform_runs_increase(label_selector: str, window: str) -> str:
|
||||
"""Return a scrape-deduped increase for platform quality run gauges."""
|
||||
return deduped_counter_increase(
|
||||
f"platform_quality_gate_runs_total{{{label_selector}}}",
|
||||
window,
|
||||
)
|
||||
|
||||
PERCENT_THRESHOLDS = {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
@ -584,22 +597,22 @@ PLATFORM_TEST_OVERVIEW_CATEGORY_REGEX = (
|
||||
)
|
||||
PLATFORM_TEST_SUPPORT_CATEGORY_REGEX = "fixtures|golden|helpers"
|
||||
PLATFORM_TEST_SUCCESS_EVENTS_30D = (
|
||||
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",status=~"{PLATFORM_TEST_SUCCESS_STATUS}",{PLATFORM_TEST_EXPORT_FILTER}}}[30d])) or on() vector(0))'
|
||||
f'(sum({platform_runs_increase(f"suite=~\"{PLATFORM_TEST_SUITE_MATCHER}\",status=~\"{PLATFORM_TEST_SUCCESS_STATUS}\",{PLATFORM_TEST_EXPORT_FILTER}", "30d")}) or on() vector(0))'
|
||||
)
|
||||
PLATFORM_TEST_TOTAL_EVENTS_30D = (
|
||||
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",{PLATFORM_TEST_EXPORT_FILTER}}}[30d])) or on() vector(0))'
|
||||
f'(sum({platform_runs_increase(f"suite=~\"{PLATFORM_TEST_SUITE_MATCHER}\",{PLATFORM_TEST_EXPORT_FILTER}", "30d")}) or on() vector(0))'
|
||||
)
|
||||
PLATFORM_TEST_SUCCESS_EVENTS_7D = (
|
||||
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",status=~"{PLATFORM_TEST_SUCCESS_STATUS}",{PLATFORM_TEST_EXPORT_FILTER}}}[7d])) or on() vector(0))'
|
||||
f'(sum({platform_runs_increase(f"suite=~\"{PLATFORM_TEST_SUITE_MATCHER}\",status=~\"{PLATFORM_TEST_SUCCESS_STATUS}\",{PLATFORM_TEST_EXPORT_FILTER}", "7d")}) or on() vector(0))'
|
||||
)
|
||||
PLATFORM_TEST_TOTAL_EVENTS_7D = (
|
||||
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",{PLATFORM_TEST_EXPORT_FILTER}}}[7d])) or on() vector(0))'
|
||||
f'(sum({platform_runs_increase(f"suite=~\"{PLATFORM_TEST_SUITE_MATCHER}\",{PLATFORM_TEST_EXPORT_FILTER}", "7d")}) or on() vector(0))'
|
||||
)
|
||||
PLATFORM_TEST_SUCCESS_EVENTS_24H = (
|
||||
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",status=~"{PLATFORM_TEST_SUCCESS_STATUS}",{PLATFORM_TEST_EXPORT_FILTER}}}[24h])) or on() vector(0))'
|
||||
f'(sum({platform_runs_increase(f"suite=~\"{PLATFORM_TEST_SUITE_MATCHER}\",status=~\"{PLATFORM_TEST_SUCCESS_STATUS}\",{PLATFORM_TEST_EXPORT_FILTER}", "24h")}) or on() vector(0))'
|
||||
)
|
||||
PLATFORM_TEST_TOTAL_EVENTS_24H = (
|
||||
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",{PLATFORM_TEST_EXPORT_FILTER}}}[24h])) or on() vector(0))'
|
||||
f'(sum({platform_runs_increase(f"suite=~\"{PLATFORM_TEST_SUITE_MATCHER}\",{PLATFORM_TEST_EXPORT_FILTER}", "24h")}) or on() vector(0))'
|
||||
)
|
||||
TEST_SUCCESS_RATE = (
|
||||
f"100 * ({PLATFORM_TEST_SUCCESS_EVENTS_30D}) / clamp_min(({PLATFORM_TEST_TOTAL_EVENTS_30D}), 1)"
|
||||
@ -611,17 +624,17 @@ TEST_SUCCESS_RATE_24H = (
|
||||
f"100 * ({PLATFORM_TEST_SUCCESS_EVENTS_24H}) / clamp_min(({PLATFORM_TEST_TOTAL_EVENTS_24H}), 1)"
|
||||
)
|
||||
TEST_FAILURES_24H_TOTAL = (
|
||||
f'(sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",status!~"{PLATFORM_TEST_SUCCESS_STATUS}",{PLATFORM_TEST_EXPORT_FILTER}}}[24h])) or on() vector(0))'
|
||||
f'(sum({platform_runs_increase(f"suite=~\"{PLATFORM_TEST_SUITE_MATCHER}\",status!~\"{PLATFORM_TEST_SUCCESS_STATUS}\",{PLATFORM_TEST_EXPORT_FILTER}", "24h")}) or on() vector(0))'
|
||||
)
|
||||
PLATFORM_TEST_FAILURES_24H_BY_SUITE = (
|
||||
f'sort_desc(sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",status!~"{PLATFORM_TEST_SUCCESS_STATUS}",{PLATFORM_TEST_EXPORT_FILTER}}}[24h])))'
|
||||
f'sort_desc(sum by (suite) ({platform_runs_increase(f"suite=~\"{PLATFORM_TEST_SUITE_MATCHER}\",status!~\"{PLATFORM_TEST_SUCCESS_STATUS}\",{PLATFORM_TEST_EXPORT_FILTER}", "24h")}))'
|
||||
)
|
||||
PLATFORM_TEST_ACTIVITY_30D = (
|
||||
f'sum by (suite, status) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",{PLATFORM_TEST_EXPORT_FILTER}}}[30d]))'
|
||||
f'sum by (suite, status) ({platform_runs_increase(f"suite=~\"{PLATFORM_TEST_SUITE_MATCHER}\",{PLATFORM_TEST_EXPORT_FILTER}", "30d")})'
|
||||
)
|
||||
PLATFORM_TEST_RUNS_24H_TOTAL = PLATFORM_TEST_TOTAL_EVENTS_24H
|
||||
PLATFORM_TEST_ACTIVE_SUITES_24H = (
|
||||
f'sum((sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_CANONICAL_MATCHER}",{PLATFORM_TEST_EXPORT_FILTER}}}[24h])) > bool 0)) '
|
||||
f'sum((sum by (suite) ({platform_runs_increase(f"suite=~\"{PLATFORM_TEST_SUITE_CANONICAL_MATCHER}\",{PLATFORM_TEST_EXPORT_FILTER}", "24h")}) > bool 0)) '
|
||||
"or on() vector(0)"
|
||||
)
|
||||
PLATFORM_TEST_POINT_WINDOW = "1h"
|
||||
@ -688,20 +701,19 @@ PLATFORM_TEST_SUCCESS_RATE_SUITE_TARGETS = [
|
||||
{
|
||||
"refId": chr(ord("A") + index),
|
||||
"expr": (
|
||||
f'(100 * (sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_VALUE_BY_NAME.get(suite, suite)}",status=~"{PLATFORM_TEST_SUCCESS_STATUS}",{PLATFORM_TEST_EXPORT_FILTER}}}'
|
||||
f'[{PLATFORM_TEST_POINT_WINDOW}]))) / '
|
||||
f'clamp_min((sum(increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_VALUE_BY_NAME.get(suite, suite)}",{PLATFORM_TEST_EXPORT_FILTER}}}[{PLATFORM_TEST_POINT_WINDOW}]))), 1))'
|
||||
f'(100 * (sum({platform_runs_increase(f"suite=~\"{PLATFORM_TEST_SUITE_VALUE_BY_NAME.get(suite, suite)}\",status=~\"{PLATFORM_TEST_SUCCESS_STATUS}\",{PLATFORM_TEST_EXPORT_FILTER}", PLATFORM_TEST_POINT_WINDOW)}))) / '
|
||||
f'clamp_min((sum({platform_runs_increase(f"suite=~\"{PLATFORM_TEST_SUITE_VALUE_BY_NAME.get(suite, suite)}\",{PLATFORM_TEST_EXPORT_FILTER}", PLATFORM_TEST_POINT_WINDOW)})), 1))'
|
||||
),
|
||||
"legendFormat": suite,
|
||||
}
|
||||
for index, suite in enumerate(PLATFORM_TEST_SUITE_NAMES)
|
||||
]
|
||||
PLATFORM_TEST_SUCCESS_RATE_24H_BY_SUITE = (
|
||||
f'sort_desc(100 * (sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",status=~"{PLATFORM_TEST_SUCCESS_STATUS}",{PLATFORM_TEST_EXPORT_FILTER}}}[24h]))) '
|
||||
f'/ clamp_min((sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_MATCHER}",{PLATFORM_TEST_EXPORT_FILTER}}}[24h]))), 1))'
|
||||
f'sort_desc(100 * (sum by (suite) ({platform_runs_increase(f"suite=~\"{PLATFORM_TEST_SUITE_MATCHER}\",status=~\"{PLATFORM_TEST_SUCCESS_STATUS}\",{PLATFORM_TEST_EXPORT_FILTER}", "24h")})) '
|
||||
f'/ clamp_min((sum by (suite) ({platform_runs_increase(f"suite=~\"{PLATFORM_TEST_SUITE_MATCHER}\",{PLATFORM_TEST_EXPORT_FILTER}", "24h")})), 1))'
|
||||
)
|
||||
QUALITY_GATE_SUITE_INDEX_30D = (
|
||||
f'sum by (suite) (increase(platform_quality_gate_runs_total{{suite=~"{PLATFORM_TEST_SUITE_CANONICAL_MATCHER}",{PLATFORM_TEST_EXPORT_FILTER}}}[30d]))'
|
||||
f'sum by (suite) ({platform_runs_increase(f"suite=~\"{PLATFORM_TEST_SUITE_CANONICAL_MATCHER}\",{PLATFORM_TEST_EXPORT_FILTER}", "30d")})'
|
||||
)
|
||||
QUALITY_GATE_COVERAGE_BY_SUITE = (
|
||||
latest_suite_value(
|
||||
@ -1848,10 +1860,9 @@ def build_overview():
|
||||
]
|
||||
targets = []
|
||||
for index, (legend, suite_regex) in enumerate(suites):
|
||||
total = f'sum(increase(platform_quality_gate_runs_total{{suite=~"{suite_regex}"}}[1h]))'
|
||||
total = f'sum({platform_runs_increase(f"suite=~\"{suite_regex}\",{PLATFORM_TEST_EXPORT_FILTER}", "1h")})'
|
||||
passed = (
|
||||
f'sum(increase(platform_quality_gate_runs_total{{suite=~"{suite_regex}",'
|
||||
f'status=~"{PLATFORM_TEST_SUCCESS_STATUS}"}}[1h]))'
|
||||
f'sum({platform_runs_increase(f"suite=~\"{suite_regex}\",status=~\"{PLATFORM_TEST_SUCCESS_STATUS}\",{PLATFORM_TEST_EXPORT_FILTER}", "1h")})'
|
||||
)
|
||||
targets.append(
|
||||
{
|
||||
@ -3870,22 +3881,22 @@ def build_jobs_dashboard():
|
||||
for suite in PLATFORM_TEST_SUITE_NAMES
|
||||
)
|
||||
|
||||
runs_24h = f'(sum(increase(platform_quality_gate_runs_total{{{runs_selector}}}[24h])) or on() vector(0))'
|
||||
runs_30d = f'(sum(increase(platform_quality_gate_runs_total{{{runs_selector}}}[30d])) or on() vector(0))'
|
||||
runs_24h = f'(sum({platform_runs_increase(runs_selector, "24h")}) or on() vector(0))'
|
||||
runs_30d = f'(sum({platform_runs_increase(runs_selector, "30d")}) or on() vector(0))'
|
||||
success_24h = (
|
||||
f'(sum(increase(platform_quality_gate_runs_total{{{runs_success_selector}}}[24h])) or on() vector(0))'
|
||||
f'(sum({platform_runs_increase(runs_success_selector, "24h")}) or on() vector(0))'
|
||||
)
|
||||
success_30d = (
|
||||
f'(sum(increase(platform_quality_gate_runs_total{{{runs_success_selector}}}[30d])) or on() vector(0))'
|
||||
f'(sum({platform_runs_increase(runs_success_selector, "30d")}) or on() vector(0))'
|
||||
)
|
||||
failures_24h = (
|
||||
f'(sum(increase(platform_quality_gate_runs_total{{{runs_failure_selector}}}[24h])) or on() vector(0))'
|
||||
f'(sum({platform_runs_increase(runs_failure_selector, "24h")}) or on() vector(0))'
|
||||
)
|
||||
success_rate_24h = f"100 * ({success_24h}) / clamp_min(({runs_24h}), 1)"
|
||||
success_rate_30d = f"100 * ({success_30d}) / clamp_min(({runs_30d}), 1)"
|
||||
runs_by_suite_24h = f'sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[24h]))'
|
||||
runs_by_suite_24h = f'sum by (suite) ({platform_runs_increase(runs_selector, "24h")})'
|
||||
success_by_suite_24h = (
|
||||
f'sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_success_selector}}}[24h]))'
|
||||
f'sum by (suite) ({platform_runs_increase(runs_success_selector, "24h")})'
|
||||
)
|
||||
success_rate_by_suite_24h = (
|
||||
f'((100 * ({success_by_suite_24h}) / clamp_min(({runs_by_suite_24h}), 1)) '
|
||||
@ -3905,16 +3916,16 @@ def build_jobs_dashboard():
|
||||
f"((100 * ({current_gate_ok_checks}) / clamp_min(({current_gate_seen_checks}), 1)) "
|
||||
f"or on(suite) ({selected_suite_missing}))"
|
||||
)
|
||||
success_history_runs = f'sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[7d]))'
|
||||
success_history_runs = f'sum by (suite) ({platform_runs_increase(runs_selector, "7d")})'
|
||||
success_history_by_suite = (
|
||||
f'(100 * sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_success_selector}}}[7d])) '
|
||||
f'(100 * sum by (suite) ({platform_runs_increase(runs_success_selector, "7d")}) '
|
||||
f'/ ({success_history_runs})) and on(suite) (({success_history_runs}) > 0)'
|
||||
)
|
||||
daily_success_volume = (
|
||||
f'sum(increase(platform_quality_gate_runs_total{{{runs_success_selector}}}[24h])) or on() vector(0)'
|
||||
f'sum({platform_runs_increase(runs_success_selector, "24h")}) or on() vector(0)'
|
||||
)
|
||||
daily_failure_volume = (
|
||||
f'sum(increase(platform_quality_gate_runs_total{{{runs_failure_selector}}}[24h])) or on() vector(0)'
|
||||
f'sum({platform_runs_increase(runs_failure_selector, "24h")}) or on() vector(0)'
|
||||
)
|
||||
coverage_by_suite = (
|
||||
latest_suite_value(
|
||||
@ -3943,7 +3954,7 @@ def build_jobs_dashboard():
|
||||
)
|
||||
)
|
||||
coverage_with_missing = (
|
||||
f"({coverage_by_suite}) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[30d])))) - 1)"
|
||||
f"({coverage_by_suite}) or on(suite) ((0 * (sum by (suite) ({platform_runs_increase(runs_selector, '30d')}))) - 1)"
|
||||
)
|
||||
smell_by_suite = (
|
||||
latest_suite_value(
|
||||
@ -3970,7 +3981,7 @@ def build_jobs_dashboard():
|
||||
)
|
||||
)
|
||||
smell_with_missing = (
|
||||
f"({smell_by_suite}) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[30d])))) - 1)"
|
||||
f"({smell_by_suite}) or on(suite) ((0 * (sum by (suite) ({platform_runs_increase(runs_selector, '30d')}))) - 1)"
|
||||
)
|
||||
loc_limit_compliance_by_suite = (
|
||||
f"(100 * clamp_min(({loc_files_by_suite}) - ({smell_by_suite}), 0) / ({loc_files_by_suite})) "
|
||||
@ -3979,7 +3990,7 @@ def build_jobs_dashboard():
|
||||
loc_limit_compliance_with_missing = (
|
||||
f"({loc_limit_compliance_by_suite}) "
|
||||
f"or on(suite) (100 * (1 - clamp_max(({smell_by_suite}), 1))) "
|
||||
f"or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{{{runs_selector}}}[30d])))) - 1)"
|
||||
f"or on(suite) ((0 * (sum by (suite) ({platform_runs_increase(runs_selector, '30d')}))) - 1)"
|
||||
)
|
||||
loc_limit_compliance_history = (
|
||||
f"(100 * clamp_min(({loc_files_history_by_suite}) - ({smell_history_by_suite}), 0) / ({loc_files_history_by_suite})) "
|
||||
|
||||
@ -255,7 +255,7 @@ def test_jobs_dashboard_separates_current_gate_health_from_reliability():
|
||||
|
||||
rolling_panel = panels_by_title["CI Run Success by Suite (7d rolling)"]
|
||||
assert rolling_panel["type"] == "state-timeline"
|
||||
assert "[7d]" in rolling_panel["targets"][0]["expr"]
|
||||
assert "[7d:1m]" in rolling_panel["targets"][0]["expr"]
|
||||
category_panel = panels_by_title["Test Category Pass Rate History"]
|
||||
assert category_panel["type"] == "state-timeline"
|
||||
assert "category" in category_panel["targets"][0]["expr"]
|
||||
|
||||
@ -2127,7 +2127,7 @@
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "100 * ((sum(increase(platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|pegasus-health|pegasus_health|soteria|titan_iac|titan-iac|typhon|bstein_home|bstein-home|data_prepper|data-prepper\",status=~\"ok|passed|success\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))) / clamp_min(((sum(increase(platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|pegasus-health|pegasus_health|soteria|titan_iac|titan-iac|typhon|bstein_home|bstein-home|data_prepper|data-prepper\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))), 1)",
|
||||
"expr": "100 * ((sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|pegasus-health|pegasus_health|soteria|titan_iac|titan-iac|typhon|bstein_home|bstein-home|data_prepper|data-prepper\",status=~\"ok|passed|success\",exported_job=\"platform-quality-ci\"}))[24h:1m])) or on() vector(0))) / clamp_min(((sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|pegasus-health|pegasus_health|soteria|titan_iac|titan-iac|typhon|bstein_home|bstein-home|data_prepper|data-prepper\",exported_job=\"platform-quality-ci\"}))[24h:1m])) or on() vector(0))), 1)",
|
||||
"refId": "A",
|
||||
"instant": true
|
||||
}
|
||||
@ -2213,7 +2213,7 @@
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(increase(platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|pegasus-health|pegasus_health|soteria|titan_iac|titan-iac|typhon|bstein_home|bstein-home|data_prepper|data-prepper\",status!~\"ok|passed|success\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))",
|
||||
"expr": "(sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|pegasus-health|pegasus_health|soteria|titan_iac|titan-iac|typhon|bstein_home|bstein-home|data_prepper|data-prepper\",status!~\"ok|passed|success\",exported_job=\"platform-quality-ci\"}))[24h:1m])) or on() vector(0))",
|
||||
"refId": "A",
|
||||
"instant": true
|
||||
}
|
||||
@ -2295,7 +2295,7 @@
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum((sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",exported_job=\"platform-quality-ci\"}[24h])) > bool 0)) or on() vector(0)",
|
||||
"expr": "sum((sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",exported_job=\"platform-quality-ci\"}))[24h:1m])) > bool 0)) or on() vector(0)",
|
||||
"refId": "A",
|
||||
"instant": true
|
||||
}
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "100 * ((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[24h])) or on() vector(0))) / clamp_min(((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))), 1)",
|
||||
"expr": "100 * ((sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}))[24h:1m])) or on() vector(0))) / clamp_min(((sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[24h:1m])) or on() vector(0))), 1)",
|
||||
"refId": "A",
|
||||
"instant": true
|
||||
}
|
||||
@ -95,7 +95,7 @@
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "100 * ((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d])) or on() vector(0))) / clamp_min(((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) or on() vector(0))), 1)",
|
||||
"expr": "100 * ((sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}))[30d:1m])) or on() vector(0))) / clamp_min(((sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[30d:1m])) or on() vector(0))), 1)",
|
||||
"refId": "A",
|
||||
"instant": true
|
||||
}
|
||||
@ -170,7 +170,7 @@
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}[24h])) or on() vector(0))",
|
||||
"expr": "(sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}))[24h:1m])) or on() vector(0))",
|
||||
"refId": "A",
|
||||
"instant": true
|
||||
}
|
||||
@ -244,7 +244,7 @@
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))",
|
||||
"expr": "(sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[24h:1m])) or on() vector(0))",
|
||||
"refId": "A",
|
||||
"instant": true
|
||||
}
|
||||
@ -548,7 +548,7 @@
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sort(((100 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[24h]))) / clamp_min((sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[24h]))), 1)) and on(suite) ((sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[24h]))) > 0)) or on(suite) ((((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))) - 1)))",
|
||||
"expr": "sort(((100 * (sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}))[24h:1m]))) / clamp_min((sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[24h:1m]))), 1)) and on(suite) ((sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[24h:1m]))) > 0)) or on(suite) ((((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))) - 1)))",
|
||||
"refId": "A",
|
||||
"legendFormat": "{{suite}}",
|
||||
"instant": true
|
||||
@ -641,7 +641,7 @@
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sort((max by (suite) ((((last_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and on(suite) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and on(suite) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))))) or on(suite) max by (suite) ((((last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and on(suite) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and on(suite) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0))))))) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) - 1))",
|
||||
"expr": "sort((max by (suite) ((((last_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and on(suite) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and on(suite) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))))) or on(suite) max by (suite) ((((last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and on(suite) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and on(suite) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0))))))) or on(suite) ((0 * (sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[30d:1m])))) - 1))",
|
||||
"refId": "A",
|
||||
"legendFormat": "{{suite}}",
|
||||
"instant": true
|
||||
@ -734,7 +734,7 @@
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sort(((100 * clamp_min((max by (suite) ((last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))) - (max by (suite) ((last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))), 0) / (max by (suite) ((last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))))) and on(suite) ((max by (suite) ((last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))) > 0)) or on(suite) (100 * (1 - clamp_max((max by (suite) ((last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))), 1))) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) - 1))",
|
||||
"expr": "sort(((100 * clamp_min((max by (suite) ((last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))) - (max by (suite) ((last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))), 0) / (max by (suite) ((last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))))) and on(suite) ((max by (suite) ((last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))) > 0)) or on(suite) (100 * (1 - clamp_max((max by (suite) ((last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))), 1))) or on(suite) ((0 * (sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[30d:1m])))) - 1))",
|
||||
"refId": "A",
|
||||
"legendFormat": "{{suite}}",
|
||||
"instant": true
|
||||
@ -840,7 +840,7 @@
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(100 * sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[7d])) / (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[7d])))) and on(suite) ((sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[7d]))) > 0)",
|
||||
"expr": "(100 * sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}))[7d:1m])) / (sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[7d:1m])))) and on(suite) ((sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[7d:1m]))) > 0)",
|
||||
"refId": "A",
|
||||
"legendFormat": "{{suite}}"
|
||||
}
|
||||
@ -1109,12 +1109,12 @@
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"expr": "sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[24h])) or on() vector(0)",
|
||||
"expr": "sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}))[24h:1m])) or on() vector(0)",
|
||||
"legendFormat": "Success"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"expr": "sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}[24h])) or on() vector(0)",
|
||||
"expr": "sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}))[24h:1m])) or on() vector(0)",
|
||||
"legendFormat": "Failure"
|
||||
}
|
||||
],
|
||||
|
||||
@ -2136,7 +2136,7 @@ data:
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "100 * ((sum(increase(platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|pegasus-health|pegasus_health|soteria|titan_iac|titan-iac|typhon|bstein_home|bstein-home|data_prepper|data-prepper\",status=~\"ok|passed|success\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))) / clamp_min(((sum(increase(platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|pegasus-health|pegasus_health|soteria|titan_iac|titan-iac|typhon|bstein_home|bstein-home|data_prepper|data-prepper\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))), 1)",
|
||||
"expr": "100 * ((sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|pegasus-health|pegasus_health|soteria|titan_iac|titan-iac|typhon|bstein_home|bstein-home|data_prepper|data-prepper\",status=~\"ok|passed|success\",exported_job=\"platform-quality-ci\"}))[24h:1m])) or on() vector(0))) / clamp_min(((sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|pegasus-health|pegasus_health|soteria|titan_iac|titan-iac|typhon|bstein_home|bstein-home|data_prepper|data-prepper\",exported_job=\"platform-quality-ci\"}))[24h:1m])) or on() vector(0))), 1)",
|
||||
"refId": "A",
|
||||
"instant": true
|
||||
}
|
||||
@ -2222,7 +2222,7 @@ data:
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(increase(platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|pegasus-health|pegasus_health|soteria|titan_iac|titan-iac|typhon|bstein_home|bstein-home|data_prepper|data-prepper\",status!~\"ok|passed|success\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))",
|
||||
"expr": "(sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|pegasus-health|pegasus_health|soteria|titan_iac|titan-iac|typhon|bstein_home|bstein-home|data_prepper|data-prepper\",status!~\"ok|passed|success\",exported_job=\"platform-quality-ci\"}))[24h:1m])) or on() vector(0))",
|
||||
"refId": "A",
|
||||
"instant": true
|
||||
}
|
||||
@ -2304,7 +2304,7 @@ data:
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum((sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",exported_job=\"platform-quality-ci\"}[24h])) > bool 0)) or on() vector(0)",
|
||||
"expr": "sum((sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"ariadne|metis|ananke|atlasbot|lesavka|pegasus|soteria|titan_iac|typhon|bstein_home|data_prepper\",exported_job=\"platform-quality-ci\"}))[24h:1m])) > bool 0)) or on() vector(0)",
|
||||
"refId": "A",
|
||||
"instant": true
|
||||
}
|
||||
|
||||
@ -29,7 +29,7 @@ data:
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "100 * ((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[24h])) or on() vector(0))) / clamp_min(((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))), 1)",
|
||||
"expr": "100 * ((sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}))[24h:1m])) or on() vector(0))) / clamp_min(((sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[24h:1m])) or on() vector(0))), 1)",
|
||||
"refId": "A",
|
||||
"instant": true
|
||||
}
|
||||
@ -104,7 +104,7 @@ data:
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "100 * ((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d])) or on() vector(0))) / clamp_min(((sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) or on() vector(0))), 1)",
|
||||
"expr": "100 * ((sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}))[30d:1m])) or on() vector(0))) / clamp_min(((sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[30d:1m])) or on() vector(0))), 1)",
|
||||
"refId": "A",
|
||||
"instant": true
|
||||
}
|
||||
@ -179,7 +179,7 @@ data:
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}[24h])) or on() vector(0))",
|
||||
"expr": "(sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}))[24h:1m])) or on() vector(0))",
|
||||
"refId": "A",
|
||||
"instant": true
|
||||
}
|
||||
@ -253,7 +253,7 @@ data:
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[24h])) or on() vector(0))",
|
||||
"expr": "(sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[24h:1m])) or on() vector(0))",
|
||||
"refId": "A",
|
||||
"instant": true
|
||||
}
|
||||
@ -557,7 +557,7 @@ data:
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sort(((100 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[24h]))) / clamp_min((sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[24h]))), 1)) and on(suite) ((sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[24h]))) > 0)) or on(suite) ((((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))) - 1)))",
|
||||
"expr": "sort(((100 * (sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}))[24h:1m]))) / clamp_min((sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[24h:1m]))), 1)) and on(suite) ((sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[24h:1m]))) > 0)) or on(suite) ((((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0) or (count by (suite) (max_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) >= bool 0)))) - 1)))",
|
||||
"refId": "A",
|
||||
"legendFormat": "{{suite}}",
|
||||
"instant": true
|
||||
@ -650,7 +650,7 @@ data:
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sort((max by (suite) ((((last_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and on(suite) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and on(suite) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))))) or on(suite) max by (suite) ((((last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and on(suite) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and on(suite) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0))))))) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) - 1))",
|
||||
"expr": "sort((max by (suite) ((((last_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and on(suite) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time(platform_quality_gate_workspace_line_coverage_percent{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and on(suite) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))))) or on(suite) max by (suite) ((((last_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and on(suite) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0)))) and (topk by (suite) (1, ((tlast_over_time({__name__=~\".*_quality_gate_coverage_percent\",suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and on(suite) ((last_over_time(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[30d]) > 0))))))) or on(suite) ((0 * (sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[30d:1m])))) - 1))",
|
||||
"refId": "A",
|
||||
"legendFormat": "{{suite}}",
|
||||
"instant": true
|
||||
@ -743,7 +743,7 @@ data:
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sort(((100 * clamp_min((max by (suite) ((last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))) - (max by (suite) ((last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))), 0) / (max by (suite) ((last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))))) and on(suite) ((max by (suite) ((last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))) > 0)) or on(suite) (100 * (1 - clamp_max((max by (suite) ((last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))), 1))) or on(suite) ((0 * (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))) - 1))",
|
||||
"expr": "sort(((100 * clamp_min((max by (suite) ((last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))) - (max by (suite) ((last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))), 0) / (max by (suite) ((last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])))))) and on(suite) ((max by (suite) ((last_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_files_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))) > 0)) or on(suite) (100 * (1 - clamp_max((max by (suite) ((last_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d])) and (topk by (suite) (1, tlast_over_time(platform_quality_gate_source_lines_over_500_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[30d]))))), 1))) or on(suite) ((0 * (sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[30d:1m])))) - 1))",
|
||||
"refId": "A",
|
||||
"legendFormat": "{{suite}}",
|
||||
"instant": true
|
||||
@ -849,7 +849,7 @@ data:
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(100 * sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[7d])) / (sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[7d])))) and on(suite) ((sum by (suite) (increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}[7d]))) > 0)",
|
||||
"expr": "(100 * sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}))[7d:1m])) / (sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[7d:1m])))) and on(suite) ((sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[7d:1m]))) > 0)",
|
||||
"refId": "A",
|
||||
"legendFormat": "{{suite}}"
|
||||
}
|
||||
@ -1118,12 +1118,12 @@ data:
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"expr": "sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}[24h])) or on() vector(0)",
|
||||
"expr": "sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}))[24h:1m])) or on() vector(0)",
|
||||
"legendFormat": "Success"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"expr": "sum(increase(platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}[24h])) or on() vector(0)",
|
||||
"expr": "sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status!~\"ok|passed|success\"}))[24h:1m])) or on() vector(0)",
|
||||
"legendFormat": "Failure"
|
||||
}
|
||||
],
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user