Rootly Alerts
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 acknowle
SKILL.mdmsp-claude-plugins/rootly/rootly/skills/alerts/SKILL.md
GitHubRootly Alerts
Overview
Rootly's alerting system connects monitoring tools (Datadog, PagerDuty, New Relic, Grafana, etc.) to the incident management workflow. Each integration is registered as an alert source; alerts land in Rootly tagged with a source, status, and urgency, and can be attached to incidents. Routing rules and alert groups control where alerts go and how noisy duplicates are suppressed.
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, andpagerduty-alerts. This skill only covers how a PagerDuty signal enters Rootly as an alert source and how Rootly pages back out to it. - The incident an alert became — once an alert is attached to
an incident via
attach_alert, lifecycle, severity, and response coordination arerootly-incidents. - Alerts raised by another product — RMM device alerts are
datto-rmm-alerts, network alerts areauvik-alerts, EDR detections aresentinelone-alerts. - The automation that runs when an alert lands — trigger, condition,
and action definitions are
rootly-workflows.
Key Concepts
Alert Sources
An alert source (alerts_source) is a configured integration -- Datadog, PagerDuty, New Relic, Grafana, Opsgenie, CloudWatch, or a custom webhook. Each source has:
source_type-- Which integration this iswebhook_endpoint/email-- Intake mechanismalert_urgency_id-- Default urgency applied to alerts from this sourceowner_group_ids-- Team(s) responsible for this source
Alert Fields
An individual alert carries:
status-- Alert statussource-- The originating sourcesummary/description-- What the alert is aboutservice_ids,group_ids,environment_ids-- What it's scoped toalert_urgency_id-- Its urgency levelnoise-- Whether the alert is flagged as noiseexternal_id/external_url-- Link back to the originating system
Alert Urgencies
Alerts carry an urgency (alert_urgency) rather than a severity -- a named, ordered level (name, description, position) used to prioritize triage. This is a separate concept from an incident's severity.
Alert Routing Rules
An alert routing rule (alert_routing_rule) determines how incoming alerts from a given source are handled:
alerts_source_id-- Which source this rule applies tocondition_type/conditions-- What must match for the rule to firedestination-- Where the matched alert is routedenabled-- Whether the rule is active
Alert Groups
An alert group (alert_group) deduplicates or bundles related alerts to reduce noise:
condition_type/conditions-- What alerts belong in the grouptime_window-- The grouping windowgroup_by_alert_title,group_by_alert_urgency-- Grouping keys
Escalation Policies
An escalation policy (escalation_policy) defines who is paged and how many times an alert repeats through the chain before giving up:
repeat_count-- How many times to repeat the escalation chaingroup_ids-- Teams this policy applies toservice_ids-- Services this policy coversbusiness_hours-- Business-hours scoping for the policy
Escalation levels (escalation_level) and escalation paths (escalation_path) are nested under a policy and define the actual tiers/steps of the chain.
API Patterns
List Alerts
list_alerts
Parameters:
filter[status]-- Filter by alert statuspage[number]/page[size]-- Pagination
Example response:
{
"data": [
{
"id": "alert-789",
"type": "alerts",
"attributes": {
"summary": "High error rate on payment-service",
"source": "datadog",
"status": "triggered",
"service_ids": ["svc-001"],
"alert_urgency_id": "urgency-critical",
"external_url": "https://app.datadoghq.com/monitors/12345"
}
}
]
}
Get Alert Details
get_alert
Parameters:
- Alert ID
Get Alert by Short ID
get_alert_by_short_id
Parameters:
- Alert short ID (as referenced in Slack or the web UI)
Create / Update an Alert
create_alert
update_alert
Acknowledge / Resolve an Alert
acknowledge_alert
resolve_alert
Parameters:
- Alert ID
List Alert Sources
list_alerts_sources
Returns the configured integrations (Datadog, PagerDuty, custom webhook, etc.) and their intake settings.
List Alert Routing Rules
list_alert_routing_rules
Parameters:
- Optionally scope by
alerts_source_id
List Alert Groups
list_alert_groups
List Alert Urgencies
list_alert_urgencies
List Escalation Policies
list_escalation_policies
Common Workflows
Alert Triage
- Call
list_alertswithfilter[status]=triggered - Group by
sourceandalert_urgency_id - Identify alerts not yet linked to an incident
- For uncaught critical alerts, attach them to an incident with
attach_alert(see incidents) acknowledge_alertonce triage begins
Escalation Policy Review
- Call
list_escalation_policies - Verify each critical service (
service_ids) has a policy - Review
repeat_countandbusiness_hoursfor appropriateness - Confirm on-call schedules backing the policy are current (see oncall)
Alert Routing Audit
- Call
list_alert_routing_rulesto get all rules - Map rules to
alerts_source_idanddestination - Identify sources without routing rules (gap)
- Check for overly broad
conditionsthat create noise - Review
list_alert_groupsto confirm noisy alerts are actually being deduplicated
Monitoring Integration Check
- Call
list_alerts_sourcesto verify each integration is configured and has astatusof active - List alerts by
sourceto check for sources with no recent alerts (potential integration failure) - Verify
webhook_endpointconnectivity for custom sources
Error Handling
Alert Not Found
Cause: Invalid alert ID or alert expired
Solution: List recent alerts to verify the correct ID, or try get_alert_by_short_id
Routing Rule Conflict
Cause: Multiple routing rules match the same alert with conflicting destination
Solution: Review position ordering on routing rules; use more specific conditions
Escalation Timeout
Cause: No responder acknowledged before the escalation chain repeated (repeat_count exhausted)
Solution: Review on-call schedules and ensure coverage
Best Practices
- Map every critical service to an escalation policy via
service_ids - Use
alert_urgencyconsistently so triage prioritization is meaningful - Use alert groups to reduce noise from flapping/duplicate monitors
- Review alert routing rules monthly for accuracy
- Test integrations periodically by sending test alerts through the source's
webhook_endpoint - Tag alerts with
service_idsandenvironment_idsfor accurate routing - Track alert-to-incident conversion (via
attach_alert) as a reliability metric
Related Skills
- api-patterns - Pagination and error handling
- incidents - Incidents created from alerts
- services - Service-to-alert mapping
- workflows - Alert-triggered workflows