Перейти к основному содержимому
Автор: PingZen Team

Heartbeat-мониторы стали лучше: мёртвый cron больше не спрячется

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

Вот это «молча» и было проблемой. Мёртвый heartbeat было слишком легко пропустить, а если вы что-то заподозрили — посмотреть на него было негде. Мы починили и то, и другое, а заодно вычистили форму создания.

Heartbeat-монитор в PingZen — уникальный URL для пинга, ожидаемый интервал и grace-период

Мёртвый heartbeat больше не спрячется

Вот баг, с которого всё началось. Когда падает обычный монитор, об этом кричит всё приложение: сайдбар переключается на «Система: Критично», бейдж в навигации краснеет, тайл «Down» на дашборде подскакивает. Упавший heartbeat не делал ничего из этого. Сайдбар по-прежнему показывал «Система: Здорова», а дашборд — «Down: 0». Ровно противоположное тому, что нужно от инструмента мониторинга.

Теперь упавший heartbeat — это критическое событие, каким он и является:

  • Индикатор в сайдбаре становится критическим в момент пропуска пинга — на любой странице, а не только на «Мониторах».
  • Бейдж «Мониторы» в навигации считает мёртвые heartbeat вместе с мёртвыми мониторами.
  • Дашборд показывает красную строку «N heartbeat не в сети», так что остановившийся cron виден прямо на главной.
  • Воркспейс, где есть только heartbeat, теперь показывает реальный статус здоровья, а не вечное «неизвестно».

Если ваш ночной бэкап перестал пинговать — вы увидите это так же, как увидели бы падение сайта.

Кликните по heartbeat, чтобы увидеть пинги

Полная история пингов у heartbeat была всегда — но посмотреть на неё было негде. Строки просто висели. Теперь клик по любому heartbeat открывает детальный вид.

Внутри — компактный таймлайн приходов пингов: одна полоска на пинг, цвет по сигналу (зелёный success, синий ping, start, красный fail), так что ритм задачи виден с одного взгляда — и виден разрыв, где она остановилась. Ниже — таблица последних пингов с точным временем и длительностью.

Вид только для чтения и намеренно построен на истории пингов, которая у вас уже есть — ничего настраивать, ничего включать. Кликнули по heartbeat — увидели, когда он последний раз отметился и насколько регулярно. Редактирование, пауза и удаление живут тут же.

Мелкие фиксы, которые складываются

Пока мы были в коде heartbeat, починили несколько заноз:

  • Создание heartbeat больше не падает с непонятной ошибкой. Короткое имя вроде «Backup» раньше подставляло slug, который сервер потом отклонял, — и вы получали ошибку про поле, которого не трогали. Теперь slug всегда валиден.
  • Удаление heartbeat сразу обновляет счётчик плана вместо того, чтобы оставлять «X / 55» устаревшим на полминуты — а это важно, если вы удаляете один, чтобы вернуться под лимит.
  • Доступность и dark-mode — нормальные подписи у полей интервала и grace-периода, и строка конфигурации, которую наконец видно на тёмном фоне.

Ничего громкого, но создавать и управлять heartbeat стало заметно приятнее.


Heartbeat-мониторинг — из тех фич, что настраиваешь один раз и забываешь. Именно поэтому он обязан быть громким, когда что-то ломается, и удобным для разбора, когда пошёл смотреть. Эту планку мы только что взяли. Если у вас есть cron-задачи, запланированные задания или фоновые воркеры — направьте один на heartbeat-URL и дайте PingZen следить за тишиной за вас.

Готовы мониторить свой сайт?

Начать бесплатно

Без карты · настройка за минуту