monitoring(testing): memoize gate check health
This commit is contained in:
parent
a32995b1a1
commit
ea2071bbc5
@ -553,6 +553,9 @@ PLATFORM_TEST_SUITE_NAMES = [
|
||||
]
|
||||
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_STANDARD_CHECK_REGEX = (
|
||||
"tests|coverage|loc|style|docs_naming|gate_glue|sonarqube|supply_chain"
|
||||
)
|
||||
PLATFORM_TEST_CI_JOB = "platform-quality-ci"
|
||||
PLATFORM_TEST_EXPORT_FILTER = f'exported_job="{PLATFORM_TEST_CI_JOB}"'
|
||||
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 = [
|
||||
{
|
||||
"refId": chr(ord("A") + index),
|
||||
@ -752,25 +771,25 @@ PLATFORM_TEST_CHECK_ROLLUP_MATCHERS = (
|
||||
f'suite=~"{PLATFORM_TEST_SUITE_CANONICAL_MATCHER}"'
|
||||
)
|
||||
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,
|
||||
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_check_status_expr(
|
||||
platform_check_rollup_status_expr(
|
||||
PLATFORM_TEST_CHECK_ROLLUP_MATCHERS,
|
||||
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}"',
|
||||
window=None,
|
||||
)
|
||||
)
|
||||
PLATFORM_TEST_CHECK_ROLLUP_FAILED_SELECTOR = (
|
||||
platform_check_status_expr(
|
||||
platform_check_rollup_status_expr(
|
||||
PLATFORM_TEST_CHECK_ROLLUP_MATCHERS,
|
||||
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}"',
|
||||
window=None,
|
||||
)
|
||||
)
|
||||
PLATFORM_TEST_CHECK_ROLLUP_SEEN_FLAGS = (
|
||||
@ -3856,12 +3875,11 @@ def build_jobs_dashboard():
|
||||
check_matcher: str = 'check!=""',
|
||||
status_matcher: str = 'status!=""',
|
||||
) -> str:
|
||||
selector = platform_check_status_expr(
|
||||
selector = platform_check_rollup_status_expr(
|
||||
f'suite=~"{suite_var}"',
|
||||
branch_matcher=f'branch!="",branch=~"{branch_var}"',
|
||||
check_matcher=check_matcher,
|
||||
status_matcher=status_matcher,
|
||||
window=None,
|
||||
)
|
||||
return selector
|
||||
|
||||
@ -3905,8 +3923,9 @@ def build_jobs_dashboard():
|
||||
f'or on(suite) ({selected_suite_missing})'
|
||||
)
|
||||
non_failure = PLATFORM_TEST_NON_FAILURE_STATUS
|
||||
current_gate_seen_vector = _latest_check_flags()
|
||||
current_gate_ok_vector = _latest_healthy_check_flags()
|
||||
standard_check_matcher = f'check=~"{PLATFORM_TEST_STANDARD_CHECK_REGEX}"'
|
||||
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 = (
|
||||
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
Loading…
x
Reference in New Issue
Block a user