如何从Nifi 1.2.0中的报告任务访问计数器

时间:2018-01-08 19:59:09

标签: groovy apache-nifi

在Nifi 1.4.0中,为了从脚本化报告任务访问计数器,您可以执行以下操作:

context.eventAccess.controllerStatus.processGroupStatus.each { pg ->
    pg.processorStatus.each { ps ->
        ps.counters.each { counter
            System.out.println("${counter.key} -> ${counter.value})
    }
}

那是因为ProcessorStatus API公开了:

Map<String,Long>    getCounters()

但是,我使用的是NiFi 1.2.0。

对于ProcessorReportingTask类,没有这种方法。

我正在拼命寻找一种从ReportingTask访问计数器的方法(因此,通过ReportingContext,因为这是脚本中绑定的内容)。

因为我的ReportingTask正在向我们的石墨服务器报告指标。

任何想法?

我知道我可以通过REST API访问指标。 但后来我完全消失了我的ScriptedReporingTask的目标,我需要设置一个额外的软件来从外部收集这些指标。而ReponrtingTask将从NiFi系统运行。

1 个答案:

答案 0 :(得分:0)

我相信您必须升级到1.4.0才能访问getCounters方法,我通过ReportingContext没有其他方式知道这就是为什么它在1.4.0中作为JIRA的一部分添加的原因:

https://issues.apache.org/jira/browse/NIFI-106