Rest 获取源/上游连接';nifi中的处理器名称

Rest 获取源/上游连接';nifi中的处理器名称,rest,apache-nifi,Rest,Apache Nifi,我想从业务角度监控Nifi中的流文件 因此,我使用python脚本添加了executescript处理器,该脚本创建消息,并在elasticsearch中将消息推送到每个处理器之后 我需要此executescript processor的父处理器名称或id,以便我在flowfile中不断追加,这将允许我知道此flow文件通过哪些阶段/处理器,并且我可以在ELK中监视它。我认为监视flowfile的最佳方法是使用源日志。您还可以使用另一个NiFi实例和S2S将这些日志导出到ELK 无论如何,如果要

我想从业务角度监控Nifi中的流文件

因此,我使用python脚本添加了executescript处理器,该脚本创建消息,并在elasticsearch中将消息推送到每个处理器之后


我需要此executescript processor的父处理器名称或id,以便我在flowfile中不断追加,这将允许我知道此flow文件通过哪些阶段/处理器,并且我可以在ELK中监视它。

我认为监视flowfile的最佳方法是使用源日志。您还可以使用另一个NiFi实例和S2S将这些日志导出到ELK

无论如何,如果要使用RESTAPI获取连接的源/目标的处理器名称,可以在浏览进程组的连接时获取。 例如:

您将获得一组连接。在连接对象中,您将在路径
组件/source/name
中获得源的名称。目的地也是如此

编辑:

要使用出处日志,您需要执行以下操作:

  • 将来源日志发送到另一个NiFi实例(由于它使用S2S,所以仅限于NiFi)
  • 解析此NiFi实例中的日志
  • 使用
    PutElasticSearch5
    处理器将日志发送至ElasticSearch

  • 它工作得最好,可以帮助您监控流文件。效果最好:)

    有没有办法从python脚本中获取的session(session.get())对象中获取它?。我将探索S2S选项。您无法从
    ProcessSession
    ProcessContext
    获取它。。。正如我所说,监视流文件的最佳方法是使用出处日志。您可以使用
    sitetoSiteProvanceReportingTask
    将源代码日志传输到其他实例。这也很容易!您只需要在我尝试S2S的目标实例(使用
    nifi.properties
    )中启用站点到站点协议。我不确定输入端口名是什么,因为我没有将其发送到另一个nifi实例,而是将其发送到elasticsearchIt。运行任务站点到SiteProvenanceReportingTask[id=bf4858b6-0169-1000-b06f-640d8cba6a3e]会引发错误由于org.apache.nifi.processor.exception.ProcessException:未能将源事件发送到目标,原因是IOException:响应代码405:不允许使用方法,解释为:nullI能够通过S2S捕获数据,但它捕获所有事件,在实际的核心数据流中,我的流文件将appid作为一个属性,因此我添加了一个routeonattribute处理器,并检查了appid不为null的条件,但现在我没有从基于流的编程范例中得到任何消息,其中每个组件都是一个“黑盒”故意不知道前置组件或后续组件。我要提醒的是,如果可能的话,以编程方式确定这些组件标识是不受支持的,也是脆弱的,而且肯定是反模式的。你应该重新评估你心目中的监控计划。
    /nifi-api/process-groups/{processGroupId}/connections/