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.