Flink既提供了预定义的指标又提供了自定义指标的框架

对于预定义指标,查看的最好方式是通过Flink Web UI

我们可以通过 http://<jobmanager-hostname>:8081来进行访问

主界面包含了TaskMananger的数量,配置和可用的任务处理槽以及正在运行和已完成的作业

还可以在WebUI中上传JAR包提交作业

图片

对于每一个作业,都可以查看任务的持续时间,交换的字节数,并根据其进行聚合

图片

点击Task Metrics选项卡,可以查看其中更加相信的信息,包含了有关任务细粒度的统计信息,缓冲区的使用,水位线,以及数据速率

那么除了提供的预定义指标以及一个WebUI方便查看,还可以自定义指标

预定义指标包含CPU利用率,内存使用情况,活动的线程数,垃圾回收统计,网络等

自定义指标则可以扩展更多,为了自定义指标

需要先注册一个MetricGroup对象,需要现在RuntimeContext中利用getMetrics方法调用,代码基本如下

图片

图片

常见的指标可以有,

Counter 用于自增来进行计数

Gauge 用于在某一时间点来计算某一类型的值,要使用Gauge,需要实现Guage接口并利用MetricGroup的gauge方法来其进行注册

使用代码基本如下

图片

需要注意,在外部获取的时候,会将Gauge值转换为String,需要确保类型有对应的toString()实现

Histogram

可以使用直方图来表示数值类型数据的分布,最好的类型就是Long类型的指标,可以通过Histogram接口来收集数值

Meter

可以使用Meter指标来衡量事件发生的速率

Meter接口可以标记一个或者多个事件的发生的速率.

获取每秒事件发生的速率以及获取当前的meter标记的事件数目

Meter接口提供的方法可以标记一个或者多个事件的发生,获取每秒事件发生的速率以及当前meter标记的事件数目

那么在说完了如何注册,定义指标之后,如何在外部访问自定义的指标呢?

通常使用汇报器将指标发布到外端

图片

汇报器需要在flink-conf.yaml中配置,可以通过配置添加汇报器

图片

发表评论

邮箱地址不会被公开。 必填项已用*标注