Overview
Chronosphere’s notification policies fan monitor alerts out to wherever they need to go. Point one of those webhooks at Rootly and every triggering monitor becomes a normalized alert that can page on-call, route to a service, or auto-create a full incident through alert workflows. Alertmanager-style batches arrive as a single Rootly alert, fingerprint-keyed so duplicates don’t pile up. Chronosphere has first-class support as a dedicated alert source in Rootly — you don’t need the Generic Webhook source. The integration ships with vendor-specific Alertmanager payload parsing, fingerprint-based deduplication via UUID v5, and a guided setup wizard in the Rootly dashboard.Page On-Call
Auto-Create Incidents
Multi-Alert Grouping
Per-Monitor Routing
Before You Begin
- In Rootly — the On-Call Admin or On-Call User role so you can create alert sources. See Schedule Permissions.
- In Chronosphere — permission to create notifiers and notification policies (typically Admin or a custom role with notifier write access).
Add the Alert Source in Rootly
The Rootly side hands you a webhook URL with the authenticationsecret baked into the query string. Paste that URL into Chronosphere in the next section.
Open Alerts → Sources
Choose Chronosphere
Chronosphere — Production Monitors.Set The Default Routing Target (Optional)
Copy The Webhook URL
secret embedded as a query parameter. Copy the full URL — that’s what goes into Chronosphere.Without a default routing target:Configure the Webhook in Chronosphere
Create a webhook notifier in Chronosphere, point it at the Rootly URL, then attach it to a notification policy.Create A Webhook Notifier
Set The Webhook URL
?secret=... query string. The method is POST.Configure Resolved Notifications (Optional)
Attach The Notifier To A Notification Policy
Payload Reference
Rootly’s Chronosphere source parses the Alertmanager-style payload Chronosphere sends. The full raw payload is preserved on the alert record, so any field Chronosphere sends remains accessible to alert routes, workflows, and field mappings."Alert from Chronosphere" if absent.fingerprint and a startsAt timestamp.firing or resolved. See Handling Resolved Events for behavior differences.type (Service, Group, or EscalationPolicy) and id (the Rootly resource’s internal ID).Routing Alerts
Two ways to point a Chronosphere alert at the right responder. URL-based routing takes precedence when both are configured.- By URL (One Target)
- By Payload (Per Notifier)
Handling Resolved Events
What this means in practice:- A Chronosphere webhook with
"status": "firing"creates or updates a Rootly alert - A follow-up webhook with
"status": "resolved"is ingested but produces no alert mutation — Rootly returns 200 and discards the event - Alerts created from Chronosphere stay in their triggered state until a responder resolves them in Rootly, or until an alert workflow closes them based on its own logic
Multi-Alert Payloads
Chronosphere’s Alertmanager-style webhook can include multiple alerts in a single POST under thealerts array — typical when a notification policy groups related monitors together. Rootly collapses the entire batch into a single Rootly alert:
- The External Identifier is computed as
uuid_v5(DNS namespace, fingerprints.sort.join(","))— every fingerprint in the batch contributes, so the same batch produces the same identifier on retry, and a different batch produces a different identifier - The summary comes from
commonLabels.alertname(a single field on the batch, not per-alert) - The started_at timestamp comes from the first alert in the array (
alerts[0].startsAt) - The entire payload is preserved on the alert record, so per-alert details remain accessible to alert workflows and field mappings
Troubleshooting
The webhook returns 200 but no alert appears in Rootly
The webhook returns 200 but no alert appears in Rootly
- The webhook payload had
"status": "resolved"— Rootly drops resolved events on purpose (see Handling Resolved Events) - Rootly processes webhooks asynchronously; check again after a few seconds
- Confirm the routing target referenced in the URL or payload exists and isn’t archived
- Inspect the source’s recent activity in Rootly to verify the payload was received
Duplicate alerts appear in Rootly for the same Chronosphere event
Duplicate alerts appear in Rootly for the same Chronosphere event
Alerts route to the wrong team or service
Alerts route to the wrong team or service
/notify/<type>/<id>, that target wins regardless of the JSON body. Either remove the URL target and rely on payload routing, or update the URL target to the correct destination.Chronosphere shows webhook delivery failures
Chronosphere shows webhook delivery failures
401 if the secret query parameter is missing or wrong, and 500 for server-side issues. For 500 responses, contact Rootly support with the timestamps so they can correlate against server logs.Frequently Asked Questions
Do I need to use the Generic Webhook source for Chronosphere?
Do I need to use the Generic Webhook source for Chronosphere?
Why are resolved events dropped instead of resolving the Rootly alert?
Why are resolved events dropped instead of resolving the Rootly alert?
Can I send one Chronosphere alert as one Rootly alert instead of grouping?
Can I send one Chronosphere alert as one Rootly alert instead of grouping?
Does the integration verify Chronosphere's HMAC signature?
Does the integration verify Chronosphere's HMAC signature?
secret query parameter only. Chronosphere’s optional Chronosphere-Webhook-Timestamp + HMAC-SHA256 signature isn’t required or validated. You can leave signing off in Chronosphere without affecting the integration.What if I want to page on-call directly instead of just creating an alert?
What if I want to page on-call directly instead of just creating an alert?
rootly.notification_target) to an Escalation Policy. Rootly triggers the escalation as soon as the alert is created, paging the on-call responder per the policy’s steps.