monitoring(testing): memoize gate check health

This commit is contained in:
jenkins 2026-05-19 22:41:02 -03:00
parent a32995b1a1
commit ea2071bbc5
3 changed files with 59 additions and 40 deletions

View File

@ -553,6 +553,9 @@ PLATFORM_TEST_SUITE_NAMES = [
] ]
PLATFORM_TEST_SUCCESS_STATUS = "ok|passed|success" PLATFORM_TEST_SUCCESS_STATUS = "ok|passed|success"
PLATFORM_TEST_NON_FAILURE_STATUS = f"{PLATFORM_TEST_SUCCESS_STATUS}|not_applicable|skipped|na|n/a" PLATFORM_TEST_NON_FAILURE_STATUS = f"{PLATFORM_TEST_SUCCESS_STATUS}|not_applicable|skipped|na|n/a"
PLATFORM_TEST_STANDARD_CHECK_REGEX = (
"tests|coverage|loc|style|docs_naming|gate_glue|sonarqube|supply_chain"
)
PLATFORM_TEST_CI_JOB = "platform-quality-ci" PLATFORM_TEST_CI_JOB = "platform-quality-ci"
PLATFORM_TEST_EXPORT_FILTER = f'exported_job="{PLATFORM_TEST_CI_JOB}"' PLATFORM_TEST_EXPORT_FILTER = f'exported_job="{PLATFORM_TEST_CI_JOB}"'
PLATFORM_TEST_SUITE_VALUE_BY_NAME = { PLATFORM_TEST_SUITE_VALUE_BY_NAME = {
@ -698,6 +701,22 @@ def platform_check_status_expr(
) )
def platform_check_rollup_status_expr(
suite_matcher: str,
*,
branch_matcher: str = 'branch!=""',
check_matcher: str = 'check!=""',
status_matcher: str = 'status!=""',
) -> str:
"""Return memoized hourly check gauges normalized by vmalert."""
return (
"sum by (suite, branch, check, status) ("
f"platform_quality:check_status:present_1h{{{suite_matcher},{branch_matcher},"
f"{check_matcher},{status_matcher}}}"
")"
)
PLATFORM_TEST_SUCCESS_RATE_SUITE_TARGETS = [ PLATFORM_TEST_SUCCESS_RATE_SUITE_TARGETS = [
{ {
"refId": chr(ord("A") + index), "refId": chr(ord("A") + index),
@ -752,25 +771,25 @@ PLATFORM_TEST_CHECK_ROLLUP_MATCHERS = (
f'suite=~"{PLATFORM_TEST_SUITE_CANONICAL_MATCHER}"' f'suite=~"{PLATFORM_TEST_SUITE_CANONICAL_MATCHER}"'
) )
PLATFORM_TEST_PRIMARY_BRANCH_MATCHER = 'branch=~"main|master|origin/main|origin/master"' PLATFORM_TEST_PRIMARY_BRANCH_MATCHER = 'branch=~"main|master|origin/main|origin/master"'
PLATFORM_TEST_CHECK_ROLLUP_SELECTOR = platform_check_status_expr( PLATFORM_TEST_CHECK_ROLLUP_SELECTOR = platform_check_rollup_status_expr(
PLATFORM_TEST_CHECK_ROLLUP_MATCHERS, PLATFORM_TEST_CHECK_ROLLUP_MATCHERS,
branch_matcher=PLATFORM_TEST_PRIMARY_BRANCH_MATCHER, branch_matcher=PLATFORM_TEST_PRIMARY_BRANCH_MATCHER,
window=None, check_matcher=f'check=~"{PLATFORM_TEST_STANDARD_CHECK_REGEX}"',
) )
PLATFORM_TEST_CHECK_ROLLUP_OK_SELECTOR = ( PLATFORM_TEST_CHECK_ROLLUP_OK_SELECTOR = (
platform_check_status_expr( platform_check_rollup_status_expr(
PLATFORM_TEST_CHECK_ROLLUP_MATCHERS, PLATFORM_TEST_CHECK_ROLLUP_MATCHERS,
branch_matcher=PLATFORM_TEST_PRIMARY_BRANCH_MATCHER, branch_matcher=PLATFORM_TEST_PRIMARY_BRANCH_MATCHER,
check_matcher=f'check=~"{PLATFORM_TEST_STANDARD_CHECK_REGEX}"',
status_matcher=f'status=~"{PLATFORM_TEST_NON_FAILURE_STATUS}"', status_matcher=f'status=~"{PLATFORM_TEST_NON_FAILURE_STATUS}"',
window=None,
) )
) )
PLATFORM_TEST_CHECK_ROLLUP_FAILED_SELECTOR = ( PLATFORM_TEST_CHECK_ROLLUP_FAILED_SELECTOR = (
platform_check_status_expr( platform_check_rollup_status_expr(
PLATFORM_TEST_CHECK_ROLLUP_MATCHERS, PLATFORM_TEST_CHECK_ROLLUP_MATCHERS,
branch_matcher=PLATFORM_TEST_PRIMARY_BRANCH_MATCHER, branch_matcher=PLATFORM_TEST_PRIMARY_BRANCH_MATCHER,
check_matcher=f'check=~"{PLATFORM_TEST_STANDARD_CHECK_REGEX}"',
status_matcher=f'status!~"{PLATFORM_TEST_NON_FAILURE_STATUS}"', status_matcher=f'status!~"{PLATFORM_TEST_NON_FAILURE_STATUS}"',
window=None,
) )
) )
PLATFORM_TEST_CHECK_ROLLUP_SEEN_FLAGS = ( PLATFORM_TEST_CHECK_ROLLUP_SEEN_FLAGS = (
@ -3856,12 +3875,11 @@ def build_jobs_dashboard():
check_matcher: str = 'check!=""', check_matcher: str = 'check!=""',
status_matcher: str = 'status!=""', status_matcher: str = 'status!=""',
) -> str: ) -> str:
selector = platform_check_status_expr( selector = platform_check_rollup_status_expr(
f'suite=~"{suite_var}"', f'suite=~"{suite_var}"',
branch_matcher=f'branch!="",branch=~"{branch_var}"', branch_matcher=f'branch!="",branch=~"{branch_var}"',
check_matcher=check_matcher, check_matcher=check_matcher,
status_matcher=status_matcher, status_matcher=status_matcher,
window=None,
) )
return selector return selector
@ -3905,8 +3923,9 @@ def build_jobs_dashboard():
f'or on(suite) ({selected_suite_missing})' f'or on(suite) ({selected_suite_missing})'
) )
non_failure = PLATFORM_TEST_NON_FAILURE_STATUS non_failure = PLATFORM_TEST_NON_FAILURE_STATUS
current_gate_seen_vector = _latest_check_flags() standard_check_matcher = f'check=~"{PLATFORM_TEST_STANDARD_CHECK_REGEX}"'
current_gate_ok_vector = _latest_healthy_check_flags() current_gate_seen_vector = _latest_check_flags(standard_check_matcher)
current_gate_ok_vector = _latest_healthy_check_flags(standard_check_matcher)
current_gate_ok_checks = ( current_gate_ok_checks = (
f"sum by (suite) ({current_gate_ok_vector})" f"sum by (suite) ({current_gate_ok_vector})"
) )

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long