Rootly Alerts
Overview
Rootly's alerting system connects monitoring tools (Datadog, PagerDuty, New Relic, Grafana, etc.) to the incident management workflow. Alerts are routed through configurable rules to the right teams, and can automatically create incidents based on conditions. Escalation policies ensure alerts are acknowledged within SLA windows.
Anti-triggers
PagerDuty appears here as an upstream alert source and paging target.
Questions about PagerDuty's own objects are not this skill.
- Managing the PagerDuty side — PagerDuty's own incidents, schedules,
and escalation policies are
pagerduty-incidents, pagerduty-oncall,
and pagerduty-alerts. This skill only covers how a PagerDuty signal
enters Rootly and how Rootly pages back out to it.
- The incident an alert became — once an alert creates or attaches to
an incident, lifecycle, severity, and response coordination are
rootly-incidents.
- Alerts raised by another product — RMM device alerts are
datto-rmm-alerts, network alerts are auvik-alerts, EDR detections
are sentinelone-alerts.
- The automation that runs when an alert lands — trigger, condition,
and action definitions are
rootly-workflows.
Key Concepts
Alert Sources
Rootly integrates with common monitoring tools:
- Datadog -- Monitors and alerts
- PagerDuty -- On-call and escalation
- New Relic -- APM alerts
- Grafana -- Dashboard alerts
- Opsgenie -- Alert management
- CloudWatch -- AWS infrastructure alerts
- Custom Webhooks -- Any HTTP-based alert source
Alert Routing
Alert routing rules determine how incoming alerts are handled:
- Match Conditions -- Which alerts trigger the rule (source, severity, tags)
- Target -- Which team or channel receives the alert
- Actions -- What happens (create incident, notify, escalate)
- Suppression -- Deduplicate or silence noisy alerts
Escalation Policies
Escalation policies define the escalation chain when alerts are not acknowledged:
- Level 1 -- Primary on-call responder
- Level 2 -- Secondary on-call or team lead
- Level 3 -- Engineering manager or incident commander
- Timeout -- Time before escalating to next level
Alert-to-Incident Flow
- Alert arrives from monitoring tool
- Routing rules match the alert
- If conditions met, an incident is created automatically
- Severity is mapped from alert priority
- Services are tagged based on alert metadata
- Responders are notified via Slack, email, or phone
API Patterns
List Alerts
rootly_list_alerts
Parameters:
status -- Filter by status (triggered, acknowledged, resolved)
source -- Filter by alert source
service -- Filter by affected service
Example response:
{
"data": [
{
"id": "alert-789",
"type": "alerts",
"attributes": {
"title": "High error rate on payment-service",
"source": "datadog",
"status": "triggered",
"severity": "critical",
"service": { "name": "payment-service" },
"created_at": "2026-03-27T14:15:00Z",
"incident_id": "inc-456"
}
}
]
}
Get Alert Details
rootly_get_alert
Parameters:
List Escalation Policies
rootly_list_escalation_policies
Parameters:
List Alert Routes
rootly_list_alert_routes
Parameters:
service -- Filter by service
source -- Filter by alert source
Common Workflows
Alert Triage
- Call
rootly_list_alerts with status=triggered
- Group by source and severity
- Identify alerts not yet linked to incidents
- Check if auto-incident creation rules are working
- Manually create incidents for uncaught critical alerts
Escalation Policy Review
- Call
rootly_list_escalation_policies
- Verify each critical service has a policy
- Check timeout intervals are appropriate
- Confirm on-call schedules are current
- Test escalation paths for completeness
Alert Routing Audit
- Call
rootly_list_alert_routes to get all rules
- Map rules to services and teams
- Identify services without routing rules (gap)
- Check for overly broad rules that create noise
- Verify suppression rules are not hiding critical alerts
Monitoring Integration Check
- List alerts by source to verify each integration is active
- Check for sources with no recent alerts (potential integration failure)
- Verify alert metadata (severity, service tags) maps correctly
- Test webhook connectivity for custom sources
Error Handling
Alert Not Found
Cause: Invalid alert ID or alert expired
Solution: List recent alerts to verify the correct ID
Routing Rule Conflict
Cause: Multiple routing rules match the same alert with conflicting actions
Solution: Review and prioritize routing rules; use more specific match conditions
Escalation Timeout
Cause: No responder acknowledged within the policy timeout
Solution: Review on-call schedules and ensure coverage
Best Practices
- Map every critical service to an escalation policy
- Set appropriate timeouts per severity level (5 min for SEV0, 15 min for SEV1)
- Use suppression rules to reduce alert fatigue from noisy monitors
- Review alert routing rules monthly for accuracy
- Test integrations periodically by sending test alerts
- Tag alerts with service and environment for accurate routing
- Configure auto-incident creation for critical alert patterns
- Track alert-to-incident conversion rates as a reliability metric
Related Skills
1---2name: rootly-alerts3description: Rootly's alerting layer between monitoring tools and incident management: alert sources and integrations (Datadog, PagerDuty, New Relic, Grafana), routing rules, escalation policies and their acknowledgement windows, suppression, and the conditions under which an alert auto-creates an incident.4---56# Rootly Alerts78## Overview910Rootly's alerting system connects monitoring tools (Datadog, PagerDuty, New Relic, Grafana, etc.) to the incident management workflow. Alerts are routed through configurable rules to the right teams, and can automatically create incidents based on conditions. Escalation policies ensure alerts are acknowledged within SLA windows.1112## Anti-triggers1314PagerDuty appears here as an *upstream alert source and paging target*.15Questions about PagerDuty's own objects are not this skill.1617- **Managing the PagerDuty side** — PagerDuty's own incidents, schedules,18 and escalation policies are `pagerduty-incidents`, `pagerduty-oncall`,19 and `pagerduty-alerts`. This skill only covers how a PagerDuty signal20 enters Rootly and how Rootly pages back out to it.21- **The incident an alert became** — once an alert creates or attaches to22 an incident, lifecycle, severity, and response coordination are23 `rootly-incidents`.24- **Alerts raised by another product** — RMM device alerts are25 `datto-rmm-alerts`, network alerts are `auvik-alerts`, EDR detections26 are `sentinelone-alerts`.27- **The automation that runs when an alert lands** — trigger, condition,28 and action definitions are `rootly-workflows`.2930## Key Concepts3132### Alert Sources3334Rootly integrates with common monitoring tools:3536- **Datadog** -- Monitors and alerts37- **PagerDuty** -- On-call and escalation38- **New Relic** -- APM alerts39- **Grafana** -- Dashboard alerts40- **Opsgenie** -- Alert management41- **CloudWatch** -- AWS infrastructure alerts42- **Custom Webhooks** -- Any HTTP-based alert source4344### Alert Routing4546Alert routing rules determine how incoming alerts are handled:4748- **Match Conditions** -- Which alerts trigger the rule (source, severity, tags)49- **Target** -- Which team or channel receives the alert50- **Actions** -- What happens (create incident, notify, escalate)51- **Suppression** -- Deduplicate or silence noisy alerts5253### Escalation Policies5455Escalation policies define the escalation chain when alerts are not acknowledged:5657- **Level 1** -- Primary on-call responder58- **Level 2** -- Secondary on-call or team lead59- **Level 3** -- Engineering manager or incident commander60- **Timeout** -- Time before escalating to next level6162### Alert-to-Incident Flow63641. Alert arrives from monitoring tool652. Routing rules match the alert663. If conditions met, an incident is created automatically674. Severity is mapped from alert priority685. Services are tagged based on alert metadata696. Responders are notified via Slack, email, or phone7071## API Patterns7273### List Alerts7475```76rootly_list_alerts77```7879Parameters:80- `status` -- Filter by status (triggered, acknowledged, resolved)81- `source` -- Filter by alert source82- `service` -- Filter by affected service8384**Example response:**8586```json87{88 "data": [89 {90 "id": "alert-789",91 "type": "alerts",92 "attributes": {93 "title": "High error rate on payment-service",94 "source": "datadog",95 "status": "triggered",96 "severity": "critical",97 "service": { "name": "payment-service" },98 "created_at": "2026-03-27T14:15:00Z",99 "incident_id": "inc-456"100 }101 }102 ]103}104```105106### Get Alert Details107108```109rootly_get_alert110```111112Parameters:113- `alert_id` -- The alert ID114115### List Escalation Policies116117```118rootly_list_escalation_policies119```120121Parameters:122- `team` -- Filter by team123124### List Alert Routes125126```127rootly_list_alert_routes128```129130Parameters:131- `service` -- Filter by service132- `source` -- Filter by alert source133134## Common Workflows135136### Alert Triage1371381. Call `rootly_list_alerts` with `status=triggered`1392. Group by source and severity1403. Identify alerts not yet linked to incidents1414. Check if auto-incident creation rules are working1425. Manually create incidents for uncaught critical alerts143144### Escalation Policy Review1451461. Call `rootly_list_escalation_policies`1472. Verify each critical service has a policy1483. Check timeout intervals are appropriate1494. Confirm on-call schedules are current1505. Test escalation paths for completeness151152### Alert Routing Audit1531541. Call `rootly_list_alert_routes` to get all rules1552. Map rules to services and teams1563. Identify services without routing rules (gap)1574. Check for overly broad rules that create noise1585. Verify suppression rules are not hiding critical alerts159160### Monitoring Integration Check1611621. List alerts by source to verify each integration is active1632. Check for sources with no recent alerts (potential integration failure)1643. Verify alert metadata (severity, service tags) maps correctly1654. Test webhook connectivity for custom sources166167## Error Handling168169### Alert Not Found170171**Cause:** Invalid alert ID or alert expired172**Solution:** List recent alerts to verify the correct ID173174### Routing Rule Conflict175176**Cause:** Multiple routing rules match the same alert with conflicting actions177**Solution:** Review and prioritize routing rules; use more specific match conditions178179### Escalation Timeout180181**Cause:** No responder acknowledged within the policy timeout182**Solution:** Review on-call schedules and ensure coverage183184## Best Practices185186- Map every critical service to an escalation policy187- Set appropriate timeouts per severity level (5 min for SEV0, 15 min for SEV1)188- Use suppression rules to reduce alert fatigue from noisy monitors189- Review alert routing rules monthly for accuracy190- Test integrations periodically by sending test alerts191- Tag alerts with service and environment for accurate routing192- Configure auto-incident creation for critical alert patterns193- Track alert-to-incident conversion rates as a reliability metric194195## Related Skills196197- [api-patterns](../api-patterns/SKILL.md) - Pagination and error handling198- [incidents](../incidents/SKILL.md) - Incidents created from alerts199- [services](../services/SKILL.md) - Service-to-alert mapping200- [workflows](../workflows/SKILL.md) - Alert-triggered workflows