Signals
Signals are scheduled, threshold-aware queries that compile through the same semantic execution layer as everything else in Colrows. They give you alerts you can trust - grounded in governed metrics, not stitched together with cron jobs and webhook handlers.
What a Signal is
A Signal is a saved query plus a schedule, optional thresholds, and a delivery channel. When the schedule fires, Colrows compiles the query through Consensus, evaluates the threshold against the result, and routes a structured payload to your channel of choice.
Because Signals run through the compiler, they inherit every Colrows guarantee: governed metrics, persona-scoped access, point-in-time reproducibility, and an audit trail per invocation.
General settings
- Name & owner - every Signal has a single owner. Owners receive operational notifications (compilation failure, schedule skew).
- Persona - Signals run as a persona, not as the user who created them. This is how you keep schedule-triggered jobs reproducible after a teammate leaves.
- Source - a saved query, a metric, or a natural-language question.
- Tags - used for routing and dashboards.
Stopclock - debouncing & back-off
Stopclock is the configurable circuit breaker for Signals. It prevents a noisy Signal from paging on every small fluctuation.
| Mode | Behavior |
|---|---|
| Cooldown | Suppress repeat alerts for N minutes after a fire. |
| Hysteresis | Require the value to cross a recovery threshold before re-arming. |
| Sustained | Fire only after the threshold is breached for K consecutive runs. |
| Exponential | Double the cooldown on each repeat fire (capped). Useful for ongoing incidents. |
Result - how Signals deliver
Every fire produces a structured payload:
{
"signal_id": "sig_8a2c…",
"fired_at": "2026-04-29T08:15:00Z",
"trigger": "threshold_breach",
"metric": "net_revenue",
"value": 1842300,
"threshold": { "op": "<", "rhs": 2000000 },
"trace_id": "trc_e1f9…",
"persona": "regional_analyst",
"scope": { "region": "EMEA" },
"context": { "top_drivers": [...] }
}
Built-in delivery channels: email, Slack, Microsoft Teams, PagerDuty, Opsgenie, generic webhook. The webhook signs payloads with HMAC so your receiver can verify authenticity.
Schedule
Cron expressions, simple intervals (every 15 minutes), or event-driven triggers from upstream Signals or external webhooks.
- Schedules are timezone-aware. Use the workspace timezone or override per Signal.
- Schedule skew (the gap between intended and actual run) is captured in the audit log and alertable.
- Failed runs are retried with backoff; persistent failures eventually page the Signal owner.
Anomaly detection
For metrics with enough history, Colrows can derive thresholds automatically - seasonality-aware baselines from the same metric you'd otherwise threshold by hand. Combine with Stopclock sustained mode for high-quality alerts that don't page on weekend dips.
Every Signal fire carries a trace_id that resolves to the exact compile-then-execute trace - definitions, join paths, constraints, and the SQL that ran. Replay-the-incident is one click away.