Налаштування Grafana OnCall для чергувань та ескалації

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

Налаштування Grafana OnCall для чергувань та ескалації

Уявіть: о третій ночі падає прод. Алерти летять у загальний Slack-канал, де 15 людей. У кожного ввімкнено Do Not Disturb, хтось спить, хтось у відпустці. У результаті через годину з'ясовується, що черговий — той, хто був учора, а сьогодні зміна вже інша. Така ситуація — не рідкість, якщо налаштування чергувань не автоматизоване. Grafana OnCall — це система управління чергуваннями, яка бере на себе ротацію розкладів, ескалацію інцидентів і гарантує, що кожен критичний алерт дійде до відповідального. Ми, команда, маємо понад 10 років досвіду в DevOps та моніторингу, впровадили OnCall у 40+ проектах і знаємо, як налаштувати його під будь-яку інфраструктуру — від одного сервісу до тисячі. З 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. Кожна entity налаштовується через веб-інтерфейс або 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