有状态函数中的自定义指标

Custom metrics in Stateful functions

大家好,最近开始使用 Apache Flink Stateful 函数。我们正在使用 Flink Reporter 将指标放入 InfluxDB https://ci.apache.org/projects/flink/flink-docs-master/docs/deployment/metric_reporters/ Stateful functions provides "function" scope with several metrics out of the box https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.2/deployment-and-operations/metrics.html 但这还不够,需要添加自定义指标和测量。所有源代码似乎都无法扩展,我无法找到正确的方法来执行此操作。如果有人设法完成此任务,请分享您的经验。

最近已将添加用户定义指标的功能添加到嵌入式功能 SDK 的主分支中。参见 JIRA issue

有了这个改变,你可以做这样的事情:

public class MyFn implements StatefulFunction {

@Override
public void invoke(Context context, Object input) {
    if (isBadMessage(input)) {
        context.metrics().counter("bad-message").inc();
    } else {
        processNormalMessage(context, input);
    }
}

...
}

如果您正在使用远程功能,请让 Apache Flink 用户邮件列表了解它,以便维护人员考虑为远程功能扩展该功能的范围!

如果你赶时间,并且觉得自己构建项目很舒服,你可以立即尝试。