开发者社区> 问答> 正文

Flink-Metrics中的User-defined Metrics Example具体是什么啊?

Flink-Metrics中的User-defined Metrics Example具体是什么啊?

展开
收起
游客vwuxaq6iqaowc 2021-12-09 13:47:15 351 0
1 条回答
写回答
取消 提交回答
  • 下面通过一段简单的例子说明如何使用 Metrics。比如,定义了一个 Counter 传一个 name,Counter 默认的类型是 single counter(Flink 内置的一个实现),可以对 Counter 进行 inc()操作,并在代码里面直接获取。

    Meter 也是这样,Flink 有一个内置的实现是 Meterview,因为 Meter 是多长时间内发生事件的记录,所以它是要有一个多长时间的窗口。平常用 Meter 时直接 markEvent(),相当于加一个事件不停地打点,最后用 getrate() 的方法直接把这一段时间发生的事件除一下给算出来。

    Gauge 就比较简单了,把当前的时间打出来,用 Lambda 表达式直接把 System::currentTimeMillis 打进去就可以,相当于每次调用的时候都会去真正调一下系统当天时间进行计算。

    Histogram 稍微复杂一点,Flink 中代码提供了两种实现,在此取一其中个实现,仍然需要一个窗口大小,更新的时候可以给它一个值。

    这些 Metrics 一般都不是线程安全的。如果想要用多线程,就需要加同步,更多详情请参考下面链接。

    •Counter processedCount = getRuntimeContext().getMetricGroup().counter("processed_count"); processedCount.inc(); •Meter processRate = getRuntimeContext().getMetricGroup().meter("rate", new MeterView(60)); processRate.markEvent(); •getRuntimeContext().getMetricGroup().gauge("current_timestamp", System::currentTimeMillis); •Histogram histogram = getRuntimeContext().getMetricGroup().histogram("histogram", new DescriptiveStatisticsHistogram(1000)); histogram.update(1024); •[https://ci.apache.org/projects/flink/flink-docs-release-1.8/monitoring/metrics.html#metric-types]

    2021-12-09 13:47:35
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载