Skip to main content
A condition tells Alertee what the healthy result of your SQL query looks like. The check passes while the condition holds and alerts when it is violated — the same polarity for single-value and grid checks.

Standard conditions

These apply to queries that return a single value.
The condition describes the healthy state. For example, greater_than 10 passes while the value is above 10 and alerts when it drops to 10 or below. To alert when a value goes above a limit, assert the healthy ceiling instead, e.g. less_or_equal 10.

Examples

Escalation thresholds

A single-value check can carry multiple thresholds, each with its own alert level — warn as a metric approaches a limit, go critical when it crosses it, without creating two checks.
  • The primary condition alerts at the check’s Alert Level.
  • Each escalation threshold is another healthy comparison with an explicit level (info, warning, error, critical).
  • Every threshold describes the healthy state. On each run, all of them are evaluated and the worst violated level wins.
  • When a worse threshold is crossed while an incident is already open, the incident escalates: its severity is raised and a fresh alert goes out at the new level (you’re not left assuming it’s still just a warning).
Example — monthly usage with a 100k hard limit:
At 80k the check fails at warning. If usage reaches 100k the open incident escalates to critical and re-alerts. In the app, add levels under Escalation thresholds in the condition step; via the CLI use --extra-threshold "less_than:100000:critical"; via MCP pass thresholds. Grid checks don’t support escalation thresholds.

Custom alert messages

By default the alert/incident text is auto-generated (e.g. “Value 17 is not greater than 1560” or “Extracted value 17 from …”). Set a custom message to replace it with something your responders can act on. It works for any check type — single-value SQL, api_metric, push, grid, http, and heartbeat — and is a property of the check itself, so you can set or change it on its own without touching the condition. The message supports templating, substituted at alert time:
The custom message changes only the alert/incident body — run_check still shows the literal verdict so you can always see the raw comparison. Set it in the app’s Alerts step, via MCP create_check/update_check with custom_message (on update_check it’s settable on its own — no need to re-send the condition; pass an empty string to clear it), or via the CLI with --alert-message on checks create or checks update.

Grid conditions

Grid checks monitor multiple dimensions at once — useful when you want to watch many stores, regions, services, or endpoints in a single check. Your query must return two columns: name (the dimension) and value (the metric).
The comparison you choose describes the healthy state of each cell — exactly like a single-value check — and the check alerts on cells that don’t meet it. Grid cells support the numeric comparisons (greater_than, less_than, greater_or_equal, less_or_equal, equals, not_equals).

Example: every store should have at least 5 orders

Condition: all_cells — each cell’s value greater than or equal 5 This fires if any store has fewer than 5 orders in the last 15 minutes. (Use any_cell instead when only one dimension needs to satisfy the condition — e.g. “at least one replica must be caught up”.)