Получить имя процессора исходного / восходящего соединения в nifi - PullRequest
1 голос
/ 27 марта 2019

Я хочу отслеживать потоковые файлы в Nifi с точки зрения бизнеса.

Итак, я добавил процессор исполняемого сценария, использующий сценарий python, который создает сообщение и помещает его в эластичный поиск после каждого процессора.

Мне нужно имя родительского процессора или идентификатор этого процессора исполняемого сценария, чтобы я продолжал добавлять его в файл потока, который позволит узнать, через какие стадии / процессоры проходит этот файл потока, и я могу отслеживать его в ELK.

1 Ответ

2 голосов
/ 27 марта 2019

Я думаю, что лучший способ отслеживать FlowFiles - это использовать журналы Provenance. Вы также можете экспортировать эти журналы в ELK, используя другой экземпляр NiFi и S2S.

В любом случае, если вы хотите получить имя процессора источника / назначения соединения, используя REST API, вы можете получить его, просматривая соединения группы процессов. Пример:

/nifi-api/process-groups/{processGroupId}/connections/

Вы получите массив соединений. В объекте соединения вы получите имя источника в пути component/source/name. То же самое касается пункта назначения.

EDIT:

Чтобы использовать журналы провенанса, вам нужно сделать следующее:

  1. Отправка журналов провенанса в другой экземпляр NiFi (он ограничен NiFi, поскольку использует S2S).
  2. Разобрать логи в этом экземпляре NiFi
  3. Отправка журналов в ElasticSearch с использованием процессора PutElasticSearch5.

Он работает лучше всего и поможет вам лучше контролировать FlowFiles:)

...