blob: e0b9b6a3d95987442c7327bc163ff5dd1b4a3e30 [file] [log] [blame]
# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Library for defining builder health indicator thresholds.
See //docs/infra/builder_health_indicators.md for more info.
"""
load("@stdlib//internal/graph.star", "graph")
load("@stdlib//internal/luci/common.star", "keys")
load("./nodes.star", "nodes")
load("./structs.star", "structs")
_HEALTH_SPEC = nodes.create_bucket_scoped_node_type("health_spec")
# See https://source.chromium.org/chromium/infra/infra/+/main:go/src/infra/cr_builder_health/src_config.go
# for all configurable thresholds.
_default_specs = {
"Unhealthy": struct(
score = 5,
period_days = 7,
# If any of these thresholds are exceeded, the builder will be deemed
# unhealthy.
# Setting a value of None will ignore that threshold
infra_fail_rate = struct(
average = 0.05,
),
fail_rate = struct(
average = 0.2,
),
build_time = struct(
p50_mins = None,
),
pending_time = struct(
p50_mins = 20,
),
),
"Low Value": struct(
score = 1,
period_days = 90,
# If any of these thresholds are met, the builder will be deemed
# low-value and will be considered for deletion.
# Setting a value of None will ignore that threshold
fail_rate = struct(
average = 0.99,
),
),
}
_blank_unhealthy_thresholds = struct(
infra_fail_rate = struct(
average = None,
),
fail_rate = struct(
average = None,
),
build_time = struct(
p50_mins = None,
),
pending_time = struct(
p50_mins = None,
),
)
_blank_low_value_thresholds = struct(
fail_rate = struct(
average = None,
),
)
DEFAULT = {
"Unhealthy": struct(
score = 5,
period_days = 7,
_default = "_default",
),
"Low Value": struct(
score = 1,
period_days = 90,
_default = "_default",
),
}
# Users define the specs as {problem_name -> problem_spec} for aesthetic reasons
# So all user-exposed functions expect a dictionary.
# We then convert that into a list of [problem_specs] so the object encapsulates
# its own name, for ease of processing
def unhealthy_thresholds(
fail_rate = struct(),
infra_fail_rate = struct(),
build_time = struct(),
pending_time = struct()):
thresholds = {"fail_rate": fail_rate, "infra_fail_rate": infra_fail_rate, "build_time": build_time, "pending_time": pending_time}
fail_if_any_none_val(thresholds)
return structs.evolve(_blank_unhealthy_thresholds, **thresholds)
def low_value_thresholds(
fail_rate = struct()):
thresholds = {"fail_rate": fail_rate}
fail_if_any_none_val(thresholds)
return structs.evolve(_blank_low_value_thresholds, **thresholds)
def fail_if_any_none_val(vals):
for k, v in vals.items():
if v == None:
fail(k + " threshold was None. Thresholds can't be None. Use an empty struct() instead")
def modified_default(modifications):
return _merge_mods(_default_specs, modifications)
def _merge_mods(base, modifications):
spec = dict(base)
for mod_name, mod in modifications.items():
mods_proto = structs.to_proto_properties(mod)
if len(mods_proto) == 0:
fail("Modifications for health spec \"{}\" were empty.".format(mod_name))
if mod_name not in spec:
spec[mod_name] = mod
else:
spec[mod_name] = structs.evolve(spec[mod_name], **mods_proto)
return spec
def _exempted_from_contact(bucket, builder):
return builder in _exempted_from_contact_builders.get(bucket, [])
def register_health_spec(bucket, name, specs, contact_team_email):
if not contact_team_email and not _exempted_from_contact(bucket, name):
fail("Builder " + name + " must have a contact_team_email. All new builders must specify a team email for contact in case the builder stops being healthy or providing value.")
if specs:
spec = struct(
problem_specs = _convert_specs(specs),
contact_team_email = contact_team_email,
)
health_spec_key = _HEALTH_SPEC.add(
bucket,
name,
props = structs.to_proto_properties(spec),
idempotent = True,
)
graph.add_edge(keys.project(), health_spec_key)
def _convert_specs(specs):
"""Users define the specs as {problem_name -> problem_spec} for aesthetic reasons,
So all user-exposed functions expect a dictionary.
We then convert that into a list of [problem_specs] so the object encapsulates its own name, for ease of processing
"""
converted_specs = []
for name, spec in specs.items():
thresholds_spec = structs.to_proto_properties(spec)
thresholds_spec.pop("score")
thresholds_spec.pop("period_days")
converted_specs.append(struct(
name = name,
score = spec.score,
period_days = spec.period_days,
thresholds = thresholds_spec,
))
return converted_specs
def _generate_health_specs(ctx):
specs = {}
for node in graph.children(keys.project(), _HEALTH_SPEC.kind):
bucket = node.key.container.id
builder = node.key.id
specs.setdefault(bucket, {})[builder] = node.props
result = {
"_default_specs": _convert_specs(_default_specs),
"specs": specs,
}
ctx.output["health-specs/health-specs.json"] = json.indent(json.encode(result), indent = " ")
# This dict should NOT be added to. It contains a list of builders that are
# exempted from needing a contact_team_email field.
# It's intended as a stopgap for older builders. All new builders should have a
# contact_team_email field for the good of our code and CI system.
# Builders should be removed from here once their contact is assigned.
_exempted_from_contact_builders = {
"ci": [
"3pp-linux-amd64-packager",
"3pp-mac-amd64-packager",
"ASAN Debug",
"ASAN Release Media",
"ASAN Release",
"ASan Debug (32-bit x86 with V8-ARM)",
"ASan Release (32-bit x86 with V8-ARM)",
"ASan Release Media (32-bit x86 with V8-ARM)",
"Blink Unexpected Pass Finder",
"Cast Linux ARM64",
"Cast Linux Debug",
"Cast Linux",
"Centipede Upload Linux ASan",
"ChromiumOS ASAN Release",
"Comparison Android (reclient) (reproxy cache)",
"Comparison Android (reclient)",
"Comparison Android (reclient)(CQ)",
"Comparison Mac (reclient)",
"Comparison Mac (reclient)(CQ)",
"Comparison Mac arm64 (reclient)",
"Comparison Mac arm64 on arm64 (reclient)",
"Comparison Simple Chrome (reclient)",
"Comparison Simple Chrome (reclient)(CQ)",
"Comparison Windows (8 cores) (reclient)",
"Comparison Windows (reclient)",
"Comparison Windows (reclient)(CQ)",
"Comparison ios (reclient)",
"Comparison ios (reclient)(CQ)",
"Dawn Linux x64 Builder",
"Dawn Linux x64 DEPS Builder",
"Dawn Linux x64 DEPS Release (Intel UHD 630)",
"Dawn Linux x64 DEPS Release (NVIDIA)",
"Dawn Linux x64 Release (Intel UHD 630)",
"Dawn Linux x64 Release (NVIDIA)",
"Dawn Mac x64 Builder",
"Dawn Mac x64 DEPS Builder",
"Dawn Mac x64 DEPS Release (AMD)",
"Dawn Mac x64 DEPS Release (Intel)",
"Dawn Mac x64 Experimental Release (AMD)",
"Dawn Mac x64 Experimental Release (Intel)",
"Dawn Mac x64 Release (AMD)",
"Dawn Mac x64 Release (Intel)",
"Dawn Win10 x64 Builder",
"Dawn Win10 x64 DEPS Builder",
"Dawn Win10 x64 DEPS Release (Intel)",
"Dawn Win10 x64 DEPS Release (NVIDIA)",
"Dawn Win10 x64 Experimental Release (Intel)",
"Dawn Win10 x64 Release (Intel)",
"Dawn Win10 x64 Release (NVIDIA)",
"Dawn Win10 x86 Builder",
"Dawn Win10 x86 DEPS Builder",
"Dawn Win10 x86 DEPS Release (NVIDIA)",
"Dawn Win10 x86 Experimental Release (Intel)",
"Dawn Win10 x86 Release (Intel)",
"Dawn Win10 x86 Release (NVIDIA)",
"GPU FYI Win Builder",
"GPU FYI Win x64 Builder (dbg)",
"GPU Linux Builder (dbg)",
"GPU Mac Builder (dbg)",
"GPU Win x64 Builder (dbg)",
"Leak Detection Linux",
"Libfuzzer Upload Chrome OS ASan",
"Libfuzzer Upload Linux ASan Debug",
"Libfuzzer Upload Linux ASan",
"Libfuzzer Upload Linux MSan",
"Libfuzzer Upload Linux UBSan",
"Libfuzzer Upload Linux V8-ARM64 ASan Debug",
"Libfuzzer Upload Linux V8-ARM64 ASan",
"Libfuzzer Upload Linux32 ASan",
"Libfuzzer Upload Linux32 V8-ARM ASan Debug",
"Libfuzzer Upload Linux32 V8-ARM ASan",
"Libfuzzer Upload Mac ASan",
"Libfuzzer Upload Windows ASan",
"Libfuzzer Upload iOS Catalyst Debug",
"Linux ASan LSan Builder",
"Linux ASan LSan Tests (1)",
"Linux Builder (Wayland)",
"Linux Builder (reclient compare)",
"Linux CFI",
"Linux Chromium OS ASan LSan Builder",
"Linux Chromium OS ASan LSan Tests (1)",
"Linux ChromiumOS MSan Builder",
"Linux ChromiumOS MSan Tests",
"Linux Debug (NVIDIA)",
"Linux FYI Experimental Release (NVIDIA)",
"Linux MSan Builder",
"Linux MSan Tests",
"Linux TSan Builder",
"Linux TSan Tests",
"Linux Tests (Wayland)",
"Linux Viz",
"MSAN Release (chained origins)",
"MSAN Release (no origins)",
"Mac ASAN Release Media",
"Mac ASAN Release",
"Mac ASan 64 Builder",
"Mac ASan 64 Tests (1)",
"Mac Builder (reclient compare)",
"Mac Builder Next",
"Mac Debug (Intel)",
"Mac deterministic (dbg)",
"Mac deterministic",
"Mac12 Tests",
"Mac13 Tests (dbg)",
"Mac13 Tests",
"Network Service Linux",
"Oreo Phone Tester",
"Site Isolation Android",
"TSAN Debug",
"TSAN Release",
"UBSan Release",
"UBSan vptr Release",
"WebKit Linux ASAN",
"WebKit Linux Leak",
"WebKit Linux MSAN",
"WebKit Win10",
"Win 10 Fast Ring",
"Win ASan Release Media",
"Win ASan Release",
"Win Builder (dbg)",
"Win Builder",
"Win x64 Builder (dbg)",
"Win x64 Builder (reclient compare)",
"Win x64 Builder (reclient)",
"Win x64 Builder",
"Win10 FYI x64 Exp Release (NVIDIA)",
"Win10 Tests x64 (dbg)",
"Win10 Tests x64",
"Win11 Tests x64",
"Windows deterministic",
"android-11-x86-fyi-rel",
"android-11-x86-rel",
"android-12-x64-dbg-tests",
"android-12-x64-fyi-rel",
"android-12l-x64-fyi-dbg",
"android-13-x64-fyi-rel",
"android-13-x64-rel",
"android-angle-chromium-arm64-builder",
"android-annotator-rel",
"android-archive-rel",
"android-arm64-archive-rel",
"android-asan",
"android-avd-packager",
"android-build-perf-developer",
"android-chrome-pie-x86-wpt-android-specific",
"android-chrome-pie-x86-wpt-fyi-rel",
"android-code-coverage",
"android-code-coverage-native",
"android-device-flasher",
"android-fieldtrial-rel",
"android-official",
"android-perfetto-rel",
"android-pie-arm64-rel-dev",
"android-pie-x86-fyi-rel",
"android-rust-arm32-rel",
"android-rust-arm64-dbg",
"android-rust-arm64-rel",
"android-sdk-packager",
"android-webview-12-x64-dbg-tests",
"android-webview-13-x64-dbg-tests",
"android-webview-pie-x86-wpt-fyi-rel",
"android-x86-code-coverage",
"build-perf-android",
"build-perf-android-siso",
"build-perf-linux",
"build-perf-linux-siso",
"build-perf-windows",
"build-perf-windows-siso",
"chromeos-amd64-generic-asan-rel",
"chromeos-amd64-generic-cfi-thin-lto-rel",
"chromeos-amd64-generic-dbg",
"chromeos-amd64-generic-lacros-dbg",
"chromeos-amd64-generic-rel (reclient compare)",
"chromeos-amd64-generic-rel (reclient)",
"chromeos-amd64-generic-rel",
"chromeos-arm-generic-dbg",
"chromeos-arm-generic-rel",
"chromeos-arm64-generic-rel",
"chromeos-jacuzzi-rel",
"chromeos-js-code-coverage",
"chromeos-octopus-rel",
"fuchsia-angle-builder",
"fuchsia-code-coverage",
"fuchsia-x64-accessibility-rel",
"ios-angle-builder",
"ios-asan",
"ios-blink-dbg-fyi",
"ios-catalyst",
"ios-device",
"ios-fieldtrial-rel",
"ios-m1-simulator",
"ios-simulator",
"ios-simulator-code-coverage",
"ios-simulator-full-configs",
"ios-simulator-multi-window",
"ios-simulator-noncq",
"ios-webkit-tot",
"ios-wpt-fyi-rel",
"ios16-beta-simulator",
"ios16-sdk-simulator",
"ios17-beta-simulator",
"ios17-sdk-device",
"ios17-sdk-simulator",
"lacros-amd64-generic-binary-size-rel",
"lacros-amd64-generic-rel (reclient)",
"lacros-amd64-generic-rel",
"lacros-amd64-generic-rel-fyi",
"lacros-amd64-generic-rel-skylab",
"lacros-amd64-generic-rel-skylab-fyi",
"lacros-arm-archive-rel",
"lacros-arm-generic-rel",
"lacros-arm-generic-rel-skylab",
"lacros-arm-generic-rel-skylab-fyi",
"lacros-arm64-archive-rel",
"lacros-arm64-generic-rel",
"lacros-arm64-generic-rel-skylab",
"lacros-arm64-generic-rel-skylab-fyi",
"lacros64-archive-rel",
"linux-angle-chromium-builder",
"linux-annotator-rel",
"linux-ash-chromium-generator-rel",
"linux-bfcache-rel",
"linux-blink-animation-use-time-delta",
"linux-blink-heap-verification",
"linux-blink-web-tests-force-accessibility-rel",
"linux-blink-wpt-reset-rel",
"linux-build-perf-developer",
"linux-chromeos-annotator-rel",
"linux-chromeos-archive-rel",
"linux-chromeos-build-perf",
"linux-chromeos-build-perf-siso",
"linux-chromeos-code-coverage",
"linux-chromeos-dbg",
"linux-chromeos-rel",
"linux-code-coverage",
"linux-exp-msan-fyi-rel",
"linux-exp-tsan-fyi-rel",
"linux-extended-tracing-rel",
"linux-fieldtrial-rel",
"linux-fuzz-coverage",
"linux-gcc-rel",
"linux-headless-shell-rel",
"linux-js-code-coverage",
"linux-lacros-archive-rel",
"linux-lacros-asan-lsan-rel",
"linux-lacros-builder-fyi-rel",
"linux-lacros-builder-rel (reclient)",
"linux-lacros-builder-rel",
"linux-lacros-code-coverage",
"linux-lacros-dbg",
"linux-lacros-dbg-fyi",
"linux-lacros-dbg-tests-fyi",
"linux-lacros-tester-fyi-rel",
"linux-lacros-tester-rel",
"linux-lacros-version-skew-fyi",
"linux-local-ssd-rel-dev",
"linux-network-sandbox-rel",
"linux-official",
"linux-perfetto-rel",
"linux-rel-jammy-dev",
"linux-rel-no-external-ip",
"linux-remote-ssd-rel-dev",
"linux-rust-x64-dbg",
"linux-rust-x64-rel",
"linux-ubsan-fyi-rel",
"linux-ubsan-vptr",
"linux-updater-builder-dbg",
"linux-updater-builder-rel",
"linux-updater-tester-dbg",
"linux-updater-tester-rel",
"linux-upload-perfetto",
"linux-v4l2-codec-rel",
"linux-wpt-chromium-rel",
"linux-wpt-content-shell-asan-fyi-rel",
"linux-wpt-content-shell-fyi-rel",
"linux-wpt-content-shell-leak-detection",
"mac-angle-chromium-builder",
"mac-angle-chromium-intel",
"mac-archive-rel",
"mac-arm-rel-dev",
"mac-arm64-archive-rel",
"mac-build-perf",
"mac-build-perf-developer",
"mac-build-perf-siso",
"mac-code-coverage",
"mac-fieldtrial-tester",
"mac-intel-on-arm64-rel",
"mac-lsan-fyi-rel",
"mac-osxbeta-rel",
"mac-perfetto-rel",
"mac-rel-dev",
"mac-rust-x64-dbg",
"mac-ubsan-fyi-rel",
"mac-updater-builder-arm64-dbg",
"mac-updater-builder-arm64-rel",
"mac-updater-builder-asan-dbg",
"mac-updater-builder-dbg",
"mac-updater-builder-rel",
"mac-upload-perfetto",
"mac10.15-updater-tester-dbg",
"mac10.15-updater-tester-rel",
"mac10.15-wpt-content-shell-fyi-rel",
"mac11-arm64-updater-tester-dbg",
"mac11-arm64-updater-tester-rel",
"mac11-arm64-wpt-content-shell-fyi-rel",
"mac11-wpt-content-shell-fyi-rel",
"mac11-x64-updater-tester-dbg",
"mac11-x64-updater-tester-rel",
"mac12-arm64-rel-tests",
"mac12-arm64-updater-tester-rel",
"mac12-arm64-wpt-content-shell-fyi-rel",
"mac12-wpt-content-shell-fyi-rel",
"mac12-x64-updater-tester-asan-dbg",
"mac13-arm64-updater-tester-dbg",
"mac13-arm64-wpt-content-shell-fyi-rel",
"mac13-wpt-content-shell-fyi-rel",
"mac13-x64-updater-tester-rel",
"metadata-exporter",
"rts-model-packager",
"rts-suite-analysis",
"win-angle-chromium-x64-builder",
"win-angle-chromium-x86-builder",
"win-annotator-rel",
"win-archive-rel",
"win-asan",
"win-build-perf-developer",
"win-celab-builder-rel",
"win-fieldtrial-rel",
"win-local-ssd-rel-dev",
"win-network-sandbox-tester",
"win-official",
"win-perfetto-rel",
"win-rel-dev",
"win-rust-x64-dbg",
"win-rust-x64-rel",
"win-updater-builder-dbg",
"win-updater-builder-rel",
"win-upload-perfetto",
"win10-32-on-64-updater-tester-dbg",
"win10-32-on-64-updater-tester-rel",
"win10-angle-chromium-x64-intel",
"win10-angle-chromium-x64-nvidia",
"win10-code-coverage",
"win10-rel-no-external-ip",
"win10-updater-tester-dbg",
"win10-updater-tester-dbg-uac",
"win10-updater-tester-rel",
"win10-updater-tester-rel-uac",
"win10-wpt-content-shell-fyi-rel",
"win11-rel-dev",
"win11-updater-tester-dbg-uac",
"win11-updater-tester-rel",
"win11-wpt-content-shell-fyi-rel",
"win32-archive-rel",
"win32-arm64-rel",
"win32-official",
"win32-updater-builder-dbg",
"win32-updater-builder-rel",
],
"try": [
"3pp-linux-amd64-packager",
"3pp-mac-amd64-packager",
"Crossbench CBB Mac Try",
"android-10-arm64-rel",
"android-11-x86-rel",
"android-12-x64-dbg",
"android-12-x64-rel",
"android-12-x64-rel-compilator",
"android-12-x64-siso-rel",
"android-12-x64-siso-rel-compilator",
"android-12l-x64-dbg",
"android-13-x64-rel",
"android-angle-chromium-try",
"android-arm-compile-dbg",
"android-arm64-all-targets-dbg",
"android-arm64-rel",
"android-arm64-rel-compilator",
"android-asan-compile-dbg",
"android-bfcache-rel",
"android-binary-size",
"android-chrome-pie-x86-wpt-android-specific",
"android-chrome-pie-x86-wpt-fyi-rel",
"android-clang-tidy-rel",
"android-clobber-rel",
"android-code-coverage",
"android-code-coverage-native",
"android-dawn-arm-rel",
"android-dawn-arm64-rel",
"android-deterministic-dbg",
"android-deterministic-rel",
"android-fieldtrial-rel",
"android-official",
"android-oreo-arm64-dbg",
"android-oreo-x86-rel",
"android-perfetto-rel",
"android-pie-arm64-dbg",
"android-pie-x86-rel",
"android-rust-arm32-rel",
"android-rust-arm64-dbg",
"android-rust-arm64-rel",
"android-webview-10-x86-rel-tests",
"android-webview-12-x64-dbg",
"android-webview-13-x64-dbg",
"android-webview-oreo-arm64-dbg",
"android-webview-pie-arm64-dbg",
"android-webview-pie-x86-wpt-fyi-rel",
"android-x64-cast",
"android_arm64_dbg_recipe",
"android_blink_rel",
"android_compile_dbg",
"android_compile_x64_dbg",
"android_compile_x86_dbg",
"android_cronet",
"android_optional_gpu_tests_rel",
"branch-config-verifier",
"builder-config-verifier",
"chromeos-amd64-generic-asan-rel",
"chromeos-amd64-generic-cfi-thin-lto-rel",
"chromeos-amd64-generic-dbg",
"chromeos-amd64-generic-lacros-dbg",
"chromeos-amd64-generic-rel",
"chromeos-amd64-generic-rel-compilator",
"chromeos-amd64-generic-siso-rel",
"chromeos-amd64-generic-siso-rel-compilator",
"chromeos-arm-generic-dbg",
"chromeos-arm-generic-rel",
"chromeos-arm64-generic-rel",
"chromeos-jacuzzi-rel",
"chromeos-js-code-coverage",
"chromeos-js-coverage-rel",
"chromeos-octopus-rel",
"chromium_presubmit",
"dawn-android-arm-deps-rel",
"dawn-android-arm64-deps-rel",
"dawn-linux-x64-deps-rel",
"dawn-mac-x64-deps-rel",
"dawn-try-linux-tsan-rel",
"dawn-try-mac-amd-exp",
"dawn-try-mac-arm64-rel",
"dawn-try-mac-intel-exp",
"dawn-try-win-x64-intel-exp",
"dawn-try-win-x86-intel-exp",
"dawn-try-win10-x64-intel-asan",
"dawn-try-win10-x64-nvidia-asan",
"dawn-try-win10-x86-rel",
"dawn-win10-x64-deps-rel",
"dawn-win10-x86-deps-rel",
"fuchsia-angle-try",
"fuchsia-arm64-cast-receiver-rel",
"fuchsia-binary-size",
"fuchsia-clang-tidy-rel",
"fuchsia-code-coverage",
"fuchsia-compile-x64-dbg",
"fuchsia-deterministic-dbg",
"fuchsia-fyi-arm64-dbg",
"fuchsia-fyi-x64-dbg",
"fuchsia-x64-accessibility-rel",
"fuchsia-x64-cast-receiver-rel",
"fuchsia-x64-cast-receiver-rel-compilator",
"gpu-fyi-cq-android-arm64",
"gpu-fyi-try-android-m-nexus-5x-64",
"gpu-fyi-try-android-nvidia-shield-tv",
"gpu-fyi-try-android-p-pixel-2-32",
"gpu-fyi-try-android-pixel-6-64",
"gpu-fyi-try-android-r-pixel-4-32",
"gpu-fyi-try-chromeos-amd64-generic",
"gpu-fyi-try-chromeos-kevin",
"gpu-fyi-try-chromeos-skylab-kevin",
"gpu-fyi-try-lacros-amd-rel",
"gpu-fyi-try-lacros-intel-rel",
"gpu-fyi-try-linux-amd-rel",
"gpu-fyi-try-linux-intel-exp",
"gpu-fyi-try-linux-intel-rel",
"gpu-fyi-try-linux-nvidia-dbg",
"gpu-fyi-try-linux-nvidia-exp",
"gpu-fyi-try-linux-nvidia-rel",
"gpu-fyi-try-linux-nvidia-tsn",
"gpu-fyi-try-mac-amd-pro-rel",
"gpu-fyi-try-mac-amd-retina-asan",
"gpu-fyi-try-mac-amd-retina-dbg",
"gpu-fyi-try-mac-amd-retina-exp",
"gpu-fyi-try-mac-amd-retina-rel",
"gpu-fyi-try-mac-arm64-apple-m1-exp",
"gpu-fyi-try-mac-arm64-apple-m1-rel",
"gpu-fyi-try-mac-arm64-apple-m2-retina-rel",
"gpu-fyi-try-mac-intel-asan",
"gpu-fyi-try-mac-intel-dbg",
"gpu-fyi-try-mac-intel-exp",
"gpu-fyi-try-mac-intel-rel",
"gpu-fyi-try-mac-nvidia-retina-exp",
"gpu-fyi-try-mac-nvidia-retina-rel",
"gpu-fyi-try-win10-amd-rel-64",
"gpu-fyi-try-win10-intel-exp-64",
"gpu-fyi-try-win10-intel-rel-64",
"gpu-fyi-try-win10-nvidia-dbg-64",
"gpu-fyi-try-win10-nvidia-dx12vk-dbg-64",
"gpu-fyi-try-win10-nvidia-dx12vk-rel-64",
"gpu-fyi-try-win10-nvidia-exp-64",
"gpu-fyi-try-win10-nvidia-rel-32",
"gpu-fyi-try-win10-nvidia-rel-64",
"gpu-try-android-m-nexus-5x-64",
"gpu-try-linux-nvidia-dbg",
"gpu-try-linux-nvidia-rel",
"gpu-try-mac-amd-retina-dbg",
"gpu-try-mac-intel-dbg",
"ios-angle-try-intel",
"ios-asan",
"ios-blink-dbg-fyi",
"ios-catalyst",
"ios-device",
"ios-fieldtrial-rel",
"ios-m1-simulator",
"ios-simulator",
"ios-simulator-code-coverage",
"ios-simulator-compilator",
"ios-simulator-full-configs",
"ios-simulator-multi-window",
"ios-simulator-noncq",
"ios-wpt-fyi-rel",
"ios16-beta-simulator",
"ios16-sdk-simulator",
"ios17-beta-simulator",
"ios17-sdk-simulator",
"lacros-amd64-generic-rel",
"lacros-amd64-generic-rel-skylab",
"lacros-amd64-generic-rel-skylab-fyi",
"lacros-arm-generic-rel",
"lacros-arm64-generic-rel",
"layout_test_leak_detection",
"leak_detection_linux",
"linux-afl-asan-rel",
"linux-angle-chromium-try",
"linux-annotator-rel",
"linux-arm64-castos",
"linux-arm64-rel-cft",
"linux-asan-dbg",
"linux-asan-rel",
"linux-asan-media-rel",
"linux-asan-v8-arm-dbg",
"linux-asan-v8-arm-rel",
"linux-asan-media-v8-arm-rel",
"linux-bfcache-rel",
"linux-blink-heap-verification-try",
"linux-blink-rel",
"linux-blink-web-tests-force-accessibility-rel",
"linux-centipede-asan-rel",
"linux-cfm-rel",
"linux-chromeos-annotator-rel",
"linux-chromeos-asan-rel",
"linux-chromeos-clang-tidy-rel",
"linux-chromeos-code-coverage",
"linux-chromeos-compile-dbg",
"linux-chromeos-dbg",
"linux-chromeos-rel",
"linux-chromeos-rel-compilator",
"linux-clang-tidy-rel",
"linux-code-coverage",
"linux-dawn-rel",
"linux-dcheck-off-rel",
"linux-exp-msan-fyi-rel",
"linux-exp-tsan-fyi-rel",
"linux-extended-tracing-rel",
"linux-fieldtrial-rel",
"linux-gcc-rel",
"linux-headless-shell-rel",
"linux-js-code-coverage",
"linux-js-coverage-rel",
"linux-lacros-asan-lsan-rel",
"linux-lacros-clang-tidy-rel",
"linux-lacros-code-coverage",
"linux-lacros-dbg",
"linux-lacros-fyi-rel",
"linux-lacros-rel",
"linux-lacros-rel-compilator",
"linux-lacros-version-skew-fyi",
"linux-layout-tests-edit-ng",
"linux-libfuzzer-asan-rel",
"linux-mbi-mode-per-render-process-host-rel",
"linux-msan-chained-origins-rel",
"linux-msan-no-origins-rel",
"linux-official",
"linux-perfetto-rel",
"linux-rel",
"linux-rel-cft",
"linux-rel-compilator",
"linux-rust-x64-dbg",
"linux-rust-x64-rel",
"linux-swangle-chromium-try-x64",
"linux-swangle-chromium-try-x64-exp",
"linux-swangle-try-tot-swiftshader-x64",
"linux-swangle-try-x64",
"linux-swangle-try-x64-exp",
"linux-tsan-dbg",
"linux-tsan-rel",
"linux-ubsan-fyi-rel",
"linux-ubsan-rel",
"linux-ubsan-vptr",
"linux-ubsan-vptr-rel",
"linux-updater-try-builder-dbg",
"linux-updater-try-builder-rel",
"linux-v4l2-codec-rel",
"linux-viz-rel",
"linux-wayland-rel",
"linux-wayland-rel-compilator",
"linux-webkit-asan-rel",
"linux-webkit-msan-rel",
"linux-wpt-content-shell-fyi-rel",
"linux-wpt-content-shell-leak-detection",
"linux-x64-castos",
"linux-x64-castos-audio",
"linux-x64-castos-dbg",
"linux_chromium_archive_rel_ng",
"linux_chromium_asan_rel_ng",
"linux_chromium_asan_rel_ng-compilator",
"linux_chromium_asan_siso_rel_ng",
"linux_chromium_asan_siso_rel_ng-compilator",
"linux_chromium_cfi_rel_ng",
"linux_chromium_chromeos_asan_rel_ng",
"linux_chromium_chromeos_msan_rel_ng",
"linux_chromium_clobber_deterministic",
"linux_chromium_clobber_rel_ng",
"linux_chromium_compile_dbg_ng",
"linux_chromium_compile_rel_ng",
"linux_chromium_dbg_ng",
"linux_chromium_msan_rel_ng",
"linux_chromium_tsan_rel_ng",
"linux_chromium_tsan_rel_ng-compilator",
"linux_chromium_tsan_siso_rel_ng",
"linux_chromium_tsan_siso_rel_ng-compilator",
"linux_optional_gpu_tests_rel",
"linux_upload_clang",
"linux_upload_rust",
"mac-angle-chromium-try",
"mac-arm64-clobber-rel",
"mac-arm64-on-arm64-rel",
"mac-asan-media-rel",
"mac-asan-rel",
"mac-builder-next",
"mac-clang-tidy-rel",
"mac-clobber-rel",
"mac-code-coverage",
"mac-dawn-rel",
"mac-fieldtrial-tester",
"mac-intel-on-arm64-rel",
"mac-lsan-fyi-rel",
"mac-official",
"mac-osxbeta-rel",
"mac-perfetto-rel",
"mac-rel",
"mac-rel-cft",
"mac-rel-compilator",
"mac-rust-x64-dbg",
"mac-swangle-chromium-try-x64",
"mac-ubsan-fyi-rel",
"mac-updater-try-builder-dbg",
"mac-updater-try-builder-rel",
"mac10.15-blink-rel",
"mac10.15-wpt-content-shell-fyi-rel",
"mac11-arm64-rel",
"mac11-arm64-wpt-content-shell-fyi-rel",
"mac11-wpt-content-shell-fyi-rel",
"mac11.0-blink-rel",
"mac11.0.arm64-blink-rel",
"mac12-arm64-rel",
"mac12-arm64-wpt-content-shell-fyi-rel",
"mac12-tests",
"mac12-wpt-content-shell-fyi-rel",
"mac12.0-blink-rel",
"mac12.0.arm64-blink-rel",
"mac13-arm64-rel",
"mac13-arm64-rel-compilator",
"mac13-arm64-wpt-content-shell-fyi-rel",
"mac13-blink-rel",
"mac13-tests",
"mac13-wpt-content-shell-fyi-rel",
"mac13.arm64-blink-rel",
"mac13.arm64-skia-alt-blink-rel",
"mac_chromium_10.15_rel_ng",
"mac_chromium_11.0_rel_ng",
"mac_chromium_asan_rel_ng",
"mac_chromium_compile_dbg_ng",
"mac_chromium_compile_rel_ng",
"mac_chromium_dbg_ng",
"mac_optional_gpu_tests_rel",
"mac_upload_clang",
"mac_upload_clang_arm",
"mac_upload_rust",
"mac_upload_rust_arm",
"network_service_linux",
"reclient-config-deployment-verifier",
"requires-testing-checker",
"targets-config-verifier",
"tricium-clang-tidy",
"tricium-metrics-analysis",
"tricium-oilpan-analysis",
"tricium-simple",
"win-angle-chromium-x64-try",
"win-angle-chromium-x86-try",
"win-annotator-rel",
"win-asan",
"win-asan-rel",
"win-asan-media-rel",
"win-celab-try-rel",
"win-clobber-rel",
"win-dawn-rel",
"win-fieldtrial-rel",
"win-libfuzzer-asan-rel",
"win-official",
"win-perfetto-rel",
"win-presubmit",
"win-rel",
"win-rel-cft",
"win-rel-compilator",
"win-rust-x64-dbg",
"win-rust-x64-rel",
"win-swangle-chromium-try-x86",
"win-swangle-try-tot-swiftshader-x64",
"win-swangle-try-tot-swiftshader-x86",
"win-swangle-try-x64",
"win-swangle-try-x86",
"win-updater-try-builder-dbg",
"win-updater-try-builder-rel",
"win10-clang-tidy-rel",
"win10-code-coverage",
"win10-dbg",
"win10-wpt-content-shell-fyi-rel",
"win10.20h2-blink-rel",
"win11-arm64-blink-rel",
"win11-blink-rel",
"win11-wpt-content-shell-fyi-rel",
"win11-x64-fyi-rel",
"win32-clobber-rel",
"win32-official",
"win_chromium_compile_dbg_ng",
"win_chromium_compile_rel_ng",
"win_chromium_x64_rel_ng",
"win_optional_gpu_tests_rel",
"win_upload_clang",
"win_upload_rust",
],
"infra": [
"autosharder",
],
"codesearch": [
"gen-android-try",
"gen-chromiumos-try",
"gen-fuchsia-try",
"gen-ios-try",
"gen-lacros-try",
"gen-linux-try",
"gen-mac-try",
"gen-webview-try",
"gen-win-try",
],
"findit": [
"gofindit-culprit-verification",
"test-single-revision",
],
"flaky-reproducer": [
"runner",
],
"goma": [
"Chromium Linux Goma RBE Staging (dbg)",
"Chromium Linux Goma RBE Staging",
"Chromium Win Goma RBE Staging",
"Linux Builder Goma RBE Canary",
"Win Builder (dbg) Goma RBE Canary",
"Win Builder Goma RBE Canary",
"chromeos-amd64-generic-rel-goma-rbe-canary",
"chromeos-amd64-generic-rel-goma-rbe-staging",
"linux-archive-rel-goma-rbe-ats-canary",
"linux-archive-rel-goma-rbe-canary",
],
"reclient": [
"Comparison Linux (reclient vs reclient remote links)",
"Comparison Linux (reclient)",
"Comparison Linux (reclient)(CQ)",
"Linux Builder (canonical wd) (reclient compare)",
"Linux Builder reclient staging untrusted",
"Linux Builder reclient staging",
"Linux Builder reclient test (casng) untrusted",
"Linux Builder reclient test (casng)",
"Linux Builder reclient test (unified uploads) untrusted",
"Linux Builder reclient test (unified uploads)",
"Linux Builder reclient test untrusted",
"Linux Builder reclient test",
"Mac Builder reclient staging untrusted",
"Mac Builder reclient staging",
"Mac Builder reclient test untrusted",
"Mac Builder reclient test",
"Simple Chrome Builder reclient staging untrusted",
"Simple Chrome Builder reclient staging",
"Simple Chrome Builder reclient test untrusted",
"Simple Chrome Builder reclient test",
"Win x64 Builder reclient staging untrusted",
"Win x64 Builder reclient staging",
"Win x64 Builder reclient test untrusted",
"Win x64 Builder reclient test",
"Win x64 Cross Builder (reclient compare)",
"Windows Cross deterministic",
"ios-simulator reclient staging untrusted",
"ios-simulator reclient staging",
"ios-simulator reclient test untrusted",
"ios-simulator reclient test",
"mac-arm64-rel reclient staging untrusted",
"mac-arm64-rel reclient staging",
"mac-arm64-rel reclient test untrusted",
"mac-arm64-rel reclient test",
],
"reviver": [
"android-coverage-launcher",
"android-device-launcher",
"android-launcher",
"android-x64-launcher",
"coverage-runner",
"fuchsia-coordinator",
"lacros-coordinator",
"linux-launcher",
"mac-launcher",
"runner",
"win-launcher",
],
"webrtc": [
"WebRTC Chromium Android Builder",
"WebRTC Chromium Android Tester",
"WebRTC Chromium Linux Builder",
"WebRTC Chromium Linux Tester",
"WebRTC Chromium Mac Builder",
"WebRTC Chromium Mac Tester",
"WebRTC Chromium Win Builder",
"WebRTC Chromium Win10 Tester",
],
"webrtc.fyi": [
"WebRTC Chromium FYI Android Builder",
"WebRTC Chromium FYI Android Builder (dbg)",
"WebRTC Chromium FYI Android Builder ARM64 (dbg)",
"WebRTC Chromium FYI Android Tests (dbg)",
"WebRTC Chromium FYI Android Tests ARM64 (dbg)",
"WebRTC Chromium FYI Linux Builder",
"WebRTC Chromium FYI Linux Builder (dbg)",
"WebRTC Chromium FYI Linux Tester",
"WebRTC Chromium FYI Mac Builder",
"WebRTC Chromium FYI Mac Builder (dbg)",
"WebRTC Chromium FYI Mac Tester",
"WebRTC Chromium FYI Win Builder",
"WebRTC Chromium FYI Win Builder (dbg)",
"WebRTC Chromium FYI Win10 Tester",
"WebRTC Chromium FYI ios-device",
"WebRTC Chromium FYI ios-simulator",
],
}
health_spec = struct(
DEFAULT = DEFAULT,
unhealthy_thresholds = unhealthy_thresholds,
low_value_thresholds = low_value_thresholds,
modified_default = modified_default,
)
lucicfg.generator(_generate_health_specs)