К основному содержанию
скилл CX Codex

oncall-irm — скилл для Claude Code: алерты и дежурства в Grafana

Помогает агенту настроить маршрутизацию алертов, дежурные ротации и жизненный цикл инцидентов в Grafana IRM / OnCall.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add grafana/skills --skill oncall-irm -a claude-code
Открыть на GitHub

Что делает oncall-irm

Скилл описывает, как связать источник алертов с Grafana IRM или OnCall: интеграции Alertmanager, Grafana Alerting, generic webhook и PagerDuty, шаблоны маршрутизации и группировки на Jinja2, цепочки эскалации из шагов «подождать → уведомить расписание → уведомить команду → webhook → авто-закрытие». Отдельно разобраны расписания: через веб-интерфейс, iCal и Terraform grafana_oncall_schedule, а также Slack chatops с кнопками Acknowledge, Resolve и Silence и стадии инцидента P1–P4.

Внутри есть готовые сценарии с проверкой на каждом шаге. Для маршрутизации советует сначала прогнать шаблон через «Preview» с реальным тестовым payload и убедиться, что условие вернуло True и выбрало нужную цепочку. Для расписания — создать его через POST /api/v1/schedules/, затем проверить через next_shifts, кто дежурит сейчас. Есть отдельные файлы-справочники по шаблонам и интеграциям.

Понадобится стек Grafana Cloud с включённым IRM или OnCall, API-токен и админ Slack для установки приложения OnCall, если нужен ChatOps. Важный момент: OnCall OSS переведён в режим поддержки и архивирован в марте 2026, поэтому пользователям Grafana Cloud стоит сразу смотреть в сторону IRM — концепции там те же, но развивается только IRM.

Какие задачи решает

  • связать Alertmanager с OnCall и проверить, что алерт доходит
  • решить, какая команда получит пейдж по критичному алерту
  • собрать ротацию дежурств из Google Calendar или iCal
  • настроить цепочку эскалации с ожиданием и уведомлением команды
  • автоматически закрывать алерт, когда он погас

Примеры запросов агенту

  • Настрой интеграцию Alertmanager с Grafana OnCall и покажи, как проверить маршрутизацию
  • Собери цепочку эскалации: уведомить дежурного, подождать 5 минут, уведомить команду Platform
  • Создай расписание Platform On-Call из iCal и проверь, кто дежурит сейчас

Как установить oncall-irm

1Через Skills CLI (Vercel)

npx skills add grafana/skills --skill oncall-irm -a claude-code

2Вручную: положить файлы

~/.claude/skills/oncall-irm/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/oncall-irm/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о oncall-irm

Как установить oncall-irm в Claude?

Выполните npx skills add grafana/skills --skill oncall-irm -a claude-code. Скилл появится в ~/.claude/skills/oncall-irm/SKILL.md.

Что делает скилл oncall-irm?

Проводит агента по настройке Grafana IRM / OnCall: интеграции, Jinja2-шаблоны маршрутизации, цепочки эскалации, расписания и Slack chatops.

Чем OnCall OSS отличается от IRM?

OnCall OSS в режиме поддержки и архивирован в марте 2026. Пользователям Grafana Cloud скилл советует IRM, концепции цепочек, расписаний и интеграций там те же.

Исходный текст

SKILL.md · Apache-2.0
---
name: oncall-irm
license: Apache-2.0
description: Route alerts, run on-call rotations, and drive incidents in Grafana IRM / OnCall — integrations (Alertmanager / Grafana Alerting / generic webhook / PagerDuty), Jinja2 routing + grouping templates, escalation chains (wait → notify schedule → notify team → webhook → auto-resolve), schedules (web + iCal + Terraform `grafana_oncall_schedule`), Slack chatops with Acknowledge/Resolve/Silence, and the P1-P4 incident lifecycle. Use when wiring Alertmanager to OnCall, deciding which team gets paged, building rotations from a Google Calendar / iCal, hooking up Slack notifications, or declaring an incident from an alert — even when the user says "page the platform team on critical alerts", "send Prometheus alerts to Slack", "set up our on-call rota", "escalation policy", or "auto-resolve when the alert clears" without naming OnCall / IRM. Heads up — OnCall OSS is in maintenance mode (archived March 2026); Grafana Cloud users should use IRM.
---

