Типы сигналов
Начало, успех, падение и произвольный лог — что и когда отправлять.
Адрес пинга принимает необязательный суффикс. Он и определяет смысл сигнала.
https://ping.tickwatch.dev/ВАШ-КЛЮЧ # успех
https://ping.tickwatch.dev/ВАШ-КЛЮЧ/start # задача началась
https://ping.tickwatch.dev/ВАШ-КЛЮЧ/fail # задача упала
https://ping.tickwatch.dev/ВАШ-КЛЮЧ/0 # успех, код возврата 0
https://ping.tickwatch.dev/ВАШ-КЛЮЧ/17 # падение, код возврата 17
https://ping.tickwatch.dev/ВАШ-КЛЮЧ/log # просто лог, состояние не меняетсяЗачем сигнал начала
Без него мы знаем только, что задача не отчиталась, но не знаем почему: не запустилась вовсе или запустилась и висит третий час. Сигнал начала разводит эти случаи и включает контроль максимальной длительности.
Тело запроса
Всё, что вы отправите телом POST, сохранится как лог запуска и попадёт в оповещение о падении. Тело обрезается по лимиту тарифа, так что слать многомегабайтный вывод целиком смысла нет — обычно достаточно последних строк.
/path/to/job.sh 2>&1 | tail -c 10000 | curl -fsS --data-binary @- https://ping.tickwatch.dev/ВАШ-КЛЮЧПараллельные запуски
Если одна задача может идти в несколько потоков, добавьте параметр rid с уникальным идентификатором запуска — тогда начало и конец свяжутся правильно, а не вперемешку.
RID=$(uuidgen)
curl -fsS "https://ping.tickwatch.dev/ВАШ-КЛЮЧ/start?rid=$RID"
/path/to/job.sh
curl -fsS "https://ping.tickwatch.dev/ВАШ-КЛЮЧ?rid=$RID"