monitoring(testing): retain scalar branch labels

This commit is contained in:
jenkins 2026-08-07 20:07:33 -03:00
parent 89802bcb11
commit fc0dde6e88
2 changed files with 78 additions and 5 deletions

View File

@ -164,6 +164,26 @@ def test_quality_rollups_do_not_run_every_minute() -> None:
assert quality["eval_offset"] == "1m"
def test_quality_scalar_rollups_infer_legacy_branch_labels() -> None:
"""Attach build branches to publishers that still omit the label."""
manifest = _documents(
REPO_ROOT / "services/monitoring/vmalert-atlas-availability.yaml"
)[0]
quality = yaml.safe_load(manifest["data"]["platform-quality.yaml"])["groups"][0]
rules = {rule["record"]: rule["expr"] for rule in quality["rules"]}
for record in (
"platform_quality:suite_coverage_percent:latest_1h",
"platform_quality:suite_source_files_total:latest_1h",
"platform_quality:suite_source_lines_over_500_total:latest_1h",
):
expression = rules[record]
assert 'branch=""' in expression
assert "group_left(branch)" in expression
assert "platform_quality_gate_build_info" in expression
assert '"branch", "unknown"' in expression
def test_vmalert_reloads_updated_rule_files() -> None:
"""Make Flux ConfigMap updates take effect without manual pod revision bumps."""
manifests = _documents(

View File

@ -219,25 +219,78 @@ data:
- record: platform_quality:suite_coverage_percent:latest_1h
expr: |
max by (suite, branch) (
platform_quality_gate_workspace_line_coverage_percent{exported_job="platform-quality-ci",suite!=""}
{__name__=~"platform_quality_gate_workspace_line_coverage_percent|.*_quality_gate_coverage_percent",exported_job="platform-quality-ci",suite!="",branch!=""}
)
or on (suite, branch)
max by (suite, branch) (
{__name__=~".*_quality_gate_coverage_percent",exported_job="platform-quality-ci",suite!=""}
(
max by (suite) (
{__name__=~"platform_quality_gate_workspace_line_coverage_percent|.*_quality_gate_coverage_percent",exported_job="platform-quality-ci",suite!="",branch=""}
)
* on (suite) group_left(branch)
max by (suite, branch) (platform_quality_gate_build_info{exported_job="platform-quality-ci",suite!="",branch!=""})
)
or on (suite, branch)
(
label_replace(
max by (suite) (
{__name__=~"platform_quality_gate_workspace_line_coverage_percent|.*_quality_gate_coverage_percent",exported_job="platform-quality-ci",suite!="",branch=""}
),
"branch", "unknown", "__name__", ".*"
)
unless on (suite)
max by (suite) (platform_quality_gate_build_info{exported_job="platform-quality-ci",suite!="",branch!=""})
)
labels:
rollup: hourly
- record: platform_quality:suite_source_files_total:latest_1h
expr: |
max by (suite, branch) (
platform_quality_gate_source_files_total{exported_job="platform-quality-ci",suite!=""}
platform_quality_gate_source_files_total{exported_job="platform-quality-ci",suite!="",branch!=""}
)
or on (suite, branch)
(
max by (suite) (
platform_quality_gate_source_files_total{exported_job="platform-quality-ci",suite!="",branch=""}
)
* on (suite) group_left(branch)
max by (suite, branch) (platform_quality_gate_build_info{exported_job="platform-quality-ci",suite!="",branch!=""})
)
or on (suite, branch)
(
label_replace(
max by (suite) (
platform_quality_gate_source_files_total{exported_job="platform-quality-ci",suite!="",branch=""}
),
"branch", "unknown", "__name__", ".*"
)
unless on (suite)
max by (suite) (platform_quality_gate_build_info{exported_job="platform-quality-ci",suite!="",branch!=""})
)
labels:
rollup: hourly
- record: platform_quality:suite_source_lines_over_500_total:latest_1h
expr: |
max by (suite, branch) (
platform_quality_gate_source_lines_over_500_total{exported_job="platform-quality-ci",suite!=""}
platform_quality_gate_source_lines_over_500_total{exported_job="platform-quality-ci",suite!="",branch!=""}
)
or on (suite, branch)
(
max by (suite) (
platform_quality_gate_source_lines_over_500_total{exported_job="platform-quality-ci",suite!="",branch=""}
)
* on (suite) group_left(branch)
max by (suite, branch) (platform_quality_gate_build_info{exported_job="platform-quality-ci",suite!="",branch!=""})
)
or on (suite, branch)
(
label_replace(
max by (suite) (
platform_quality_gate_source_lines_over_500_total{exported_job="platform-quality-ci",suite!="",branch=""}
),
"branch", "unknown", "__name__", ".*"
)
unless on (suite)
max by (suite) (platform_quality_gate_build_info{exported_job="platform-quality-ci",suite!="",branch!=""})
)
labels:
rollup: hourly