Документация

Всё, что нужно, чтобы настроить проверки и алерты.

Быстрый старт

  1. Зарегистрируйтесь: введите почту и откройте ссылку из письма.
  2. Нажмите «Новая проверка», укажите название и расписание задачи, например 0 3 * * *.
  3. Скопируйте адрес пинга и добавьте его в конец задачи:
# crontab: бэкап каждую ночь в 3:00, пинг только при успехе
0 3 * * * /opt/backup.sh && curl -fsS -m 10 --retry 5 https://ping.heartcron.com/<uuid>

Если пинг не придёт вовремя, Heartcron пришлёт алерт в подключённые каналы: на почту, в Telegram, Slack, Discord или вебхук.

Адреса пингов

У каждой проверки два равноценных адреса:

Подходят методы 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>/$?

Не передавайте в теле пароли и ключи: вывод хранится и показывается в кабинете.

Расписание и запас времени

Статусы

НоваяПингов ещё не было
РаботаетПоследний пинг пришёл вовремя
УпалаПинг не пришёл в срок, задача сообщила об ошибке или сайт не отвечает
На паузеПроверка не следит и не шлёт алерты

Алерт приходит один раз при падении и один раз при восстановлении, без повторов на каждую проверку.

Примеры

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 сам отправляет запросы из нескольких регионов:

Проверка считается упавшей, только если сбой повторился два раза подряд минимум в двух регионах: одна нестабильная сеть не разбудит вас ночью. Интервал — от 5 минут на бесплатном тарифе до 30 секунд на Business.

Уведомления

Каналы подключаются на вкладке «Интеграции» проекта: почта, Telegram, Slack, Discord и вебхуки. Вебхук получает JSON с событием и подписью X-Heartcron-Signature (HMAC-SHA256 тела с вашим секретом). Кнопка «Отправить тестовый алерт» проверяет канал сразу.

Ответы и лимиты

ОтветКогда
200 OKПинг принят
404Проверка не найдена: проверьте адрес
429Больше 5 пингов в секунду на одну проверку

Вопросы и предложения: hello@heartcron.com.