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

alerting-irm — скилл для Claude Code: алерты и установка

Настраивает Grafana Alerting, IRM и SLO: от правил и маршрутизации до дежурств и эскалаций. Пригодится для YAML- и API-конфигурации.

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

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

Скилл помогает собрать цепочку оповещений в Grafana: создать правила для Grafana, Prometheus/Mimir или Loki, настроить contact points для Slack, PagerDuty, email и webhook, а затем связать их с иерархией notification policies. Он также работает с silences, mute timings, расписаниями дежурств, escalation chains и интеграциями IRM.

Для SLO он предлагает создавать конфигурацию через UI или API и проверять multi-window burn-rate alerts. Внутри есть примеры YAML для contact_points.yaml, notification_policies.yaml и других файлов каталога provisioning/alerting/, а также команды curl для API. Для API-запросов нужен Bearer-токен Grafana, а для отправки в Slack или PagerDuty — данные соответствующего receiver.

Для маршрутизации в IRM потребуется создать интеграцию типа Grafana Alerting webhook и использовать её URL в webhook contact point. Это повод проверить matchers до запуска: от них зависит, куда попадёт тестовое оповещение.

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

  • настроить правила Grafana, Prometheus/Mimir или Loki
  • направить критичные алерты в PagerDuty или Slack
  • проверить, почему уведомление не доходит до receiver
  • задать silences и повторяющиеся mute timings
  • создать SLO с multi-window burn-rate alerts

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

  • Настрой в Grafana правило для высокого уровня ошибок и отправь critical-уведомления в PagerDuty.
  • Создай notification policy для team = platform, а критичные алерты направь в PagerDuty.
  • Проверь через API, почему тестовый alert не появился в нужном receiver.

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

1Через Skills CLI (Vercel)

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

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

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

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

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

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

loki-label-analyzer Разбирает схему меток Grafana Loki: где растёт кардинальность, какие метки мешают запросам и что с ними делать. CX Codex +1 6 300установок opentelemetry Скилл помогает подключить OpenTelemetry к приложению и отправить метрики, логи и трейсы в Grafana Cloud или свой Mimir, Loki, Tempo. CX Codex +1 6 100установок grafana-oss Скилл помогает агенту провизионить дашборды и датасорсы Grafana OSS из YAML, писать JSON панелей и проверять каждый шаг через API. CX Codex +1 5 600установок prometheus Справочник по PromQL, правилам алертов Prometheus и маршрутизации Alertmanager. Помогает генерировать метрики, алерты и правила записи. CX Codex +1 5 200установок assistant-mcp Помогает подключить ИИ-агентов к Grafana Cloud через MCP-сервер mcp-grafana. Пригодится для чтения метрик, поиска дашбордов и проверки алертов прямо в кодовой базе. CX Codex +1 5 000установок alloy Помогает писать и проверять конфиги Grafana Alloy: сбор метрик, логов, трейсов и профилей в один пайплайн. CX Codex +1 5 000установок tempo Скилл для развёртывания Grafana Tempo и написания запросов TraceQL: от локального Docker Compose до Helm в Kubernetes. CX Codex +1 4 900установок pyroscope Скилл для непрерывного профилирования приложений через Grafana Pyroscope: флейм-графы CPU, памяти и аллокаций прямо в диалоге с агентом. CX Codex +1 4 700установок

Похожие

alerting-oncall devops-skills Помогает настроить правила алертов в Prometheus, ротацию дежурств в PagerDuty и маршрутизацию уведомлений в Slack. CX Codex +1 336установок dt-alerting Dynatrace Скилл ведёт по всему циклу алертинга в Dynatrace: выбор детектора аномалий, хранение событий в Grail, группировка проблем и маршрутизация уведомлений. CX Codex +1 1 800установок on-call-handoff-patterns Seth Hobson Скилл помогает передавать дежурство между инженерами: фиксирует инциденты, расследования и изменения. Нужен для смен, онбординга и передачи инцидента. CX Codex 10 300установок sentry-create-alert getsentry Создаёт алерты и автоматизации в Sentry через workflow engine API. Помогает настроить оповещения в Slack, PagerDuty или на почту прямо из диалога с агентом. CX Codex +1 4 100установок slo-implementation Seth Hobson Помогает задать измеримые цели надёжности, считать запас ошибок и настраивать оповещения. Пригодится, когда нужно отслеживать доступность и задержку сервиса. CX Codex 10 400установок monitoring-observability ahmedasmar Скилл для настройки мониторинга и наблюдаемости: стратегия метрик, алерты, дашборды, SLO и разбор инцидентов. CX Codex +1 493установок

Рядом в теме «DevOps и инфраструктура»

Всё по теме «DevOps и инфраструктура» →

Вопросы о alerting-irm

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

Выполните npx skills add grafana/skills --skill alerting-irm -a claude-code, затем повторите npx skills add grafana/skills --skill alerting-irm -a claude-code. Файл скилла находится в ~/.claude/skills/alerting-irm/SKILL.md.

Что делает alerting-irm?

Скилл настраивает Grafana Alerting, IRM и SLO: правила, contact points, маршрутизацию, silences, дежурства и эскалации. Он также помогает проверять состояние и доставку оповещений через API.

Что нужно для настройки уведомлений через API?

Для запросов к API Grafana нужен Bearer-токен. Для Slack, PagerDuty или webhook понадобятся данные соответствующего receiver, например integration key или URL.

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

SKILL.md · Apache-2.0
---
name: alerting-irm
license: Apache-2.0
description: Configure Grafana Alerting, Incident Response Management (IRM), and SLOs end-to-end — provisions Grafana-managed and data-source-managed alert rules, contact points (Slack/PagerDuty/email/webhook), notification policies with hierarchical matchers, silences, mute timings, on-call schedules and escalation chains, incident-management integrations, and SLOs with multi-window burn-rate alerts. Use when configuring alerts, debugging notification routing, setting up on-call rotations, declaring or managing incidents, defining SLOs, provisioning alerting via YAML or API, picking matchers for a notification policy, building a PagerDuty/Slack webhook receiver, or troubleshooting why an alert isn't firing — even when the user says "page me on errors", "alert me when X happens", "route this to the platform team", or "set up an SLO" without naming Alerting or IRM.
---

# Grafana Alerting & IRM

> **Docs**: https://grafana.com/docs/grafana/latest/alerting.md

## Common Workflows

### Provisioning a new alert end-to-end

1. **Create contact points** (where notifications go):
   ```bash
   curl -X POST https://grafana.example.com/api/v1/provisioning/contact-points \
     -H 'Authorization: Bearer <token>' -H 'Content-Type: application/json' \
     -d @contact-points.json
   ```
   Verify:
   ```bash
   curl https://grafana.example.com/api/v1/provisioning/contact-points \
     -H 'Authorization: Bearer <token>' | jq '.[].name'
   ```

2. **Add notification policies** (which alerts go where) — see [§ Notification policies](#notification-policies) below for the matchers pattern.

3. **Write the alert rule** — pick the type:
   - Grafana-managed → see [references/alerting.md § Grafana-managed alert rule](references/alerting.md#grafana-managed-alert-rule-yaml-provisioning)
   - Prometheus/Mimir ruler → see [references/alerting.md § Prometheus / Mimir alert rule](references/alerting.md#prometheus--mimir-alert-rule-ruler)
   - Loki LogQL → see [references/alerting.md § Loki alert rule](references/alerting.md#loki-alert-rule-logql)

4. **Verify routing** before going live:
   ```bash
   # Force-fire a test alert from the rule's UI, then check Alertmanager's view
   curl https://grafana.example.com/api/alertmanager/grafana/api/v2/alerts \
     -H 'Authorization: Bearer <token>' | jq '.[] | {alertname: .labels.alertname, receiver: .receivers}'
   ```
   The expected receiver should appear. If the wrong receiver appears, re-check the policy's matchers.

### Routing alerts to IRM / on-call

1. In IRM, create an Integration of type "Grafana Alerting webhook" → copy the integration URL
2. Add a webhook contact point in Grafana Alerting pointing at that URL (full YAML in [references/irm.md § Routing](references/irm.md#routing-from-grafana-alerting-to-irm))
3. Add a notification policy matcher routing the right severity to the new contact point
4. Verify: trigger a test alert; it should appear in IRM within ~30s. Full debug procedure in [references/irm.md § Verifying the IRM integration](references/irm.md#verifying-the-irm-integration).

### Defining an SLO

1. Create the SLO via UI or API → Grafana auto-generates recording rules, dashboards, and burn-rate alerts (the generated YAML is in [references/slo.md](references/slo.md))
2. **Use multi-window burn-rate alerts**, not single-window — see [references/slo.md § Multi-window burn-rate alerts](references/slo.md#multi-window-burn-rate-alerts-recommended) for why single-window fires on noise
3. Verify with the 4-step pattern in [references/slo.md § Validating SLO config](references/slo.md#validating-slo-config)

## Contact Points (YAML provisioning)

```yaml
# provisioning/alerting/contact_points.yaml
apiVersion: 1
contactPoints:
  - orgId: 1
    name: pagerduty-critical
    receivers:
      - uid: pd-receiver
        type: pagerduty
        settings:
          integrationKey: YOUR_PAGERDUTY_KEY
          severity: critical

  - orgId: 1
    name: slack-alerts
    receivers:
      - uid: slack-receiver
        type: slack
        settings:
          url: https://hooks.slack.com/services/YOUR/WEBHOOK/URL
          channel: '#alerts'
```

For email, webhook, Teams, Telegram, OnCall, and other receiver types, see [references/alerting.md § Contact point receiver types](references/alerting.md#contact-point-receiver-types).

## Notification policies

Hierarchical routing tree with label matchers:

```yaml
# provisioning/alerting/notification_policies.yaml
apiVersion: 1
policies:
  - orgId: 1
    receiver: default-receiver
    group_by: ['alertname', 'cluster', 'service']
    group_wait: 30s
    group_interval: 5m
    repeat_interval: 12h
    routes:
      # Critical alerts → PagerDuty
      - receiver: pagerduty-critical
        matchers:
          - severity = critical
        group_wait: 10s
        repeat_interval: 4h

      # Platform team → Slack, but page on critical
      - receiver: slack-alerts
        matchers:
          - team = platform
        routes:
          - receiver: pagerduty-critical
            matchers:
              - severity = critical

      # Everything else → email
      - receiver: email-alerts
        matchers:
          - severity =~ "warning|info"
```

## Silences

Suppress notifications for matching alerts without stopping evaluation:

```bash
curl -X POST https://grafana.example.com/api/alertmanager/grafana/api/v2/silences \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "matchers": [
      {"name": "alertname", "value": "HighErrorRate", "isRegex": false},
      {"name": "env", "value": "staging", "isRegex": false}
    ],
    "startsAt": "2024-01-01T00:00:00Z",
    "endsAt": "2024-01-01T02:00:00Z",
    "comment": "Maintenance window",
    "createdBy": "admin"
  }'

# Verify it was created
curl https://grafana.example.com/api/alertmanager/grafana/api/v2/silences \
  -H 'Authorization: Bearer <token>' | jq '.[] | select(.status.state == "active")'
```

## Alert rule states

| State | Description |
|-------|-------------|
| **Normal** | Condition not met |
| **Pending** | Condition met, waiting for `for` duration |
| **Firing** | Condition met for full `for` duration |
| **NoData** | Query returned no data |
| **Error** | Query/evaluation error |
| **Recovering** | Was firing, condition no longer met |

## Provisioning directory layout

```
provisioning/alerting/
├── alert_rules.yaml          # Alert and recording rules
├── contact_points.yaml       # Notification destinations
├── notification_policies.yaml  # Routing tree
├── templates.yaml            # Message templates
└── mute_timings.yaml         # Recurring mute windows
```

## API provisioning (keeps UI editable)

Add `X-Disable-Provenance: true` to keep resources editable in the UI after API provisioning:

```bash
curl -X PUT https://grafana.example.com/api/v1/provisioning/policies \
  -H 'Authorization: Bearer <token>' \
  -H 'X-Disable-Provenance: true' \
  -H 'Content-Type: application/json' \
  -d @policy.json

curl -X POST https://grafana.example.com/api/v1/provisioning/alert-rules \
  -H 'Authorization: Bearer <token>' \
  -H 'X-Disable-Provenance: true' \
  -H 'Content-Type: application/json' \
  -d @rule.json
```

## References

- [`references/alerting.md`](references/alerting.md) — full alert rule YAML (Grafana-managed / Prometheus / Loki) + notification templates
- [`references/slo.md`](references/slo.md) — generated SLO recording rules + multi-window burn-rate alert pattern + validation steps
- [`references/irm.md`](references/irm.md) — IRM capabilities, integration sources, Alerting → IRM routing + verification + common failure modes

© grafana · Apache-2.0 · grafana/skills

Смотрите также

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

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