Документация
Быстрый старт
- Зарегистрируйтесь: введите почту и откройте ссылку из письма.
- Нажмите «Новая проверка», укажите название и расписание задачи, например
0 3 * * *. - Скопируйте адрес пинга и добавьте его в конец задачи:
# crontab: бэкап каждую ночь в 3:00, пинг только при успехе
0 3 * * * /opt/backup.sh && curl -fsS -m 10 --retry 5 https://ping.heartcron.com/<uuid>
Если пинг не придёт вовремя, Heartcron пришлёт алерт в подключённые каналы: на почту, в Telegram, Slack, Discord или вебхук.
Адреса пингов
У каждой проверки два равноценных адреса:
https://ping.heartcron.com/<uuid>— уникальный адрес проверки, его видно на странице проверки;https://ping.heartcron.com/<ping-key>/<slug>— читаемый адрес: ключ проекта (в настройках проекта) и короткое имя проверки, напримерnightly-backup.
Подходят методы GET, POST и HEAD. Пинг на проверку, поставленную на паузу, снимает её с паузы.
Сигналы
| Адрес | Что означает |
|---|---|
/<uuid> | Задача выполнена успешно |
/<uuid>/start | Задача началась. Если «успех» не придёт в течение запаса времени, задача считается зависшей |
/<uuid>/fail | Задача упала: алерт уходит сразу |
/<uuid>/<код> | Код выхода от 0 до 255: 0 — успех, всё остальное — сбой |
/<uuid>/log | Просто запись в журнал, статус не меняется |
Сигнал /start вместе с «успехом» даёт ещё и длительность выполнения: она видна в ленте событий.
Вывод задачи
В теле POST-запроса можно передать вывод задачи, до 100 КБ. Он сохранится в событии, и его можно посмотреть в кабинете:
/opt/backup.sh 2>&1 | tail -c 100000 | curl -fsS -m 10 --data-binary @- https://ping.heartcron.com/<uuid>/$?
Не передавайте в теле пароли и ключи: вывод хранится и показывается в кабинете.
Расписание и запас времени
- Простой интервал: «каждые N минут, часов или дней» от последнего пинга.
- Cron-выражение с часовым поясом, например
30 2 * * 1-5вEurope/Berlin. Heartcron учитывает переход на летнее время. - Запас времени — сколько ждать после ожидаемого момента, прежде чем поднять тревогу. Он покрывает обычное время работы задачи и небольшие задержки.
Статусы
| Новая | Пингов ещё не было |
| Работает | Последний пинг пришёл вовремя |
| Упала | Пинг не пришёл в срок, задача сообщила об ошибке или сайт не отвечает |
| На паузе | Проверка не следит и не шлёт алерты |
Алерт приходит один раз при падении и один раз при восстановлении, без повторов на каждую проверку.
Примеры
Bash с кодом выхода
#!/bin/sh URL=https://ping.heartcron.com/<uuid> curl -fsS -m 10 "$URL/start" /opt/report.sh curl -fsS -m 10 --retry 5 "$URL/$?"
GitHub Actions
- name: Ping Heartcron
if: always()
run: curl -fsS -m 10 --retry 5 https://ping.heartcron.com/<uuid>/${{ job.status == 'success' && '0' || 'fail' }}
Kubernetes CronJob
command: ["/bin/sh", "-c", "/app/job && wget -q -T 10 -O /dev/null https://ping.heartcron.com/<uuid>"]
Python
import urllib.request
urllib.request.urlopen("https://ping.heartcron.com/<uuid>", timeout=10)
Готовые сниппеты для crontab, Bash, Python, Node.js, PowerShell, GitHub Actions и Kubernetes с вашим адресом есть на странице каждой проверки.
Проверки сайтов
Для сайтов и серверов Heartcron сам отправляет запросы из нескольких регионов:
- HTTP: код ответа (например
2xxили200,204), ключевое слово на странице, переходы по редиректам; - TCP: открыт ли порт базы данных, почты или игрового сервера;
- SSL: срок действия сертификата, предупреждение за выбранное число дней;
- Домен: срок регистрации домена.
Проверка считается упавшей, только если сбой повторился два раза подряд минимум в двух регионах: одна нестабильная сеть не разбудит вас ночью. Интервал — от 5 минут на бесплатном тарифе до 30 секунд на Business.
Уведомления
Каналы подключаются на вкладке «Интеграции» проекта: почта, Telegram, Slack, Discord и вебхуки. Вебхук получает JSON с событием и подписью X-Heartcron-Signature (HMAC-SHA256 тела с вашим секретом). Кнопка «Отправить тестовый алерт» проверяет канал сразу.
Ответы и лимиты
| Ответ | Когда |
|---|---|
200 OK | Пинг принят |
404 | Проверка не найдена: проверьте адрес |
429 | Больше 5 пингов в секунду на одну проверку |
Вопросы и предложения: hello@heartcron.com.