如何将 NiFi 处理器错误放入 Flowfile 属性中?

How to get NiFi processor error into Flowfile attribute?

我有一个 PutGCSObject 处理器,我想将其错误捕获到流文件属性中。

如图所示,当处理器出现错误时,它会将所有预先存在的属性按原样发送至失败。

我希望错误消息作为属性成为同一个流文件的一部分。我怎样才能做到这一点?

没有通用的方法将错误消息附加为流文件属性。此外,我们倾向于强烈避免类似的事情,因为可能会向可能无权查看这些详细信息的用户冒出包含敏感数据的错误消息。

其实是有办法得到的

这是我的做法:

1:我将所有 ERROR 连接路由到一个主要的“监控进程组”

2: 这是我的“监控进程组”

updateattribute 中,我将 filename 捕获为 initial_filename

然后在下一步中我查询公告

然后我将输出解析为单独的属性。

在我得到解析的公告输出后,我使用 RouteOnAttribute proc 删除我不需要的所有公告(其中一些我已经使用并通知过)。

一旦我只剩下实际的错误公告,我就使用 ExecuteStreamingCommand 来 运行 一个使用 nipyapi 模块的 python 脚本来获取有关错误的更多信息,例如它在我的流程中的位置,层次结构,对失败处理器的描述,一些过程统计信息,我还有关于每个 proc/process 组及其保管人和业务用例的元数据目录。

然后将此数据发布到 sumologic 进行日志记录,同时我触发了一系列通知(Slack + PagerDuty 挂钩以创建事件生命周期)。

希望对您有所帮助