【问题标题】:How to access counters from Reporting task in Nifi 1.2.0如何从 Nifi 1.2.0 中的报告任务访问计数器
【发布时间】:2018-01-09 23:19:52
【问题描述】:

在 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 系统运行。

【问题讨论】:

    标签: groovy apache-nifi


    【解决方案1】:

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

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

    【讨论】:

    • Bryan,非常感谢您将我引向 theJIRA。确实,您似乎是对的,而且讨论似乎表明其他人已经觉得没有其他办法了。嗯... 1.4 即将到来(对我们来说,我的意思是。我们目前绑定到 1.2),很快。接受这个答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 2020-10-23
    • 2010-09-26
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多