How-to

Page on failure

Alerting turns what Sirius already knows — logs, failures, status changes, deploys, cluster events — into a notification you can acknowledge.

This is the in-product engine. It does not replace Prometheus rules over /metrics; those watch quantities only a scrape can see. Use both.

1. Add a channel

Open Operate → Alerts → Channels.

TypeTargetCredential
EmailComma-separated recipientsSMTP password as a secret reference
Slack / TeamsIncoming webhookSecret reference
WebhookHTTPS endpointSecret reference

Credentials are write-only. The stored channel never returns the secret. Outbound URLs are SSRF-guarded — loopback and link-local targets are rejected in production.

Test the channel before you attach a rule.

curl -s -X POST "$SIRIUS/alerts/channels" -H 'content-type: application/json' -d '{
  "name": "Ops webhook",
  "type": "webhook",
  "secret_provider": "managed",
  "secret_name": "ops-webhook"
}'
curl -s -X POST "$SIRIUS/alerts/channels/ops-webhook/test"

2. Write a rule

A rule watches one signal.

SignalFires on
logLog entries (level, event type, text)
failureWorker, broker, parser, or script failures
integration_statusHealth transitions (updown)
componentStart / stop / restart
deployAdvance, rollback, and related state
clusterJoin, drain, failover, remove

Narrow with a selector (integration_names, groups, component_ids, tags). An empty selector is tenant-wide.

Then pick a condition:

condition.typeMeaning
matchFire on each matching event
thresholdFire when count events land in window_seconds
status_transitionFire on status_fromstatus_to

Set severity (info, warning, critical), throttle_seconds (how often you are notified about a flapping condition), and whether resolve should send a follow-up.

curl -s -X POST "$SIRIUS/alerts/rules" -H 'content-type: application/json' -d '{
  "name": "Orders down",
  "signal": "integration_status",
  "severity": "critical",
  "selector": {"integration_names": ["Orders to warehouse"]},
  "condition": {"type": "status_transition", "status_to": "down"},
  "channel_ids": ["ops-webhook"],
  "throttle_seconds": 300
}'

3. Work instances

Repeat signals bump count and last_seen on the same instance. States: firing, acknowledged, resolved. Resolve closes it; the next matching signal opens a fresh instance.

curl -s -X POST "$SIRIUS/alerts/instances/<id>/ack"
curl -s -X POST "$SIRIUS/alerts/instances/<id>/resolve"

A rule that never fires is usually a selector that does not match the integration name you think it does. List integrations first, then copy the exact name.