Heartbeat-мониторинг (Cron-задания)
Heartbeat-мониторинг — это обратная схема проверки: не UpRadar опрашивает ваш сервис, а ваш cron-job или скрипт периодически «пингует» UpRadar. Если пинг не поступил за ожидаемый интервал — срабатывает алерт. Это идеально подходит для фоновых задач, резервного копирования, обработки очередей и любых других операций, которые нельзя проверить внешним HTTP-запросом. Heartbeat-мониторинг доступен на тарифах Starter и выше.
Создание Heartbeat-монитора
- В левом боковом дереве нажмите на нужный проект.
- Нажмите «Добавить монитор».
- Выберите тип Heartbeat / Cron.
- Задайте имя и таймаут в минутах — например,
60(один час). - Нажмите «Сохранить» — 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 — он обслуживается отдельной независимой инфраструктурой. Даже если основной сервис недоступен, ваши пинги будут зарегистрированы.