Отсутствие сигнала и есть сигнал
Обычный мониторинг отвечает на вопрос «жив ли сервер». Про ночной бэкап, который перестал отрабатывать три недели назад, он не скажет ничего — это выясняется при попытке восстановиться.
Pulse смотрит с другой стороны. У каждой проверки свой URL. Задача дёргает его после успешного прогона. Не дёрнула в срок плюс отсрочку — проверка падает и уходит уведомление в Telegram или на вебхук.
Что внутри
Два вида расписания
Простой период («каждые 24 часа») или cron-выражение. Отсрочка отделяет задачу, которая идёт дольше обычного, от той, что не завершилась.
Старт, успех, сбой
Сигнал /start измеряет длительность прогона, /fail сообщает об ошибке явно, не дожидаясь истечения срока.
Вывод задачи в ленте
Лог скрипта уходит в теле запроса и показывается рядом с событием — не нужно лезть на сервер за причиной.
Консоль вместо сетки
Главный экран отвечает на вопрос «что только что произошло»: лента событий справа, проверки слева как фильтры.
Уведомления
Telegram и произвольные вебхуки. Канал самодостаточен: токен и адрес хранятся вместе, без глобальных настроек.
Один бинарник
Go и SQLite: ни внешних сервисов, ни очередей, ни планировщика. Фоновая горутина проверяет сроки раз в 30 секунд.