Использование утилиты тестирования#

Назначение#

Утилита предназначена для проверки конфигурации потокового обработчика на персональном АРМ оператора.

Запуск утилиты#

Для запуска утилиты необходимо:

  1. Распаковка архива: Откройте архив EVPC-clients-[версия дистрибутива]-distrib.zip, где [версия дистрибутива] — версия компонента EVPC. Замените [версия дистрибутива] на номер версии установленного компонента EVPC.

  2. Настройка прав: Для операционных систем Linux или macOS необходимо выдать права доступа для файла ./bin/event-process-flow-akka-cli, выполнив команду:

chmod +x bin/event-process-flow-akka-cli
  1. Запуск скрипта: Откройте терминал и запустите скрипт, используя необходимые аргументы:

    • для Linux и macOS: bin/event-process-flow-akka-cli;

    • для Windows: bin/event-process-flow-akka-cli.bat.

Аргументы запуска:

  1. –f / –flow - путь до файла конфигурации универсального облачного потокового обработчика.

  2. -rf / –result_file - путь до файла, куда будет выведен результат из точки назначения с типом list.

  3. –cp - путь до файла, в котором указана конфигурация для запуска утилиты тестирования.

  4. –scp - путь до файла с конфигурацией, переопределяющей source/destination.

Примеры запуска#

Для Linux и macOS:

$ ./bin/event-process-flow-akka-cli --f example/passthrough.conf --rf example/report

Для Windows:

$ ./bin/event-process-flow-akka-cli --cp example/test_flows.conf

Использование консольной утилиты#

Необходимо убедиться, что для запуска используется в качестве рабочей директорию - директория с файлами из архива.

Проверка файла трансформации (.tr)#

./bin/event-process-flow-akka-cli --check example/dsl/passthrough.tr

Результатом проверки будет либо Success, либо сообщение об ошибке parsing в логе.

Описание файла конфигурации универсального облачного потокового обработчика#

Конфигурация потока трансформации задается в соответствии с правилами конфигурации из раздела Построение потока обработки. Источники и точки назначения событий расширяются возможностью работы со списками.

Пример источника со списком событий#

input: {
    type: "list"
    events: [
        {
            topic: "FirstTopic"
            body: {
                path: "example/input/first.json"
            }
        },
        {
            topic: "SecondTopic"
            body: {
                path: "example/input/second.json"
            }
        }
    ]
}

В данном примере поток будет сформирован из двух топиков FirstTopic и SecondTopic. В каждом из которых будет свой набор событий, содержащейся в переданном JSON файле.

Пример точки назначения со списком событий#

output: {
      type: "list"
      name: "output"
}

В данный выходной поток будут направлены все события из топиков FirstTopic и SecondTopic.

Описание файла конфигурации для запуска утилиты тестирования#

  1. parallelism - значение параллелизма, обязательный параметр.

  2. resultFilePath - путь до файла, куда будет выведен результат выполнения потоков, указанных во flow, обязательный параметр.

  3. flow - пути до файла конфигурации потока, обязательный параметр.

  4. stubConfig - путь до файла с конфигурацией, переопределяющей source/destination.

Пример конфигурации#

{
  parallelism: 2
  resultFilePath: "example/report.txt"
  flow: "example/passthrough_2.conf"
}

Переопределение source/destination в конфигурации обработчика#

С помощью аргумента --scp при запуске cli, или параметра stubConfig в конфигурации cli можно передать stub-конфигурацию, которая заменит source-транспорт на список событий из файлов, а destination-транспорт на output файл. Замена происходит по имени шага source/destination.

Пример stub конфигурации#

Например, для переопределения source kafka-input и destination kafka-output, конфигурация будет выглядеть следующим образом:

Конфигурация потока:

{
  kafka: {
    type: "kafka"
    "bootstrap.servers":"localhost:9092"
    ...
  }

  flow : {
    name: "Passthrough config"
    source: [
      {
        name: "kafka-input"
        topic: "input"
        type: "source"
        config: ${kafka}
        destination: ${dslStep}
      }
    ]
  }

  dslStep: {
    ...
    destination: ${output}
  }

  output: {
    name: "kafka-output"
    type: "destination"
    topic: "output"
    config: ${kafka}
  }
}

Stub-конфигурация:

{
  kafka-input: [
    {
      topic: "ThirdTopic"
      body: {
        path: "input/first.json"
      }
    },
    {
      topic: "FourthTopic"
      body: {
        path: "input/second.json",
      }
    },
    {
      topic: "SomeTopic"
      body: {
        path: "input/third.json"
      }
    }
  ],

  kafka-output: {}
}

Параметры для переопределения source#

События задаются списком, для каждого можно указать:

  1. topic - имя входящего топика.

  2. key - ключ события.

  3. body.path - путь до файла с телом события.

  4. headers - заголовки события в формате {key: "value"}.

Параметры для переопределения destination#

  1. outputFilePath - файл, в который будут записаны исходящие события. Если не указан - используется файл по умолчанию из аргумента --rf или параметра resultFilePath.

  2. bodyOnly - выводить в output файл только тело события («true»/»false»).