FLink-17-Flink监控metric
Flink监控metric
- 在 flink 任务运行的过程中,用户通常想知道任务运行的一些基本指标,比如吞吐量、内存和 cpu 使 用情况、checkpoint 稳定性等等。而通过 flink metrics 这些指标都可以轻而易举地获取到,避免任务 的运行处于黑盒状态,通过分析这些指标,可以更好的调整任务的资源、定位遇到的问题、对任务进 行监控;
- 监控可以是本地监控webUI
- metrics 的收集有上图所示的两条线路。
- 一种是通过定期 fetch 向 flink 的不同结点或组件查询 metrics, 并汇集到一个中心结点并提供 RESTful API,如常用的 WebUI 即是如此。
- 另一种方式是通过 MetricsReporter 分别将各个结点或组件的 metrics 上报到第三方系统,在第三方系统中自定义的分析 和监控。两种方式的主要区别在于是否有一个中心结点对 metrics 进行汇总。
- 一般来说,在常用的 flink任务分析或监控系统中更推荐使用第二种方式,根据使用经验来说 MetricsReporter 上报的方式更加 稳定,且可以灵活的使用第三方的存储和分析能力。而 RESTful API 的形式通常用于开发场景中查看 WebUI,使用中偶尔会出现超时或者是 metrics 延迟的情况,主要原因可能包括中心结点内存使用较 高或挂掉等等。
1.自定义metric
- flink 提供了如下统计器,来方便用户自定义各类自己的状态度量
- counter
- gauge
- histogram
- meter
2.企业级metric套装:Prometheus+Grafana
Prometheus 是一套开源的系统监控报警框架。
Grafana 是一款用 Go 语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。
下载相关的模块:
- node_exporter
- prometheus
- pushgateway
- grafana
然后更新相关配置,最后启动服务。