Multi-step / API monitoring

5 мин чтения · Продвинутые мониторы

Многошаговый мониторинг (multi-step) выполняет последовательность HTTP-запросов как один монитор: входит в систему, сохраняет токен, использует его на следующем шаге и проверяет ответ через JSONPath. Подходит для мониторинга API и процессов входа, когда одного запроса недостаточно. Доступен в планах Profi и Business для мониторов типа HTTP.

Форма нового монитора - выбор типа HTTP, адрес и интервал
Multi-step настраивается на HTTP-мониторе (тип выбирается при создании).

Где это настроить?

  1. Откройте детали HTTP-монитора.
  2. В разделе Multi-step / мониторинг API вставьте JSON со списком шагов и нажмите Сохранить.
  3. Пустое поле возвращает монитор к классической одиночной проверке.

Формат шагов

Шаги представляют собой список JSON (макс. 10). Каждый шаг - это объект со следующими полями:

  • url - адрес шага (обязательно). Может содержать переменную, напр. .
  • method - GET, POST, PUT, PATCH, DELETE, HEAD (по умолчанию GET).
  • headers - объект заголовков (необязательно).
  • body - тело запроса в виде текста (необязательно).
  • expect_status - ожидаемый HTTP-статус (по умолчанию 200).
  • expect_contains - текст, который должен присутствовать в ответе.
  • expect_jsonpath + expect_value - путь в JSON-ответе и ожидаемое значение.
  • save - объект переменная к JSONPath, значение сохраняется для следующих шагов.
  • name - имя шага в сообщении об ошибке (необязательно).

Пример: вход + проверка

[
  {
    "name": "вход",
    "method": "POST",
    "url": "https://api.example.com/auth/login",
    "headers": { "Content-Type": "application/json" },
    "body": "{\"user\": \"demo\", \"pass\": \"...\"}",
    "expect_status": 200,
    "save": { "token": "data.access_token" }
  },
  {
    "name": "профиль",
    "url": "https://api.example.com/me",
    "headers": { "Authorization": "Bearer " },
    "expect_jsonpath": "user.active",
    "expect_value": "True"
  }
]

JSONPath

Поддерживает точечную нотацию и индексы массива: data.items[0].id, user.name, с необязательным префиксом $..

Как оценивается состояние: монитор находится в состоянии Работает только если проходят все шаги. При первой ошибке - Сбой, и в ошибке указан номер и имя шага. Время отклика = сумма всех шагов.

Полезно знать

  • Многошаговый монитор работает только из основного региона (мультирегиональный консенсус пропускается).
  • Целевые адреса не должны указывать на внутреннюю сеть (та же защита, что и у обычных мониторов).
  • Переменные из save действуют только в рамках одной проверки.
Было ли это руководство полезным?