- Головна
- Моніторинг
- Моніторинг API
Моніторинг API з перевіркою значень у JSON і тілом запиту
Викликайте REST-ендпоінт за розкладом з потрібним методом, тілом і обліковими даними, а потім перевіряйте код відповіді та значення всередині JSON.
- 30 моніторів безкоштовно
- Без банківської картки
- Збої підтверджуються з інших регіонів
- Amsterdam97мс200 · ok
- London142мс200 · ok
- TTFB55 мс
- JSON-шляхstatus.database
- Тілокоректний JSON
Ілюстративний приклад
Перевірте просто зараз, прямо в браузері
Без реєстрації. Моніторинг API: введіть адресу й подивіться, що саме відстежує такий монітор. Нічого з введеного не зберігається.
Один справжній запит із перевіряльника Tenium. Він іде за редиректами й читає сертифікат. Нічого не зберігається.
Публічний тест робить звичайний GET. Перевірка JSON, тіла запиту й заголовків автентифікації — це можливості збереженого монітора.
Що саме перевіряє цей монітор
Методи й тіло запиту
GET, HEAD, POST, PUT, PATCH або DELETE з тілом запиту. Тіло, що починається з { або [, автоматично йде як application/json.
Автентифікація
Basic auth доступний на всіх тарифах. Довільні заголовки на кшталт Authorization: Bearer ... потребують тарифу Pro.
Перевірка JSON
Вкажіть шлях, наприклад status.database чи items[0].id, і значення, якому він має дорівнювати. Якщо шляху немає або тіло — некоректний JSON, перевірка не пройде.
Затримка
Час відповіді записується на кожен виклик. На Pro поріг повільної відповіді сповістить, якщо середнє останніх трьох перевірок його перевищить.
Моніторинг API: як виглядає сповіщення
Та сама подія приходить листом, повідомленням у Telegram або карткою в Slack. Це текст, який надсилають канали; хост, час і числа вигадані.
api.clienta.com/v1/health
api.clienta.com/v1/health · JSON path "status.database" is "down", expected ok · confirmed from Amsterdam (AMS), London (LON)
| Error | JSON path "status.database" is "down", expected ok |
|---|---|
| Confirmed by | Amsterdam (AMS), London (LON) |
| Since | 14:02:11 UTC |
| Target | api.clienta.com/v1/health |
| Next step | Check the server / hosting panel. Acknowledge so the team knows you are on it. |
AcknowledgeOpen incident
{"status":{"api":"ok","database":"down"}} Tenium · checked from Amsterdam · 14:02 UTC
Tenium alerts
🔴 DOWN · api.clienta.com/v1/health · JSON path "status.database" is "down", expected ok · confirmed from Amsterdam (AMS), London (LON)
reply /ack or acknowledge · open incident
TTenium APP 2:02 PM
DOWN · api.clienta.com/v1/health
api.clienta.com/v1/health · JSON path "status.database" is "down", expected ok · confirmed from Amsterdam (AMS), London (LON)
- Error: JSON path "status.database" is "down", expected ok
- Confirmed by: Amsterdam (AMS), London (LON)
- Target: api.clienta.com/v1/health
Підтвердити отриманняOpen incident
Check the server / hosting panel. Acknowledge so the team knows you are on it. · checked from Amsterdam
Моніторинг API: e-mail, Discord і Google Chat працюють на всіх тарифах, Slack, Telegram, Teams і Mattermost — з тарифу Starter. SMS і голосових дзвінків немає.
Час відповіді з порогом
Кожна перевірка зберігає, скільки тривала відповідь. Моніторинг API: посуньте поріг і подивіться, коли б спрацювало сповіщення про повільну відповідь.
Як швидко ви дізнаєтеся
Оберіть тариф, щоб побачити його інтервал перевірки та скільки збій іде до вас, враховуючи підтвердження.
Моніторинг API: збій трапляється у випадковий момент між двома перевірками, тож у середньому ви чекаєте пів інтервалу, а в найгіршому випадку — повний інтервал плюс вікно підтвердження. Одного регіону з помилкою мало: інцидент відкривається, лише коли збій підтверджують обидва регіони. Інші регіони питаються одразу, на відповіді відведено до 60 секунд.
Як налаштувати моніторинг API за 30 секунд
Вкажіть адресу
Додайте URL ендпоінта й оберіть тип «JSON API», а Tenium підставить розумний таймаут і стандартні налаштування підтвердження.
Оберіть інтервал
Найшвидший інтервал: 30 с на Pro й Agency, 1 хв на Starter, 5 хв на Free. Повільніші інтервали доступні на всіх тарифах.
Додайте JSON-шлях
Оберіть, кому надсилати сповіщення. E-mail, Discord і Google Chat працюють на всіх тарифах, Slack, Telegram, Teams і Mattermost — з тарифу Starter, webhook — з Pro.
Збережіть
Перша перевірка запускається за лічені секунди. Якщо перевірка не пройде, інші регіони перевірять ще раз, перш ніж відкриється інцидент, тож один поганий маршрут вас не розбудить.
Що означає кожна помилка
Це текст, який інцидент показує в рядку «Error», типова причина й що перевірити першим.
JSONJSON path "status.database" not found
Відповідь розібрано, але поля вже немає: перейменований ключ, змінена версія API або тіло з помилкою. Відсутній шлях ламає перевірку.
Виглядає як: JSON path "status.database" not found
JSONJSON path "status.database" is "down", expected ok
Ендпоінт відповідає 200, але повідомляє, що залежність зламалась. Саме такий збій пропускають звичайні перевірки статусу.
Виглядає як: JSON path "status.database" is "down", expected ok
PARSEResponse is not valid JSON
Замість JSON прийшла HTML-сторінка помилки, повідомлення проксі або обрізане тіло. Дивіться уривок відповіді в інциденті.
Виглядає як: Response is not valid JSON
HTTP 401401 Unauthorized
Облікові дані хибні або прострочені, зазвичай токен змінили. Перевірка не проходить, доки ви не оновите заголовок Authorization (Pro).
Виглядає як: 401 Unauthorized
TIMEOUTTimeout after 10 s
API не відповів вчасно. Порівняйте із середнім часом відповіді на графіку: можливо, він погіршувався ще до цього.
Виглядає як: Timeout after 10 s
Моніторинг API: що входить у тарифи
| Free $0/міс. | Starter $7/міс. | Pro $29/міс. | Agency $59/міс. | |
|---|---|---|---|---|
| Повний набір моніторів | — | ✓ | ✓ | ✓ |
| Монітори | 30 | 100 | 300 | 1000 |
| Найшвидший інтервал | 5 хв | 1 хв | 30 с | 30 с |
| Регіони | 1 | 2 | 2 | 2 |
| Власні заголовки | — | — | ✓ | ✓ |
| Сповіщення про повільну відповідь | — | — | ✓ | ✓ |
| Ескалація на другий контакт | — | — | ✓ | ✓ |
| Сторінки статусу | 1 | 3 | 10 | Без обмежень |
Перевірки JSON/API, DNS, UDP, heartbeat, SSL і терміну дії домену та відстеження змін починаються з тарифу Starter. Перевірки HTTP(S), ключових слів, ping і портів доступні на всіх тарифах.
Інші типи моніторів
Почніть з ендпоінта, що не бреше
Найкорисніший монітор API — це не виклик найзавантаженішого ендпоінта, а виклик службового маршруту, який перевіряє важливе. Поверхневий маршрут, що повертає {"ok":true}, доводить лише те, що процес запущений. Маршрут, який звертається до бази даних і черги й повідомляє про кожну окремо, дає вам що перевіряти:
{"status":"ok","database":"ok","queue":"ok","version":"4.12.1"}. У моніторі типу JSON API ви вказуєте одне значення цього документа, наприклад database, і те, яким воно має бути. Коли з’єднання з базою обривається, маршрут усе одно відповідає 200, але JSON уже не збігається, і в інциденті видно, яке саме значення не те. Нехай маршрут буде дешевим і без автентифікації або захищеним лише секретним заголовком, щоб моніторинг не став джерелом навантаження.
Як перевіряється значення
Тіло відповіді розбирається як JSON; якщо не вдається, перевірка завершується помилкою «Response is not valid JSON». Потім обчислюється ваш шлях: крапки заходять в об’єкти, число чи [0] вибирає елемент масиву, а необов’язковий початковий $ приймається, тож status.database, $.status.database і items[0].id — усе дійсні записи. Відсутній шлях дає помилку «JSON path not found». Якщо ви задали ще й очікуване значення, фактичне має йому дорівнювати. Рядки порівнюються без урахування регістру, числа й булеві значення — за текстовим записом (true, 42), а об’єкти й масиви — як JSON.
Це свідомо лише рівність. Операторів «менше» чи «містить» поки немає. Якщо потрібен поріг, нехай API саме обчислить вердикт і віддасть його значенням: queue_ok:true перевіряти легше, ніж queue_depth<100. Якщо вказати шлях без очікуваного значення, перевірка просто вимагатиме, щоб шлях існував.
Методи, тіла запитів і облікові дані
Можна використовувати GET, HEAD, POST, PUT, PATCH і DELETE. Тіло запиту надсилається для всіх методів, крім GET і HEAD, а якщо воно починається з { або [ і тип вмісту ви не задали, піде як application/json. Автентифікація має два рівні. Basic auth — це поле в розширених налаштуваннях на всіх тарифах. Bearer-токени та API-ключі в заголовках потребують тарифу Pro, бо власні заголовки — функція Pro: редактор так і каже, а не відкидає їх мовчки.
Обережно з методами, що змінюють дані. POST щохвилини — це 1440 записів на добу, а монітор, що створює запис, потребує плану очищення. Віддавайте перевагу ідемпотентним читанням, окремому токену лише для читання або ендпоінту, створеному для таких перевірок. Ніколи не спрямовуйте монітор з DELETE на робочі дані.
Коли «неправильний» статус очікуємо навмисно
Поле очікуваного статусу — це перевірка контракту не менше, ніж перевірка доступності. Виклик захищеного ендпоінта без токена з очікуванням 401 доводить, що шар автентифікації живий і не пускає всіх підряд. Очікування 404 на шляху, який має лишатися прихованим, — дешевий регресійний тест на зміну маршрутизації. Для публічного API з обмеженням частоти значення 200,429 не дає сповіщенню про обмежену відповідь розбудити вас, але збої 500 і 502 усе одно ловить. Діапазони й окремі коди в одному списку можна поєднувати.
Затримка й поріг повільної відповіді
Кожен виклик зберігає час відповіді. На Pro й Agency задайте поріг повільної відповіді в мілісекундах, і Tenium порівнюватиме його із середнім останніх трьох перевірок, відкриваючи у разі перевищення інцидент про погіршення, а не про недоступність. Усереднення трьох значень не дає реагувати на один холодний старт, але при інтервалі в одну хвилину регрес помітно за кілька хвилин. Оскільки середнє береться з перевірок, що можуть іти з різних регіонів, у порозі варто врахувати додаткову відстань до найдальшого перевіряльника.
Обмеження, про які варто знати
Кожен монітор — це один запит. Ланцюжків (спершу вхід, потім виклик із токеном), перевірки схеми відповіді й перевірки заголовків немає. Тіло читається приблизно до 1 МБ без стиснення, тож дуже великий ендпоінт зі списком — поганий вибір для монітора. Перевірка JSON починається з тарифу Starter за $7 на місяць; на Free ту саму адресу можна відстежувати як звичайний монітор сайту за статусом і швидкістю. Якщо ваш API стоїть за WAF, додайте адреси перевіряльників до білого списку (allow-list), щоб сторінка перевірки не виглядала як помилка перевірки значення.
Запитання: моніторинг API
Який синтаксис JSON-шляхів підтримується?
Крапкова нотація з необов’язковими індексами в дужках: status.database, items[0].id або $.data.count. Ключі з крапками чи пробілами адресувати не можна, тож за потреби віддайте простий псевдонім.
Чи можна перевірити, що число менше за ліміт?
Безпосередньо ні, бо порівняння — це рівність. Нехай ваш ендпоінт повертає булеве значення або слово-статус, у якому рішення вже враховано, і перевіряйте його.
Чи безпечні мої токени в моніторі?
Використовуйте токен лише для читання, створений саме для моніторингу, і міняйте його, як будь-які облікові дані. Тариф Pro приймає будь-які заголовки запиту, тож обмежте токен єдиним маршрутом, який перевіряєте.
Чи може один монітор викликати кілька ендпоінтів поспіль?
Ні. Створіть окремий монітор на кожен ендпоінт. Ланцюжки запитів і багатокрокові сценарії поки не входять у продукт.
Почніть моніторинг API безкоштовно
30 моніторів на тарифі Free, без банківської картки, а збої підтверджуються з інших регіонів (зараз працюють 2 регіони). Переходьте на вищий тариф, коли клієнтів побільшає.