Перейти к основному содержимому

Heartbeat-мониторинг

Heartbeat-мониторинг — это пассивный подход: вместо того чтобы PingZen проверял ваш сервис, ваш сервис сам сообщает PingZen «я жив» простым HTTP-запросом. Если PingZen не получит пинг в ожидаемый интервал — отправит оповещение. Для cron-задач, бэкапов и скриптов по расписанию — мониторинг cron-задач.

Видеоинструкция

Разбираем на схеме, почему для Heartbeat не нужен входящий доступ в закрытую сеть, создаём heartbeat-монитор, отправляем первый пинг curl-запросом из терминала и настраиваем оповещения: Telegram, Slack, Email или вебхук.

Сервер в приватной сети замолчал? Heartbeat-мониторинг и уведомления · Открыть на YouTube

Для чего подходит

Задачи по расписанию

Бэкапы БД, ротация логов, скрипты очистки, еженедельные отчёты и рассылки. Задача отчитывается после каждого запуска; если отчёт не пришёл вовремя и grace-период истёк — приходит оповещение.

Пайплайны и фоновые воркеры

ETL и обработка данных, обработчики очередей, деплой-скрипты и CI/CD. Сигналы start и success/fail показывают не только что задача отработала, но и чем закончилась; длительность запуска задача может передать сама в поле duration_ms.

startsuccessstartfail

Всё, до чего снаружи не достучаться

Задача на ноутбуке, в закрытой сети или за NAT — адреса нет, опрашивать нечего. Heartbeat разворачивает направление: не PingZen идёт к задаче, а задача сама делает один исходящий HTTP-запрос.

Для чего не подходит

Heartbeat ждёт, пока задача сама отчитается. Если есть что опрашивать — опрашивайте:

Что нужно узнатьЧто использовать
Работает ли сайт или API?HTTP-монитор — он проверяет снаружи и не требует менять код
Открыт ли порт, доступен ли хост?Монитор TCP или Ping
Почему задача упала?Вне области — heartbeat знает только, что сигнал пришёл или не пришёл

Как это работает

  1. Создайте heartbeat-монитор в PingZen и получите уникальный URL для пинга
  2. Добавьте HTTP-вызов в конец вашего cron-скрипта или пайплайна
  3. PingZen ожидает получить пинг в настроенный интервал
  4. Если пинг пропущен (плюс 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_SLUG

Python

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-запросы