Heartbeat-мониторинг (Cron-задания)

Heartbeat-мониторинг — это обратная схема проверки: не UpRadar опрашивает ваш сервис, а ваш cron-job или скрипт периодически «пингует» UpRadar. Если пинг не поступил за ожидаемый интервал — срабатывает алерт. Это идеально подходит для фоновых задач, резервного копирования, обработки очередей и любых других операций, которые нельзя проверить внешним HTTP-запросом. Heartbeat-мониторинг доступен на тарифах Starter и выше.

Создание Heartbeat-монитора

  1. В левом боковом дереве нажмите на нужный проект.
  2. Нажмите «Добавить монитор».
  3. Выберите тип Heartbeat / Cron.
  4. Задайте имя и таймаут в минутах — например, 60 (один час).
  5. Нажмите «Сохранить» — UpRadar выдаст уникальный URL для этого монитора.

Уникальный URL имеет вид https://hb.upradar.pro/YOUR_TOKEN. Храните его как секрет — любой, кто знает этот URL, может отправлять пинги от имени вашего монитора.

Пинг из cron-задачи

Добавьте вызов URL в конец cron-скрипта с помощью оператора &&: вызов произойдёт только при успешном завершении предыдущей команды.

# Резервное копирование каждый час; пинг UpRadar после успеха
0 * * * * /scripts/backup.sh && curl -fsS --retry 3 https://hb.upradar.pro/YOUR_TOKEN > /dev/null

Пинг из shell-скрипта

#!/bin/bash
set -e

# Ваша задача
/usr/bin/pg_dump mydb > /backups/mydb_$(date +%Y%m%d).sql

# Уведомить UpRadar об успешном выполнении
curl -fsS --retry 3 "https://hb.upradar.pro/YOUR_TOKEN" > /dev/null

Пинг из Python

import requests

def run_job():
    # Ваша логика
    process_queue()

    # Уведомить UpRadar
    requests.get("https://hb.upradar.pro/YOUR_TOKEN", timeout=10)

Пинг из Node.js

// В конце вашей задачи
await fetch('https://hb.upradar.pro/YOUR_TOKEN');

Что происходит при пропуске пинга

Если пинг не поступает в течение установленного таймаута, монитор переходит в состояние DOWN и немедленно отправляет алерт по всем настроенным каналам уведомлений. Как только задача снова успешно отработает и отправит пинг, монитор вернётся в UP и зафиксирует инцидент с точным временем простоя.

Рекомендации

  • Ставьте вызов UpRadar после успешного завершения задачи, а не в начале — иначе мониторинг будет фиксировать запуск, а не успех.
  • Используйте флаг --retry 3 в curl для устойчивости к временным сетевым сбоям.
  • Задавайте таймаут немного больше реального времени выполнения задачи, чтобы избежать ложных алертов при пиковой нагрузке.

Надёжность: ping-эндпоинт работает независимо от состояния основного API-сервера UpRadar — он обслуживается отдельной независимой инфраструктурой. Даже если основной сервис недоступен, ваши пинги будут зарегистрированы.