Перейти к содержанию

Подготовка правила разбора к тестированию

Запрос

Тип Метод
POST /sources_pipelines/testlua

Описание: метод подготавливает правило разбора для отправки на тестирование в termit-web.

При выполнении запроса метод:

  • добавляет к тестовому событию из поля raw заголовок с метаданными;
  • при наличии активного профиля сбора использует данные этого профиля;
  • если активный профиль сбора отсутствует, заполняет заголовок значениями-заглушками;
  • формирует Lua-скрипт для тестирования правила разбора.
Пример запроса

POST

http://127.0.0.1/cruddy/v2/sources_pipelines/testlua

Параметры пути и строки запроса отсутствуют.

Тело запроса соответствует модели SourcesPipelineNoRelations.

Для выполнения метода обязательно должно быть передано поле source_id.

Параметр Тип данных Обязательность Описание
source_id string (UUID) Required ID источника сбора
Пример тела запроса

{
  "source_id": "550e8400-e29b-41d4-a716-446655440000",
  "<параметр>": "<значение>"
}

Успешный ответ

Статус код: 200 – запрос успешно обработан.

Формат: JSON.

В ответе возвращаются данные, необходимые для отправки правила на тестирование в termit-web.

Параметры ответа:

Параметр Тип данных Описание
message object Данные для обработки в termit-web
message.data object Тестовое событие
message.data.message string Сырое тестовое событие
message.params object Параметры правила разбора
message.params.root SourcesPipelineRelated Безусловно применяемое корневое правило разбора
message.params.current SourcesPipelineRelated Текущее правило разбора
message.params.disableHex2Str object Словарь флагов отключения преобразования hex2str для профилей сбора
script string Lua-скрипт в кодировке Base64
meta object Мета-информация
meta.parsers_keys object Флаги использования полей в текущем и корневом правилах

Если текущее правило является корневым, поле message.params.root заполняется значениями по умолчанию.

В объекте disableHex2Str:

  • ключ — ID профиля сбора;
  • значение — флаг отключения преобразования hex2str.

По умолчанию преобразование hex2str включено.

Поле meta.parsers_keys содержит словарь, в котором ключом является поле, а значением — объединённые побитовым «ИЛИ» флаги его использования.

Возможные значения флагов:

  • 1 — поле используется в корневом правиле;
  • 2 — поле используется в текущем правиле;
  • 4 — системное поле;
  • 8 — поле используется как параметр функции.
Пример ответа

{
  "message": {
    "data": {
      "message": "<сырое тестовое событие>"
    },
    "params": {
      "root": {
        "<параметр>": "<значение>"
      },
      "current": {
        "<параметр>": "<значение>"
      },
      "disableHex2Str": {
        "550e8400-e29b-41d4-a716-446655440000": false
      }
    }
  },
  "script": "<lua-скрипт в Base64>",
  "meta": {
    "parsers_keys": {
      "<поле>": 2
    }
  }
}

Другие возможные ответы

Код Ответ Описание
400 Bad Request Ошибка в параметрах или теле запроса
500 Internal Server Error Ошибка сервера

Возможные ошибки:

  • 400 — "missing uid header" — отсутствует заголовок Pgr-User-ID;
  • 400 — "Pgr-User-Id should be uuid format" — неверный формат Pgr-User-ID;
  • 400 — "Bad Request" — неверный тип параметра запроса либо отсутствует обязательный параметр;
  • 400 — "empty source_id" — поле source_id не задано;
  • 400 — "source_id should be uuid format" — недопустимый формат поля source_id;
  • 500 — "Internal Server Error" — ошибка сервера.
Пример ответа с кодом 400

{
  "error": "empty source_id"
}
Пример ответа с кодом 500

{
  "error": "Internal Server Error"
}