Apache flink 收集flink flatmap函数所用平均时间的指标

Apache flink 收集flink flatmap函数所用平均时间的指标,apache-flink,prometheus,metrics,Apache Flink,Prometheus,Metrics,我已经实现了一个flink flatmap函数,我想收集这个函数的平均时间指标,我计划通过普罗米修斯进行监控 什么样的方法比较好?我在方法中添加了一个仪表(从FlinkAPI扩展仪表接口) 它会工作吗?它是否工作取决于如何创建仪表。如果您使用的是普通的flatmap函数,那么您可能应该切换到richflattmap函数,然后初始化并注册仪表getRuntimeContext 此外,您可能想了解一下度量类型,因为在这种情况下,直方图似乎比测量更好,因为在大多数情况下,测量平均延迟通常不是最好的方法

我已经实现了一个flink flatmap函数,我想收集这个函数的平均时间指标,我计划通过普罗米修斯进行监控

什么样的方法比较好?我在方法中添加了一个仪表(从FlinkAPI扩展仪表接口)


它会工作吗?

它是否工作取决于如何创建
仪表。如果您使用的是普通的
flatmap函数
,那么您可能应该切换到
richflattmap函数
,然后初始化并注册仪表
getRuntimeContext


此外,您可能想了解一下度量类型,因为在这种情况下,
直方图
似乎比测量更好,因为在大多数情况下,测量平均延迟通常不是最好的方法。

是的,直方图似乎是更好的选择。Flink Histogram不提供总和度量,仅统计指标。邮件列表中也会询问并回答这一问题。看见
public class SimpleGauge<T> implements Gauge<T> {

    private T mValue;

    @Override
    public T getValue() {
        return mValue;
    }

    public void setValue(T value){
        mValue = value;
    }
}
float endTime = (System.currentTimeMillis() - startTime) / 1000F;
this.gauge.setValue(endTime);