Как включить создание отчетов о проверке сайта на пользовательском процессоре в nifi? - PullRequest
0 голосов
/ 10 июля 2019

У меня есть собственный процессор и включена задача создания отчетов для захвата событий Но события пользовательского процессора не фиксируются в задаче создания отчетов SiteToSiteProvenance.

AFAIK Все процессоры не поддерживаются SiteToSiteProvenance. Так где я могу получить список процессоров, которые не поддерживают создание отчетов SiteToSiteProvenance?

Можно ли включить его для всех процессоров?

1 Ответ

1 голос
/ 10 июля 2019

По умолчанию SiteToSiteProvenanceReportingTask должен собирать и передавать все события происхождения в системе. Есть несколько свойств, которые вы можете настроить в RT для управления тем, что отправляется:

  • Тип события - позволяет фильтровать, какие типы событий собираются, используя список через запятую
  • Тип компонента - позволяет фильтровать, какие события компонента собираются с использованием регулярного выражения
  • Идентификатор компонента - позволяет фильтровать, какие события компонента собираются, используя разделенный запятыми список UUID

Если все они установлены пустыми (или значение, которое, по вашему мнению, должно включать ваш пользовательский процессор), я бы предложил выполнить следующие дополнительные шаги для диагностики проблемы:

  1. Убедитесь, что вы можете просматривать события происхождения локально с помощью средства просмотра происхождения. Если вы используете собственный процессор и он расширяет AbstractProcessor, генерация событий провенанса предоставляется для вас на уровне инфраструктуры. Однако, если вы не расширяете этот класс или вам нужно захватывать события SEND или RECEIVE, которые среда не может автоматически обнаружить, вы должны вручную записать эти события, используя код, как показано ниже.
  2. Если вы можете видеть события происхождения локально, убедитесь, что настройки SiteToSiteProvenanceReportingTask не настроены на их исключение (либо указанные выше настройки, либо настройка Start Position ).

Код для ручной записи события происхождения внутри #onTrigger():

// Records a MODIFY_CONTENT event (given a stopWatch that was initialized before the work was performed)
session.getProvenanceReporter().modifyContent(flowFile, stopWatch.getElapsed(TimeUnit.MILLISECONDS));

Надеюсь, эта информация поможет.

...