在Apache NiFi中获取失败原因

时间:2016-04-26 15:14:59

标签: apache-nifi

我想在某些NiFi处理器中记录故障原因。但我看到它可能有多种原因。

SplitAvroJson处理器的示例: “如果FlowFile因任何原因失败处理(例如,FlowFile不是有效的Avro),它将被路由到这种关系

有没有可能得到我失败的确切原因,以便将其保存在例如put文件中?

提前谢谢你。

2 个答案:

答案 0 :(得分:2)

大多数处理器会将错误记录到nifi-app.log。对于SplitAvro的例子,它在这里做到了:

https://github.com/apache/nifi/blob/e4b7e47836edf47042973e604005058c28eed23b/nifi-nar-bundles/nifi-avro-bundle/nifi-avro-processors/src/main/java/org/apache/nifi/processors/avro/SplitAvro.java#L206

此错误消息也会在NiFi UI中作为SplitAvro处理器上的公告显示。

这样可以实现您的目标吗?

答案 1 :(得分:2)

我有一个类似的问题,我认为这篇文章可能有助于你。

这里有几个不同的选项可以使用其余的api消费公告消息:

1) http[s]://{host}:{port}/nifi-api/controller/process-groups/{process-group-id}/status?recursive=true

此请求将获取指定Process Group下所有组件的状态(包括公告)。您可以将别名“root”用于根级别Process Group。递归标志将指示是否仅返回该进程组的子节点或所有后代组件。

2) http[s]://{host}:{port}/nifi-api/controller/status

此请求将获取Controller级别组件的状态(包括公告)。这包括来自Controller Services,Reporting Tasks和NiFi Framework本身的任何报告公告(聚类消息等)。

3) http[s]://{host}:{port}/nifi-api/controller/bulletin-board?limit=n&sourceId={id}&message={str}

此请求将访问所有公告并支持基于过滤的组件,消息并限制返回的公告数。