在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系统运行。
答案 0 :(得分:0)
我相信您必须升级到1.4.0才能访问getCounters方法,我通过ReportingContext没有其他方式知道这就是为什么它在1.4.0中作为JIRA的一部分添加的原因: