Skip to main content

HTTP

Перейти в личный кабинет

HTTP монитор проверяет доступность веб-сайтов и API, отправляя HTTP запросы из нескольких географических регионов.


Принцип работы

  1. Система отправляет HTTP запрос на указанный URL из выбранных регионов
  2. Проверяется код ответа, заголовки и тело ответа
  3. При несоответствии условиям — отправляется уведомление
┌─────────────┐              ┌─────────────┐              ┌─────────────┐
│ Регион 1 │ ──────────▶ │ Ваш сайт │ ◀────────── │ Регион 2 │
│ (Москва) │ HTTP │ │ HTTP │ (Франкфурт)|
└─────────────┘ └─────────────┘ └─────────────┘
│ │ │
└────────────────────────────┼────────────────────────────┘

┌─────────────┐
│ Tuna │
│ Monitor │
└─────────────┘

Параметры

Основные настройки

ПараметрОписаниеОбязательный
НазваниеУникальное имя монитораДа
URLАдрес для проверки (http:// или https://)Да
ОписаниеПримечание о назначенииНет

HTTP параметры

ПараметрОписаниеПо умолчанию
МетодHTTP метод запросаGET
ЗаголовкиДополнительные HTTP заголовки
Тело запросаТело для POST/PUT/PATCH запросов
Follow RedirectsСледовать ли перенаправлениям (3xx)Да

Поддерживаемые методы:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
  • HEAD
  • OPTIONS
  • TRACE

Параметры проверки

ПараметрОписаниеПо умолчанию
ИнтервалЧастота проверок5 минут
ТаймаутМаксимальное время ожидания ответа30 секунд
ПовторыКоличество повторных попыток при ошибке0

Регионы

Выберите один или несколько регионов для проверки. Монитор будет отправлять запросы из каждого выбранного региона.


Проверки (Assertions)

HTTP монитор поддерживает различные проверки ответа:

Проверка статус-кода

Проверяет HTTP код ответа:

КомпараторПримерОписание
equals200Код равен 200
less_than400Код меньше 400
greater_than199Код больше 199

Проверка заголовков

Проверяет наличие и значение HTTP заголовков ответа:

КомпараторПримерОписание
equalsapplication/jsonТочное совпадение
containsjsonСодержит подстроку
not_containserrorНе содержит подстроку
starts_withapplication/Начинается с
ends_with/jsonЗаканчивается на

Примеры:

  • Content-Type equals application/json
  • Cache-Control contains no-cache

Проверка тела ответа

Проверяет содержимое тела ответа:

КомпараторПримерОписание
contains"status":"ok"Тело содержит строку
not_contains"error"Тело не содержит строку
equalsOKТочное совпадение

SSL/TLS мониторинг

HTTP монитор автоматически проверяет SSL сертификаты для HTTPS адресов.

Информация о сертификате

При проверке HTTPS сайта собирается информация:

  • Issuer Common Name — издатель сертификата
  • Not Before — дата начала действия
  • Not After — дата окончания действия

WHOIS мониторинг

Для доменов система может отслеживать WHOIS информацию:

  • Registrar Name — регистратор домена
  • Expiration Date — дата истечения регистрации

Примеры

Проверка REST API

URL: https://api.example.com/health
Метод: GET
Проверки:
- Status Code equals 200
- Body contains "status":"healthy"

Проверка с авторизацией

URL: https://api.example.com/protected
Метод: GET
Заголовки:
- Authorization: Bearer your-token
Проверки:
- Status Code equals 200

POST запрос с JSON

URL: https://api.example.com/webhook
Метод: POST
Заголовки:
- Content-Type: application/json
Тело:
{"test": true}
Проверки:
- Status Code less_than 300

Проверка главной страницы сайта

URL: https://example.com
Метод: GET
Follow Redirects: Да
Проверки:
- Status Code equals 200
- Body contains "Welcome"

Статусы

СтатусОписание
NewМонитор создан, ожидается первая проверка
UpВсе проверки успешны
DownОдна или несколько проверок не прошли

Алерты

ПричинаОписание
FailПроверка не прошла (таймаут, ошибка соединения, assertion failed)
RecoveryПроверка восстановилась после ошибки

Лучшие практики

  1. Используйте dedicated health endpoint — создайте специальный /health или /status endpoint для мониторинга
  2. Проверяйте критичные функции — health check должен проверять подключение к БД, кэшу и другим зависимостям
  3. Настройте несколько регионов — для критичных сервисов используйте проверки из разных географических точек
  4. Используйте разумный таймаут — слишком короткий таймаут может вызвать ложные срабатывания
  5. Добавьте retry — один неудачный запрос не всегда означает проблему