如何在nifi中为自定义处理器启用sitetositeprovenance报告?

时间:2019-07-10 12:24:41

标签: apache-nifi

我有一个自定义处理器并启用了用于捕获事件的报告任务  但是自定义处理器的事件未捕获到SiteToSiteProvenance报告任务中。

AFAIK SiteToSiteProvenance不支持所有处理器,那么在哪里可以获得不支持SiteToSiteProvenance报告的处理器列表?

我可以为所有处理器启用它吗?

1 个答案:

答案 0 :(得分:1)

默认情况下,SiteToSiteProvenanceReportingTask应该收集并传输系统上的所有出处事件。您可以在RT上配置一些属性来控制发送的内容:

  • 事件类型-允许过滤使用逗号分隔的列表收集哪些事件类型
  • 组件类型-允许过滤使用正则表达式收集哪些组件事件
  • 组件ID -允许使用逗号分隔的UUID列表过滤收集哪些组件事件

如果所有这些都设置为空(或者您认为应该包含自定义处理器的值),我建议按照以下进一步步骤来诊断问题:

  1. 确保您可以使用出处查看器在本地查看出处事件。如果您使用的是定制处理器,并且该处理器扩展了AbstractProcessor,那么将在框架级别为您提供出处事件生成。但是,如果您不扩展该类,或者需要捕获框架无法自动检测到的SENDRECEIVE事件,则必须使用下面的代码手动记录这些事件。
  2. 如果您可以在本地看到起源事件,请确保未将SiteToSiteProvenanceReportingTask上的设置排除在外(上述设置或开始位置设置) 。

#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));

希望此信息对您有所帮助。