# Grafana OnCall & IRM

> **OnCall docs**: https://grafana.com/docs/oncall/latest/
> **IRM docs**: https://grafana.com/docs/grafana-cloud/alerting-and-irm/

> Grafana OnCall OSS is in maintenance mode (archived March 2026). Cloud users → **IRM**. Concepts (chains, schedules, integrations) are identical.

## Prerequisites

- Grafana Cloud stack with IRM/OnCall enabled
- API token (`Authorization: <token>`)
- Slack workspace + admin to install the OnCall app (for ChatOps)

## Core concepts

| Concept | Description |
|---------|-------------|
| **Integration** | Webhook URL accepting alerts; one per source |
| **Route** | Jinja2 condition that maps to an escalation chain (first True wins) |
| **Escalation Chain** | Wait / notify schedule / notify team / webhook / auto-resolve steps |
| **Schedule** | Calendar-based rotation (web / iCal / Terraform) |
| **Alert Group** | Related alerts collapsed by a Grouping ID template |
| **Notification Policy** | Per-user channels — Slack, mobile push, SMS, phone, email |

Flow: alert → integration → routing template → escalation chain → notifications → ack / resolve.

## Common Workflows

### 1. Wire Alertmanager → IRM and verify routing

```yaml
# 1. In IRM: New integration → Alertmanager. Copy the webhook URL.
# 2. alertmanager.yml (see references/integrations.md for full block):
receivers:
  - name: grafana-oncall
    webhook_configs:
      - url: https://<stack>.grafana.net/integrations/v1/alertmanager/<id>/
        send_resolved: true
        max_alerts: 100
```

```bash
# 3. Test the routing template BEFORE going live (UI: Integration → Route → "Preview")
#    Paste a sample payload (use a real Alertmanager test webhook). Expect:
#      Routing result: True
#      Escalation chain selected: <expected chain>
#    If False — your Jinja expression is wrong; fix and re-preview.

# 4. End-to-end test — fire amtool (or any test webhook) at the URL
amtool alert add foo severity=critical team=platform --alertmanager.url http://localhost:9093

# 5. Verify in IRM → Alert Groups (should appear within ~5s) — confirm:
#    - Correct route fired
#    - Correct schedule/user notified
#    - Slack message appeared in the configured channel
```

Routing template syntax + Jinja helpers: [`references/templates-schedules.md`](references/templates-schedules.md).
Other integrations (Grafana Alerting, generic webhook, Slack): [`references/integrations.md`](references/integrations.md).

### 2. Build an escalation chain + verify

```
1. Notify "Primary On-Call" (Important Notifications)
2. Wait 5 min
3. Notify "Primary On-Call" (Default Notifications)
4. Wait 10 min
5. Notify team "Platform"
6. Trigger outgoing webhook (PagerDuty / ticket)
```

```bash
# Verify: create a test alert (UI → Integration → "Send demo alert"),
# then watch the alert-group timeline tick through steps 1 → 6.
# Use IRM → Escalation Chains → "Test" if available, otherwise the demo alert is the canonical check.
```

### 3. Create a schedule from iCal + verify "who is on-call right now"

```bash
# 1. Create the schedule
curl -X POST https://<stack>.grafana.net/api/v1/schedules/ \
  -H "Authorization: <token>" -H "Content-Type: application/json" \
  -d '{"name":"Platform On-Call",
       "ical_url_primary":"https://calendar.example.com/platform.ics",
       "slack":{"channel_id":"C123456ABC","user_group_id":"S123456ABC"}}'

# 2. Verify the schedule was created
curl -s https://<stack>.grafana.net/api/v1/schedules/ \
  -H "Authorization: <token>" | jq '.results[] | select(.name=="Platform On-Call")'

# 3. Verify who is on-call right now
curl -s https://<stack>.grafana.net/api/v1/schedules/<schedule_id>/next_shifts/ \
  -H "Authorization: <token>" | jq '.results[0]'
# Expect a shift starting now (or recently) with the right user_id.
```

