Сповіщення та інциденти
Правила сповіщень стежать за трафіком одного проєкту й повідомляють потрібних людей, коли він перетинає заданий вами поріг.
Створіть правило
Section titled “Створіть правило”- Відкрийте сторінку Сповіщення проєкту й створіть правило.
- Виберіть умову й заповніть те, що вона просить: поріг і вікно для більшості, ендпоінт, за яким стежити, для
CONSECUTIVE_FAILURES, лише вікно дляNO_TRAFFIC. - Виберіть важливість і канал та заповніть налаштування каналу.
- Збережіть. Типово правила перевіряються щохвилини (
ALERTS_EVALUATION_CRON).
| Умова | Спрацьовує, коли |
|---|---|
FAILURE_RATE |
Частка невдалих доставок (у відсотках) серед доставок проєкту, створених за вікно, досягає порогу або перевищує його. Підходить, коли трафік погіршується, але ще не зник. |
CONSECUTIVE_FAILURES |
Усі останні доставки на ендпоінт (стільки, скільки задає поріг) завершилися невдало. Потребує ендпоінта: правило без нього не буде збережено. Помічає ендпоінт, який зовсім перестав відповідати, раніше, ніж частка невдач, бо не залежить від обсягу трафіку. |
DLQ_THRESHOLD |
Кількість доставок проєкту, що за вікно потрапили до недоставлених повідомлень, досягає порогу або перевищує його. Саме ця умова показує, що доставки полишають, а не просто повторюють. |
LATENCY_THRESHOLD |
p95 часу відповіді за вікно по всьому проєкту (у мілісекундах) досягає порогу або перевищує його. Повільний ендпоінт вичерпує ліміт одночасних запитів і врешті вмикає circuit breaker. |
NO_TRAFFIC |
Проєкт не отримав жодної події за вікно. Вікно тут означає, яка тривалість тиші вже ненормальна, тож задавайте його довшим за найтихіший звичайний проміжок. Поріг ця умова не бере, а наступна подія закриває сповіщення. |
Правило спрацьовує, коли його умова починає виконуватися, а не під час кожної перевірки, поки вона виконується. Один збій — одне сповіщення, а не нове щохвилини.
Якщо під час перевірки виявляється, що умова більше не виконується, відкрите сповіщення закривається автоматично. Коли умова знову почне виконуватися, це буде нове сповіщення з новим повідомленням, тож закривати сповіщення вручну, щоб дізнатися про наступний збій, не потрібно.
Налаштування, від яких залежить, чи хтось відреагує
Section titled “Налаштування, від яких залежить, чи хтось відреагує”| Налаштування | Типово | Порада |
|---|---|---|
| Вікно | 5 хв | За який проміжок часу оцінюється умова. Коротке вікно за малого трафіку дає хибні спрацювання, довге за великого реагує запізно. Підбирайте його під те, скільки доставок проєкт отримує за цей час. |
| Ендпоінт | Немає | Обов’язковий для CONSECUTIVE_FAILURES. Решта умов оцінює весь проєкт. |
| Важливість | WARNING |
INFO, WARNING або CRITICAL. INFO не відкриває інциденту й не може використовувати PagerDuty чи Opsgenie. Інцидент, який відкриває правило, отримує ту саму важливість, а PagerDuty та Opsgenie отримують її як терміновість сповіщення. |
| Приглушення й відкладення | Вимкнено | Правило можна приглушити безстроково або відкласти до певного часу. На час запланованих робіт відкладайте правило, а не видаляйте його. Вимкнене правило взагалі не перевіряється. |
Канали
Section titled “Канали”Одне правило — один канал. Щоб надсилати сповіщення у два місця, створіть два правила.
| Канал | Куди надсилає | Що потрібно |
|---|---|---|
IN_APP |
Сповіщення в панелі керування. Типовий канал. | Нічого |
EMAIL |
До 10 адрес через кому. Кожна має належати учасникові організації, який її підтвердив; будь-яку іншу адресу буде відхилено під час збереження правила. | Налаштована пошта в розгортанні: EMAIL_ENABLED=true і параметри SMTP |
SLACK |
URL вхідного вебхука Slack | URL |
WEBHOOK |
Будь-яку вашу адресу, як JSON-запит POST. Так можна передати сповіщення в систему тикетів чи власну маршрутизацію. |
URL |
DISCORD |
Канал Discord, одним embed із правилом, значенням проти порогу й посиланням на інциденти проєкту (будується з APP_BASE_URL). |
URL вебхука каналу |
PAGERDUTY |
Сервіс PagerDuty, через Events API v2. Викликає чергового, коли правило спрацьовує, і знімає виклик, коли умова минає. | Routing key інтеграції Events API v2 на цьому сервісі |
OPSGENIE |
Команду в Opsgenie, через Alerts API. Створює сповіщення, коли правило спрацьовує, і закриває його, коли умова минає. | Ключ API-інтеграції цієї команди та її регіон: US або EU |
Routing key PagerDuty, API-ключ Opsgenie та URL вебхука Discord є секретами: вони зберігаються зашифрованими, API їх ніколи не повертає, а ротація ключа шифрування перешифровує їх. Щоб лишити збережений секрет під час редагування правила, залиште поле порожнім. Зміна каналу правила видаляє його.
В API правило називає канал за id і передає його налаштування в channelConfig. GET /api/v1/alert-channels повертає встановлені канали з налаштуваннями кожного у вигляді JSON Schema, де секрет позначено writeOnly; GET /api/v1/alert-conditions робить те саме для умов. Див. довідник API.
Інциденти
Section titled “Інциденти”Інцидент зводить усе, що сталося, в один запис із хронологією. Його можна відкрити вручну на сторінці Інциденти проєкту й додавати нотатки до його хронології.
Правило сповіщень з важливістю WARNING чи CRITICAL, спрацювавши, теж відкриває інцидент із назвою правила; правило INFO лише записує сповіщення. Поки цей інцидент не закрито, кожне наступне спрацювання правила додається до його хронології, а не відкриває новий. Коли перевірка виявляє, що умова більше не виконується, інцидент закривається з позначкою Закрито автоматично, а правило з каналом PagerDuty чи Opsgenie знімає виклик, який відкрило: обидва використовують інцидент як ключ дедуплікації, тож закриття потрапляє саме до того сповіщення. Коли умова знову почне виконуватися, відкриється новий інцидент.
Ручне закриття інциденту не закриває сповіщення в PagerDuty чи Opsgenie; закрийте його там.
| Статус | Що означає |
|---|---|
OPEN |
Ще ніхто не взявся |
INVESTIGATING |
Хтось над ним працює |
RESOLVED |
Закрито. Хронологія зберігається, тож наступний такий випадок можна буде порівняти з цим. |
Чого поки немає
Section titled “Чого поки немає”- Немає правила для ендпоінта, який Railhook вимкнув сам. Він створює власне сповіщення, і воно з’являється в цьому списку без правила за ним (див. Коли Railhook вимикає ендпоінт). Змінити його важливість або надіслати в канал не вийде.