Настройка Webhooks

Интеграция с внешними системами через вебхуки. Мониторинг, который никогда не спит

Схема JSON-тела вебхука

Каждый раз, когда статус вашего ресурса меняется, UptoChristmas отправляет POST-запрос на ваш URL. Тело запроса содержит стандартизированные данные о событии.

Структура данных

Пример полезной нагрузки (Payload)

{
  "event": "status_change",
  "timestamp": 1709284500,
  "monitor_id": "m_849210",
  "monitor_name": "API Gateway (prod)",
  "previous_status": "up",
  "current_status": "down",
  "response_time_ms": 2450,
  "error_code": 504,
  "region": "eu-west-1"
}

Логика повторных попыток при ошибке

Если ваш эндпоинт не отвечает или возвращает код ошибки (не 2xx), мы не теряем данные. Мы используем экспоненциальную стратегию откатов (Exponential Backoff) для повторных отправок.

Алгоритм

Циклы повторных попыток

  • 1-я попытка: мгновенно после события
  • 2-я попытка: через 30 секунд
  • 3-я попытка: через 2 минуты
  • 4-я попытка: через 5 минут
  • 5-я попытка: через 15 минут

Если после 5 попыток соединение не установлено, событие помечается как "Failed" в логах панели управления.

Проверка подписи (HMAC)

Для обеспечения безопасности и подтверждения того, что запрос действительно отправлен с серверов UptoChristmas, мы подписываем каждое тело запроса.

Безопасность

Валидация X-Upto-Signature

В заголовке каждого запроса передается X-Upto-Signature. Это HMAC-хеш, созданный алгоритмом SHA-256 на основе вашего секретного ключа Webhook Secret и тела запроса.

Формула: SHA256(secret_key + body)

Всегда проверяйте этот хеш на стороне вашего сервера перед обработкой данных.