Terraform variant + shift block: [`references/templates-schedules.md`](references/templates-schedules.md).

## Best practices

- Keep chains ≤4 levels with a definitive final step (webhook to PagerDuty or auto-resolve)
- Always set `send_resolved: true` in Alertmanager so OnCall auto-resolves
- Use `max_alerts: 100` in Alertmanager webhook config
- Combine Slack + mobile push for delivery reliability
- Assign integrations/schedules to teams for RBAC

## Resources

- [OnCall API](https://grafana.com/docs/oncall/latest/oncall-api-reference/)
- [IRM docs](https://grafana.com/docs/grafana-cloud/alerting-and-irm/)
- [Routing template helpers](https://grafana.com/docs/oncall/latest/configure/jinja2-template-functions/)

© grafana · Apache-2.0 · grafana/skills

Похожие скиллы

Всё по теме «DevOps и инфраструктура» →
alerting-oncall devops-skills Помогает настроить правила алертов в Prometheus, ротацию дежурств в PagerDuty и маршрутизацию уведомлений в Slack. CX Codex +1 336установок cloud-monitoring-notification-channels-configuration официальный google Генерирует Terraform-конфигурации каналов уведомлений Cloud Monitoring и добавляет их в политики оповещений. Подойдёт для настройки email, SMS, Slack, PagerDuty, Pub/Sub и webhook. CX Codex 502установок on-call-handoff-patterns Seth Hobson Скилл помогает передавать дежурство между инженерами: фиксирует инциденты, расследования и изменения. Нужен для смен, онбординга и передачи инцидента. CX Codex 10 300установок agent-platform-alert-configuration официальный google Скилл создаёт Terraform-конфигурации для алертов AI-агентов по OTel-метрикам. Подойдёт для контроля задержки, ошибок, расхода токенов и качества. CX Codex 6 857установок sentry-create-alert getsentry Создаёт алерты и автоматизации в Sentry через workflow engine API. Помогает настроить оповещения в Slack, PagerDuty или на почту прямо из диалога с агентом. CX Codex +1 4 100установок dt-alerting Dynatrace Скилл ведёт по всему циклу алертинга в Dynatrace: выбор детектора аномалий, хранение событий в Grail, группировка проблем и маршрутизация уведомлений. CX Codex +1 1 800установок

Из того же набора47

beyla Автоматически подключает eBPF-мониторинг HTTP, gRPC и баз данных через Grafana Beyla без изменения кода. Пригодится для сбора трейсов и RED-метрик с готовых бинарников. CX Codex +1 4 700установок app-observability Ведёт агента по настройке Grafana Cloud: RED-метрики из OTel-трейсов, карты сервисов, браузерный RUM через Faro и наблюдение за вызовами LLM. CX Codex +1 4 400установок infrastructure Настраивает передачу метрик, логов и трейсов из Kubernetes, Linux-хостов и облаков в Grafana Cloud. Пригодится при подключении кластеров и виртуалок. CX Codex +1 4 300установок dpm-finder Скилл помогает найти метрики Prometheus с наибольшим числом точек в минуту в Grafana Cloud и выявить причины растущих расходов на мониторинг. CX Codex +1 4 200установок send-data Помогает настроить отправку метрик, логов, трейсов и профилей в Grafana Cloud. Пригодится при настройке Alloy, OTLP-экспортёров, Prometheus remote write и Helm-чартов. CX Codex +1 4 200установок fleet-management Скилл для управления парком коллекторов Grafana Alloy: один раз описать пайплайн, раскатать его на нужные коллекторы по атрибутам и без перезапуска. CX Codex +1 4 200установок cost-management Скилл разбирает счёт Grafana Cloud по командам и сервисам и подсказывает, как урезать метрики, логи и трейсы. CX Codex +1 4 200установок k6-docs Скилл для составления и проверки документации k6, генерации типов TypeScript и подготовки заметок к релизу. CX Codex +1 4 200установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой