Настройка Grafana OnCall для дежурств и эскалации инцидентов

Когда ночью падает прод, а алерты тонут в общем чате, теряется время и нервы. Мы настраиваем Grafana OnCall, чтобы дежурства и эскалация инцидентов работали автоматически и без сбоев. Наша команда берёт на себя весь цикл — от аудита до внедрения и поддержки, обеспечивая надёжное решение, которое масштабируется вместе с вашим бизнесом.
Часто задаваемые вопросы

Представьте: в три часа ночи падает прод. Алерты уходят в общий Slack-канал, где 15 человек. У каждого включен Do Not Disturb, кто-то спит, кто-то в отпуске. В итоге через час выясняется, что дежурный — тот, кто вчера был, а сегодня смена уже другая. Такая ситуация — не редкость, если настройка дежурств не автоматизирована. Grafana OnCall — это система управления дежурствами, которая берет на себя ротацию расписаний, эскалацию инцидентов и гарантирует, что каждый критический алерт дойдет до ответственного. Мы, наша команда, внедрили OnCall в 50+ проектах и знаем, как настроить его под любую инфраструктуру — от одного сервиса до тысячи. С OnCall вы перестаете терять алерты и забывать, кто дежурит. Система сама назначает ответственного, принудительно эскалирует при отсутствии ответа и автоматически переключает ротации. Свяжитесь с нами — мы подберем конфигурацию под ваш масштаб и настроим под ключ.

Что такое Grafana OnCall?

Grafana OnCall — это open-source система для управления дежурствами, интегрированная в экосистему Grafana. Она доступна как managed-сервис в Grafana Cloud, так и для самостоятельного развертывания (self-hosted) через Docker или Kubernetes. Исходный код — на GitHub. Grafana OnCall GitHub repository

Основные сущности: Integration, Escalation Chain, On-Call Schedule и Notification Policy. Каждая энтити настраивается через веб-интерфейс или API.

Как Grafana OnCall ускоряет реакцию на инциденты?

Правильно настроенная эскалация сокращает время реакции с 15–20 минут до 2–3 минут — это в 5 раз быстрее, чем ручные процессы. Как это работает? Алерт приходит дежурному, если он не подтвердил получение в течение 5 минут, эскалация переходит на следующего по цепочке. Еще через 10 минут — всей команде в Slack, через 15 — CTO по телефону. Каждый шаг настраивается отдельно.

Сравним каналы уведомлений по скорости и надежности:

Канал Время доставки Надёжность Проходит Do Not Disturb
Slack DM 1–2 сек Средняя Нет
Telegram 1–2 сек Средняя Нет
SMS 5–30 сек Высокая Да
Голосовой звонок 10–20 сек Очень высокая Да
Push-уведомление (моб. приложение) 2–5 сек Очень высокая Да (Critical Alert)

Голосовые звонки — самый надежный канал: они доходят в 99% случаев, даже если на телефоне включен беззвучный режим.

Развертывание и настройка

Self-hosted деплой

Для self-hosted используем Docker Compose. Пример конфигурации:

services:
  oncall:
    image: grafana/oncall:latest
    ports:
      - "8080:8080"
    environment:
      DATABASE_TYPE: postgresql
      DATABASE_HOST: postgres
      DATABASE_NAME: oncall
      DATABASE_USER: oncall
      DATABASE_PASSWORD: secret
      BROKER_TYPE: redis
      REDIS_URI: redis://redis:6379/0
      SECRET_KEY: "change-me-in-production"
      GRAFANA_API_URL: http://grafana:3000
      GRAFANA_TOKEN: "glsa_serviceaccount_token"
    depends_on:
      - postgres
      - redis
  celery:
    image: grafana/oncall:latest
    command: celery
    environment: *oncall-env
    depends_on:
      - oncall

Celery — обязательный компонент: обрабатывает асинхронные задачи (отправка уведомлений, escalation timers). После развертывания подключите плагин в Grafana: Administration → Plugins → Grafana OnCall → Enable.

Сравним self-hosted и Grafana Cloud:

Критерий Self-hosted Grafana Cloud
Контроль данных Полный Ограниченный
Обслуживание Вы сами Вендор
Стоимость Только ресурсы инфраструктуры По подписке
SLA Нет Да, 99.9%

Создание расписания дежурств

Расписания настраиваются через UI или API. Типовое расписание — недельные ротации:

  1. Заходим в On-Call Schedules → Create schedule.
  2. Выбираем тип: Web (UI-based), iCal (интеграция с Google Calendar/Outlook) или API.
  3. Добавляем участников ротации.
  4. Настраиваем временные слоты.

Для команды из 4 человек с недельной ротацией каждый дежурит неделю по кругу. Расписание автоматически учитывает праздники и временные зоны. Экспортируется как iCal URL — участники могут подписаться в своем календаре.

Построение цепочек эскалации

Это сердце системы. В интерфейсе цепочка собирается как drag-and-drop конструктор:

  • Шаг 1: Уведомить дежурного из расписания (таймаут 10 минут).
  • Шаг 2: Уведомить всю команду в Slack (таймаут 15 минут).
  • Шаг 3: Уведомить CTO лично (таймаут 5 минут).
  • Шаг 4: Повторять шаги 1–3 до подтверждения.

Каждый шаг может уведомлять конкретного пользователя, группу, ставить паузу, вызывать webhook или создавать инцидент в Jira.

Настройка уведомлений пользователей

Каждый пользователь настраивает свои способы уведомлений. Пример политики по умолчанию:

  1. Slack DM — сразу.
  2. Ожидание 5 минут.
  3. Голосовой звонок.

Для важных инцидентов можно настроить немедленный звонок. Grafana OnCall поддерживает Slack, Telegram, Email, SMS, голосовые звонки (через Twilio или AWS SNS). Для ночных дежурств настоятельно рекомендуем голосовые — они проходят через Do Not Disturb.

Мобильное приложение (iOS/Android) отправляет push-уведомления Critical Alert, которые также игнорируют беззвучный режим.

Интеграция с Grafana Alerting

Создайте Contact Point типа Grafana OnCall:

Name: oncall-backend
Integration: Grafana OnCall
OnCall integration URL: http://oncall:8080/integrations/v1/grafana_alerting/abc123/

Настройте роутинг в Grafana Alerting по меткам:

- receiver: oncall-backend matchers: - team = backend - severity =~ critical|high 

Теперь все критические алерты от backend-сервисов автоматически идут в OnCall и запускают цепочку эскалации.

Что входит в работу?

Мы предоставляем полный комплект результатов:

  • Документация по развертыванию и конфигурации (включая схемы эскалации и политики уведомлений).
  • Доступы к инфраструктуре (self-hosted или Grafana Cloud) с ролевой моделью.
  • Обучение команды: как управлять расписаниями, цепочками и уведомлениями.
  • Постпродакшн-поддержка 2 недели для корректировок.
Пример чек-листа проверки
  • Проверить, что все дежурные настроили уведомления.
  • Протестировать эскалацию в нерабочее время.
  • Убедиться, что алерты без меток не попадают в OnCall.
  • Настроить оповещения об изменениях расписания.

Процесс работы и гарантии

  1. Аудит текущего процесса дежурств и уведомлений.
  2. Деплой OnCall (self-hosted или подключение к Grafana Cloud).
  3. Настройка расписаний, цепочек эскалации, интеграций.
  4. Тестирование полного flow: от алерта до подтверждения и эскалации.
  5. Документирование конфигураций и политик.
  6. Обучение команды управлению дежурствами.
  7. Постпродакшн-поддержка в течение двух недель.

Сертифицированные инженеры с опытом работы с Grafana, Kubernetes и облачными провайдерами. Гарантируем, что каждый критический алерт дойдет до ответственного, а эскалация сработает корректно. Реализовали проекты для компаний с нагрузкой до 100 000 алертов в день.

Сроки и стоимость

Базовая настройка (один кластер, одно расписание, одна цепочка эскалации) занимает от 2 дней. Полный проект с интеграцией нескольких команд и кастомными политиками — до 5 дней. Стоимость рассчитывается индивидуально. Получите консультацию — мы оценим ваш проект и подберем оптимальную конфигурацию.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142