Heartbeat-мониторинг
Heartbeat-мониторинг — это пассивный подход: вместо того чтобы PingZen проверял ваш сервис, ваш сервис сам сообщает PingZen «я жив» простым HTTP-запросом. Если PingZen не получит пинг в ожидаемый интервал — отправит оповещение. Для cron-задач, бэкапов и скриптов по расписанию — мониторинг cron-задач.
Видеоинструкция
Разбираем на схеме, почему для Heartbeat не нужен входящий доступ в закрытую сеть, создаём heartbeat-монитор, отправляем первый пинг curl-запросом из терминала и настраиваем оповещения: Telegram, Slack, Email или вебхук.
Для чего подходит
Задачи по расписанию
Бэкапы БД, ротация логов, скрипты очистки, еженедельные отчёты и рассылки. Задача отчитывается после каждого запуска; если отчёт не пришёл вовремя и grace-период истёк — приходит оповещение.
Пайплайны и фоновые воркеры
ETL и обработка данных, обработчики очередей, деплой-скрипты и CI/CD. Сигналы start и success/fail показывают не только что задача отработала, но и чем закончилась; длительность запуска задача может передать сама в поле duration_ms.
Всё, до чего снаружи не достучаться
Задача на ноутбуке, в закрытой сети или за NAT — адреса нет, опрашивать нечего. Heartbeat разворачивает направление: не PingZen идёт к задаче, а задача сама делает один исходящий HTTP-запрос.
Для чего не подходит
Heartbeat ждёт, пока задача сама отчитается. Если есть что опрашивать — опрашивайте:
| Что нужно узнать | Что использовать |
|---|---|
| Работает ли сайт или API? | HTTP-монитор — он проверяет снаружи и не требует менять код |
| Открыт ли порт, доступен ли хост? | Монитор TCP или Ping |
| Почему задача упала? | Вне области — heartbeat знает только, что сигнал пришёл или не пришёл |
Как это работает
- Создайте heartbeat-монитор в PingZen и получите уникальный URL для пинга
- Добавьте HTTP-вызов в конец вашего cron-скрипта или пайплайна
- PingZen ожидает получить пинг в настроенный интервал
- Если пинг пропущен (плюс grace-период), PingZen отправит оповещение
Типы сигналов
PingZen поддерживает несколько типов сигналов для детального отслеживания задач:
Ping (GET)
Простой heartbeat — подтверждение выполнения задачи
Start
Отмечает начало выполнения задачи
Success
Отмечает успешное завершение
Fail
Сообщает о сбое и сразу переводит монитор в «Недоступен»; детали ошибки можно приложить в JSON — они доступны через API
Примеры интеграции
Bash / Cron
# Добавьте в конец вашего cron-скрипта
curl -fsS --retry 3 https://pingzen.dev/api/v1/ping/YOUR_PING_KEY/YOUR_SLUGPython
import requests
requests.get('https://pingzen.dev/api/v1/ping/YOUR_PING_KEY/YOUR_SLUG', timeout=10)cURL с сигналами start/success
# Сигнал начала задачи
curl -fsS -X POST https://pingzen.dev/api/v1/ping/YOUR_PING_KEY/YOUR_SLUG/start
# ... ваша задача выполняется ...
# Сигнал успеха
curl -fsS -X POST https://pingzen.dev/api/v1/ping/YOUR_PING_KEY/YOUR_SLUG/successКлючевые возможности
- Уникальный URL эндпоинта для каждого heartbeat-монитора
- Настраиваемые интервалы (от 1 минуты до 30 дней) — включая еженедельные и ежемесячные cron-задачи
- Grace-период перед отправкой оповещения (от 1 минуты до 24 часов)
- Примечание для календарно-месячных задач: после месяца в 31 день интервал упирается ровно в лимит (30 дней + 24 часа grace = 31 день), и любая задержка даст ложный DOWN — планируйте такие задачи каждые 30 дней
- Отслеживание сигналов start/success/fail
- История пингов хранится 90 дней — кликните по heartbeat, чтобы открыть таймлайн и журнал последних 20 пингов; приложенный к пингу JSON доступен через API
- Опциональная проверка секрета в заголовке X-Secret — включается через API или MCP
- Пауза/возобновление без потери конфигурации
- Работает с любым языком или инструментом, способным делать HTTP-запросы