По умолчанию SiteToSiteProvenanceReportingTask
должен собирать и передавать все события происхождения в системе. Есть несколько свойств, которые вы можете настроить в RT для управления тем, что отправляется:
- Тип события - позволяет фильтровать, какие типы событий собираются, используя список через запятую
- Тип компонента - позволяет фильтровать, какие события компонента собираются с использованием регулярного выражения
- Идентификатор компонента - позволяет фильтровать, какие события компонента собираются, используя разделенный запятыми список UUID
Если все они установлены пустыми (или значение, которое, по вашему мнению, должно включать ваш пользовательский процессор), я бы предложил выполнить следующие дополнительные шаги для диагностики проблемы:
- Убедитесь, что вы можете просматривать события происхождения локально с помощью средства просмотра происхождения. Если вы используете собственный процессор и он расширяет
AbstractProcessor
, генерация событий провенанса предоставляется для вас на уровне инфраструктуры. Однако, если вы не расширяете этот класс или вам нужно захватывать события SEND
или RECEIVE
, которые среда не может автоматически обнаружить, вы должны вручную записать эти события, используя код, как показано ниже.
- Если вы можете видеть события происхождения локально, убедитесь, что настройки
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));
Надеюсь, эта информация поможет.