API
API: heartbeat-монітори
URL для пінгів, суфікси start, fail і finish, дані запитів і створення heartbeat-моніторів через API.
URL для пінгу
У кожного heartbeat-монітора є свій URL для пінгу:
https://ping.tenium.app/h/{heartbeatId}
Автентифікації немає: секретом є сам ідентифікатор. Працюють GET і POST. У відповідь приходить 200 OK з тілом ok.
Суфікси
| URL | Значення |
|---|---|
/h/{id} | Завдання завершилося успішно |
/h/{id}/start | Завдання розпочалося (вмикає облік тривалості) |
/h/{id}/finish | Те саме, що й адреса без суфікса |
/h/{id}/fail | Завдання завершилося помилкою, інцидент відкривається одразу |
У запиті можна передати exit=<code> (у рядку запиту або в тілі) і до 10 КБ тексту, наприклад останні рядки логу. Усе це показується в інциденті.
Приклади
Cron:
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 https://ping.tenium.app/h/abc123 > /dev/null
Зі звітом про помилку:
0 3 * * * /usr/local/bin/backup.sh && curl -fsS https://ping.tenium.app/h/abc123 || curl -fsS https://ping.tenium.app/h/abc123/fail
Таймер systemd: додайте до сервісу ExecStartPost=/usr/bin/curl -fsS https://ping.tenium.app/h/abc123.
Створення heartbeat-монітора через API
POST /monitors
{ "name": "nightly-backup", "type": "heartbeat", "cron": "0 3 * * *", "timezone": "Europe/Tallinn", "graceSec": 1800 }
Або з періодом: "periodSec": 900, "graceSec": 300.
Стан
Heartbeat-монітор має стан up, поки пінги надходять вчасно, late — у період очікування (grace), і down — після його завершення. Пінг на /fail одразу переводить монітор у стан down.