Налаштування 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. Типовий розклад — щотижневі ротації:
- Заходимо в On-Call Schedules → Create schedule.
- Обираємо тип: Web (UI-based), iCal (інтеграція з Google Calendar/Outlook) або API.
- Додаємо учасників ротації.
- Налаштовуємо часові слоти.
Для команди з 4 осіб із щотижневою ротацією кожен чергує тиждень по колу. Розклад автоматично враховує свята та часові зони. Експортується як iCal URL — учасники можуть підписатися у своєму календарі.
Побудова ланцюжків ескалації
Це серце системи. В інтерфейсі ланцюжок збирається як drag-and-drop конструктор:
- Крок 1: Повідомити чергового з розкладу (тайм-аут 10 хвилин).
- Крок 2: Повідомити всю команду в Slack (тайм-аут 15 хвилин).
- Крок 3: Повідомити CTO особисто (тайм-аут 5 хвилин).
- Крок 4: Повторювати кроки 1–3 до підтвердження.
Кожен крок може повідомляти конкретного користувача, групу, ставити паузу, викликати webhook або створювати інцидент у Jira.
Налаштування сповіщень користувачів
Кожен користувач налаштовує свої способи сповіщень. Приклад політики за замовчуванням:
- Slack DM — одразу.
- Очікування 5 хвилин.
- Голосовий дзвінок.
Для важливих інцидентів можна налаштувати негайний дзвінок. 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.
- Налаштувати оповіщення про зміни розкладу.
Процес роботи та гарантії
- Аудит поточного процесу чергувань та сповіщень.
- Деплой OnCall (self-hosted або підключення до Grafana Cloud).
- Налаштування розкладів, ланцюжків ескалації, інтеграцій.
- Тестування повного flow: від алерту до підтвердження та ескалації.
- Документування конфігурацій та політик.
- Навчання команди управлінню чергуваннями.
- Постпродакшн-підтримка протягом двох тижнів.
Сертифіковані інженери з досвідом роботи з Grafana, Kubernetes та хмарними провайдерами. Гарантуємо, що кожен критичний алерт дійде до відповідального, а ескалація спрацює коректно. Реалізували проекти для компаній з навантаженням до 100 000 алертів на день.
Строки та вартість
Базове налаштування (один кластер, один розклад, один ланцюжок ескалації) займає від 2 днів. Повний проект з інтеграцією кількох команд та кастомними політиками — до 5 днів. Вартість розраховується індивідуально. Зв'яжіться з нами — оцінимо ваш проект та підберемо оптимальну конфігурацію.







