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.