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.