Использование утилиты тестирования#
Назначение#
Утилита предназначена для проверки конфигурации потокового обработчика на персональном АРМ оператора.
Запуск утилиты#
Для запуска утилиты необходимо:
Распаковка архива: Откройте архив
EVPC-clients-[версия дистрибутива]-distrib.zip, где [версия дистрибутива] — версия компонента EVPC. Замените[версия дистрибутива]на номер версии установленного компонента EVPC.Настройка прав: Для операционных систем Linux или macOS необходимо выдать права доступа для файла
./bin/event-process-flow-akka-cli, выполнив команду:
chmod +x bin/event-process-flow-akka-cli
Запуск скрипта: Откройте терминал и запустите скрипт, используя необходимые аргументы:
для Linux и macOS:
bin/event-process-flow-akka-cli;для Windows:
bin/event-process-flow-akka-cli.bat.
Аргументы запуска:
–f / –flow - путь до файла конфигурации универсального облачного потокового обработчика.
-rf / –result_file - путь до файла, куда будет выведен результат из точки назначения с типом list.
–cp - путь до файла, в котором указана конфигурация для запуска утилиты тестирования.
–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.
Описание файла конфигурации для запуска утилиты тестирования#
parallelism- значение параллелизма, обязательный параметр.resultFilePath- путь до файла, куда будет выведен результат выполнения потоков, указанных во flow, обязательный параметр.flow- пути до файла конфигурации потока, обязательный параметр.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#
События задаются списком, для каждого можно указать:
topic- имя входящего топика.key- ключ события.body.path- путь до файла с телом события.headers- заголовки события в формате{key: "value"}.
Параметры для переопределения destination#
outputFilePath- файл, в который будут записаны исходящие события. Если не указан - используется файл по умолчанию из аргумента--rfили параметраresultFilePath.bodyOnly- выводить в output файл только тело события («true»/»false»).