Skip to main content
A signal is a normalized event that enters Scrubbe from an internal or external source — a metric spike from Prometheus, an alert from Datadog, a deployment event from GitHub, or any raw event you send via the API. Signals are the raw material of incident detection. Scrubbe’s intelligence layer (Ezra) correlates signals across services, assesses blast radius, and, when patterns match, promotes them into incident tickets automatically.

Signal fields

When you ingest a signal, you provide the following fields:

Ingesting a single signal

Bulk ingestion

When you need to forward a batch of signals from a monitoring system or replay historical events, use the bulk endpoint. Send an array of signal objects under the signals key:
Duplicate signals are silently skipped, so bulk ingestion is safe to call repeatedly from your pipeline.

Signal lifecycle

A signal moves through four states from ingestion to closure:
1

OPEN (active)

A newly ingested signal enters an active state. It is visible in the signal list and is available for correlation by Ezra. SLA and alerting rules evaluate active signals.
2

ACKNOWLEDGED

A team member has reviewed the signal and is aware of it. Acknowledging a signal suppresses repeat notifications but keeps the signal in scope for Ezra’s correlation.
3

RESOLVED

The condition that produced the signal has cleared. Resolving a signal records a resolvedAt timestamp.
You cannot resolve a signal that has already been resolved.
4

SUPPRESSED

The signal is known and expected — no further action or correlation is needed. Suppressed signals are excluded from Ezra’s active pipeline.

Filtering signals

GET /api/v1/signals accepts query parameters to narrow results:

Signal stats

GET /api/v1/signals/stats returns a summary of signal activity for your organization:
Use this endpoint to build signal health dashboards or trigger external alerts when active critical signals accumulate.

How signals become incidents

When Ezra receives a signal, it runs a four-stage reasoning pipeline: it assesses the situation, hypothesizes a root cause by correlating related signals and recent deployments, estimates blast radius, and selects a remediation option. If a matching playbook exists and guardrails allow, Scrubbe can promote the signal to an incident ticket automatically. If no playbook matches, the signal is promoted to an OPEN incident for your on-call team to handle. The correlated signal IDs appear on the resulting incident ticket in the correlatedSignalIds field, giving you a full trace from raw event to incident.