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_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
Loading…
x
Reference in New Issue
Block a user