Heartbeat-мониторинг от Tracker.ru — алерты при пропуске cron-задач
hb.tracker.ru/ping/{token} —
push-эндпоинт для мониторинга cron, scheduled tasks и фоновых процессов.
Получайте уведомления в Telegram, MAX, Email и Webhook когда ваш скрипт не отработал в срок.
Как это работает?
Создайте heartbeat-монитор в личном кабинете и получите уникальный токен.
Ваш скрипт, cron, GitHub Actions workflow или systemd timer пингуют
https://hb.tracker.ru/ping/{token}
после успешного выполнения. Если ожидаемый пинг не пришёл в срок (с учётом grace period),
Tracker.ru присылает алерт в Telegram, MAX, Email или Webhook —
в зависимости от настроенных каналов уведомлений.
curl -fsS https://hb.tracker.ru/ping/abcdef0123456789abcdef0123456789
Endpoint возвращает 200 {"ok":true} при успехе,
404 для неизвестного токена,
429 при превышении rate-limit (30 req/min/token).
Quickstart за 30 секунд
Три способа настроить пинг прямо сейчас. Скопируйте — подставьте токен — запустите.
cron
*/5 * * * * curl -fsS https://hb.tracker.ru/ping/$TOKEN > /dev/null
systemd timer
[Service]
Type=oneshot
ExecStart=/usr/bin/curl -fsS https://hb.tracker.ru/ping/%i
[Timer]
OnUnitActiveSec=5min
Unit=hb-ping@%i.service
GitHub Actions
- name: Heartbeat ping
if: always()
run: |
curl -fsS \
"https://hb.tracker.ru/ping/${{ secrets.HEARTBEAT_TOKEN }}"
Нужны Laravel scheduler, supervisord или PHP-Resque? Готовые рецепты — в документации по heartbeat-мониторингу.
Часто задаваемые вопросы
Что такое поддомен hb.tracker.ru и зачем он отдельный?
hb.tracker.ru — выделенный поддомен для push-эндпоинта heartbeat. Отдельный поддомен изолирует rate-limit пингов от основного веб-приложения tracker.ru: всплеск curl-запросов от cron-скриптов не повлияет на скорость дашборда. Также поддомен упрощает наблюдаемость в логах nginx и удобен для копи-паста в скрипты.
Что вернёт curl https://hb.tracker.ru/ping/{token}?
При успешном пинге — HTTP 200 с JSON {"ok":true}. Если токен не найден или монитор удалён — HTTP 404 {"error":"not_found"}. При превышении лимита — HTTP 429 с заголовком Retry-After. Эндпоинт принимает GET и POST; необязательный параметр msg (max 64 символа) добавляет короткое сообщение в лог.
Какой формат у токена?
Токен — 32 hex-символа (^[0-9a-f]{32}$), генерируется при создании монитора в личном кабинете. Источник правды — Go-handler в hostchecker. Токен уникальный, регистронезависимый, безопасен в URL.
Что произойдёт при превышении rate-limit?
Лимит — 30 запросов в минуту на токен. При превышении возвращается HTTP 429 с заголовком Retry-After (секунды до сброса окна). Лишние пинги не учитываются как «monitor alive», но и не вызывают алерт, если последующие пинги придут вовремя. Для мониторов чаще одного раза в 2 секунды используйте отдельные токены или сервисы push-метрик.
Можно ли тестировать ping локально без регистрации?
Нет — токен привязан к monitor-сущности в базе Tracker.ru, без записи 404. Для dry-run сценариев в CI используйте mock-сервер (например, healthchecks.io self-hosted) или в коде проверяйте HTTP_PROXY=http://localhost:port с собственной заглушкой. После регистрации в tracker.ru вы получите рабочий токен на бесплатном тарифе — этого достаточно для отладки.