Перевірки ззовні, що не кричать «вовки»
Інцидент відкривається, коли незалежні регіони згодні, ескалується, якщо ніхто не відповів, і мовчить під час ваших деплоїв.
Один інцидент так, як його бачить ваш пейджер
Збій в одному регіоні — це підозра, а не інцидент. Підтвердьте отримання, і кроки ескалації зупиняться.
- shop.clienta.com не відповів із Франкфурта: підозра, перевіряємо повторно
- Підтверджено 2 з 2 регіонами: інцидент відкрито
- Сповіщення в Telegram #oncall
- api.clienta.com не відповів лише з одного регіону: не підтверджено, сповіщення немає, лишилось у журналі як локальний збій
ci-nightly-build пінг отримано 3 хв томуЕскалація Приклад політики
- одразуTelegram #oncall
- +1 хвSlack #sre
- +5 хвPagerDuty (Agency)
Ілюстративний макет
Три речі, які тут важливі
Підтверджено, перш ніж будити
Збій стає інцидентом, лише коли його підтверджують обидва регіони. Один нестабільний маршрут лишається в історії локальним збоєм.
Ескалація за вашим графіком чергувань
Спершу Telegram, потім Slack і e-mail із затримкою, підписані webhook — з Pro, PagerDuty — на Agency. Підтвердьте де завгодно, і решта кроків зупиниться.
Heartbeat для CI і cron
Один curl наприкінці завдання. Пропущений пінг або виклик /fail відкриває інцидент. Heartbeat починається зі Starter (20); на Agency — 500.
Сповіщення приходять туди, де ви вже працюєте
E-mail, Discord і Google Chat — на всіх тарифах; Slack, Telegram, Teams і Mattermost — з тарифу Starter; webhook — з Pro; Zapier і PagerDuty — на Agency. SMS і голосових дзвінків немає.
- Slack
- Telegram
- PagerDuty
- Microsoft Teams
- Mattermost
- Discord
- Webhook
Ніч деплою від початку до кінця
Ілюстративний сценарій, а не історія клієнта
- Пайплайн через API ставить на паузу потрібні монітори й викочує реліз.
- Він запускає одну перевірку ззовні, бачить успіх і знімає монітори з паузи.
- Один регіон на 40 секунд втрачає маршрут. Нікого не будять: збій не підтвердили.
- Нічне завдання не прислало пінг. Інцидент heartbeat відкривається одразу, а Telegram несе останні рядки логу.
За всю ніч один дзвінок, і справжній.
Скільки коштує вам година простою?
Груба чесна цифра, щоб порівняти її з ціною монітора. Рахується у вашому браузері, нічого нікуди не надсилається.
Для порівняння: тариф Starter коштує $7 на місяць. Виторг — це не всі витрати (час підтримки, реклама, що продовжує йти, довіра), тож вважайте цифру нижньою межею.
Хибні тривоги — проблема чергувань, а не моніторингу
Збій в одній точці перевірки Tenium вважає гіпотезою. Регіон, що не отримав відповіді, позначає монітор підозрілим і просить інші регіони негайно перевірити ще раз. Інцидент відкривається, лише коли обидва регіони повідомляють про збій у вікні підтвердження, яке за замовчуванням триває 60 секунд. Відновлення підтверджується так само, тож сервіс, що то працює, то ні, дає один інцидент із переходами всередині, а не низку повідомлень.
Щоб це було чесно: монітор, який ви навмисно прив’язали до одного регіону, пропускає підтвердження й сповіщає з першого збою, і інтерфейс це чітко позначає.
Ескалація, heartbeat і API
Політики ескалації з’являються на Pro ($29): Telegram одразу, e-mail основному чергуванню за кілька хвилин без підтвердження, потім другий контакт. PagerDuty і Zapier — на Agency ($59). Heartbeat-монітор працює навпаки: ваше завдання викликає Tenium, а якщо виклику немає до дедлайну або завдання кличе /fail, відкривається інцидент.
Щоб деплой не будив черговий, поставте монітори на паузу через API (POST /monitors/{id}/pause), викотіть реліз, запустіть POST /monitors/{id}/check і зніміть паузу. Для запису потрібен ключ із правом запису на Pro або Agency.
Heartbeat для cron, CI і пакетних завдань
Найтихіше ламаються завдання, за якими ніхто не стежить: нічні резервні копії, продовження сертифікатів, чистильники черг, вивантаження даних, запланований пайплайн, у який ніхто не заглядав від часів міграції. Heartbeat-монітор змінює напрямок: не Tenium викликає ваш сервіс, а ваше завдання викликає Tenium, і якщо виклику немає до дедлайну, монітор переходить у стан збою.
- Додайте до завдання один запит:
curl -fsS -m 10 https://ping.tenium.app/h/abc123 > /dev/null. - Щоб міряти тривалість, викликайте адресу із суфіксом
/startперед завданням і звичайну після нього; завдання, що стартувало й не завершилося, теж позначається. - Викликайте
/failв обробнику помилок, щоб одразу відкрити інцидент із хвостом логу до 10 КБ. - Задайте період і додатковий час або cron-вираз із часовим поясом, щоб нічне завдання о 03:00 не оцінювалося за арифметикою літнього часу.
Heartbeat починається зі Starter, кількість залежить від тарифу: 20 на Starter, 100 на Pro і 500 на Agency. Усі суфікси та формати запитів описано в розділах моніторинг cron-завдань і API: heartbeat-монітори.
Деплої, обслуговування й API
Заплановані роботи не повинні псувати аптайм і будити людей. Вікна обслуговування, разові чи повторювані, задають у застосунку з часовим поясом: вони приглушують сповіщення й виключають цей період зі звітного аптайму. Для розгортань із пайплайна REST API дає POST /monitors/{id}/pause і /resume: завдання деплою ставить потрібні монітори на паузу, викочує реліз, запускає POST /monitors/{id}/check, щоб перевірити ззовні, і знімає монітори з паузи. Для запису потрібен ключ із правом запису на Pro або Agency; ліміти — 120 запитів на запис за хвилину на ключ і одна негайна перевірка на монітор раз на десять секунд. Ендпоінти й приклади curl є в огляді API, а вікна обслуговування описують заплановані роботи.
Чітко про межі: Tenium не збирає внутрішніх метрик, не проходить сценарії в браузері й не замінює трасування. Він перевіряє ззовні те, що побачив би клієнт, — до 30 с на Pro і Agency — і повідомляє потрібній людині, коли докази вже надійні.
Webhook у вашу власну інфраструктуру
Підписані webhook на Pro надсилають події incident.opened, incident.acknowledged і incident.resolved, а також події про термін дії та час відповіді, у вигляді JSON із підписом HMAC-SHA256 над міткою часу й тілом. Перевіряйте підпис і відхиляйте все старше за п’ять хвилин — і ви зможете спрямовувати події в чат-ops, чергу тікетів чи автоматизацію ранбуків, не довіряючи мережевому шляху. Невдалі доставки повторюються п’ять разів приблизно за півгодини. Формати даних — у документації з webhook.
Запитання DevOps
Чи розбудить чергового один нестабільний маршрут?
Ні. Один регіон лише позначає монітор підозрілим, а інцидент відкривається, коли обидва регіони підтверджують збій. Поодинокий збій лишається в історії як локальний.
Чи можна отримувати виклики через PagerDuty?
Так, на тарифі Agency ($59). На Pro ($29) є політики ескалації з Telegram, Slack і e-mail та підписані webhook.
Як не допустити, щоб деплой спричиняв хибні виклики?
Заплануйте вікно обслуговування в застосунку для відомих робіт або поставте відповідні монітори на паузу через API перед розгортанням і зніміть із паузи після нього. Вікна приглушують сповіщення й виключають цей час із даних про аптайм.
Скільки зусиль вимагає налаштування heartbeat?
Один curl наприкінці завдання. Монітор чекає пінг до дедлайну, який ви задали; якщо його немає або завдання викликало адресу fail, відкривається інцидент. Heartbeat починається зі Starter (20), а на Agency їх 500.
Чи заміна це Prometheus або Datadog?
Ні. Tenium відповідає на зовнішнє запитання, чи доступний і чи правильно працює ваш сервіс з інтернету. Внутрішні метрики, трейси й логи лишаються в інструментах, створених для цього.
Спробуйте на одному «галасливому» сервісі
Оберіть монітор, який будить вас даремно, і поставте його за підтвердження з кількох регіонів. Тариф Free, без картки.