Given aggregate load-test metrics by route, decide whether the release
can ship. Each route has p95 latency, error rate, cost per successful
turn, and task success delta versus baseline.
Hidden answer: invariant, tests, and Python solution
Invariant: a route can only pass if user experience, reliability,
and cost are all inside budget. Test a clean pass, a latency fail, a
cost fail with quality gain, a missing required route, malformed
metrics, and an unexpected route without a launch budget.
from collections.abc import Mapping
from math import isfinite
def _mapping(value, field):
if not isinstance(value, Mapping):
raise ValueError(f"{field} must be a mapping")
return value
def _required(mapping, key, field):
if key not in mapping:
raise ValueError(f"{field}.{key} is required")
return mapping[key]
def _finite_non_negative(value, field):
if isinstance(value, bool) or not isinstance(value, (int, float)) or not isfinite(value) or value < 0:
raise ValueError(f"{field} must be a finite non-negative number")
return value
def _finite_number(value, field):
if isinstance(value, bool) or not isinstance(value, (int, float)) or not isfinite(value):
raise ValueError(f"{field} must be a finite number")
return value
def _finite_rate(value, field):
value = _finite_non_negative(value, field)
if value > 1:
raise ValueError(f"{field} must be between 0 and 1")
return value
def evaluate_load_gate(routes, budgets):
routes = _mapping(routes, "routes")
budgets = _mapping(budgets, "budgets")
failures = []
for name in budgets:
if name not in routes:
failures.append((name, "missing_metrics", None))
for name, metrics in routes.items():
if name not in budgets:
failures.append((name, "missing_budget", None))
continue
metrics = _mapping(metrics, name)
budget = budgets[name]
budget = _mapping(budget, f"{name}.budget")
p95_budget_ms = _finite_non_negative(_required(budget, "p95_ms", f"{name}.budget"), f"{name}.budget.p95_ms")
error_budget = _finite_rate(_required(budget, "error_rate", f"{name}.budget"), f"{name}.budget.error_rate")
cost_budget = _finite_non_negative(_required(budget, "cost_per_success", f"{name}.budget"), f"{name}.budget.cost_per_success")
p95_ms = _finite_non_negative(_required(metrics, "p95_ms", name), f"{name}.p95_ms")
error_rate = _finite_rate(_required(metrics, "error_rate", name), f"{name}.error_rate")
cost_per_success = _finite_non_negative(_required(metrics, "cost_per_success", name), f"{name}.cost_per_success")
task_success_delta = _finite_number(_required(metrics, "task_success_delta", name), f"{name}.task_success_delta")
if p95_ms > p95_budget_ms:
failures.append((name, "latency", p95_ms))
if error_rate > error_budget:
failures.append((name, "errors", error_rate))
cost_over = cost_per_success > cost_budget
min_gain = _finite_number(budget.get("min_gain_for_cost_overrun", 0.02), f"{name}.budget.min_gain_for_cost_overrun")
quality_gain = task_success_delta >= min_gain
if cost_over and not quality_gain:
failures.append((name, "cost_without_quality_gain", cost_per_success))
return {"ship": not failures, "failures": failures}