Skip to content

Alert expression variables

An alert rule’s expression is CEL evaluated against one service’s rollup for the current window. These are the values it can read — the names below match the variables declared and bound by the evaluator.

Nonempty expressions supplied when creating or replacing rules through the API are type-checked against these declared variables. Unknown variables, type mistakes, and non-boolean results are rejected before the rule is saved.

Use CEL’s standard operators and functions, such as &&, ||, !, and service.startsWith("checkout"). Numeric variables are doubles; cross-type numeric comparisons let you compare them with integer literals, as in error_rate > 0.02 && throughput > 10 or p95 > 500.

VariableTypeMeans
error_ratenumberMean of minute-rollup span error proportions over the evaluation window, from 0 to 1; not a request-weighted whole-window error rate.
error_rate_deltanumberRelative change in error rate against the preceding rollup window, as a percentage; zero when the baseline is missing or zero.
health_scorenumberThe detector’s instance-wide composite 0-100 health score. Every service receives the same score; it is not a per-service value.
log_countnumberLog records recorded for the service over the window.
p50numberMean of approximate minute-rollup median span latencies in milliseconds.
p95numberMean of approximate minute-rollup 95th-percentile span latencies in milliseconds; not the whole-window p95. Latency prefers served work, falling back to outbound spans when no served work is available.
p95_deltanumberRelative change in p95 latency against the preceding rollup window, as a percentage; zero when the baseline is missing or zero.
servicestringThe service name being evaluated, as a string. Compare it when one rule needs to behave differently for one service.
throughputnumberTotal span count over the current rollup window, not requests per second. Pair it with an error threshold to avoid firing on very little traffic.
throughput_deltanumberRelative change in span count against the preceding rollup window, as a percentage. Negative when traffic drops; zero when the baseline is missing or zero.
z_scorenumberHow far the service’s current behaviour sits from its own recent baseline, in standard deviations. Use it to catch a service that has changed without committing to an absolute threshold that fits every service.

See Set up alerts for the rule model these sit in, including the pending/firing/resolved lifecycle and webhook delivery.