【Flink 监控系列】Flink on yarn 任务实时监控最佳实践(Prometheus + Grafana)打造企业级监控方案

我们都知道 Flink 任务是一个 7*24 小时不停运行的任务,所以对于任务的实时监控就显得尤为重要,因为任务运行的状态对于我们来说是一个黑盒,比如任务是否挂掉,是否存在反压,使用的内存,CPU 等情况我们是不知道的,虽然 Flink 的 UI 上面可以添加相关的 metrics 来查看,但是需要手动的一个一个添加,还是比较麻烦的,特别是在任务非常多的情况下.所以就需要有一种统一的监控方案来解决这个问题.Flink 本身提供了非常丰富的 Metric Reporters,比如 JMX InfluxDB Graphite Prometheus 等等,生产环境上用的比较多的是 InfluxDB 和 Prometheus ,我这里选择的是 Prometheus 来上报 Flink 的 metrics 然后通过 Grafana 进行展示.

Grafana 可以说是为监控而生的,是一个颜值非常高的可视化工具.Grafana 支持比较多的数据源格式,比如 InfluxDB 、OpenTSDB Prometheus 等等,并且使用起来非常简单,那 Prometheus 和 Grafana 的结合会擦出怎样的火花呢?下面就一起来看下.

我们先来看一下 Prometheus 和 Grafana 结合的架构图,如下所示:

【Flink 监控系列】Flink on yarn 任务实时监控最佳实践(Prometheus + Grafana)打造企业级监控方案_第1张图片

可以发现里面还需要一个组件 PushGateway ,这是因为 Prometheus 正常是从 Flink 任务拉取数据的,但是我们的 Metric Reporter 是像外部系统推送数据的,所以这两者是存在冲突的,所以就需要有一个中间组件,首先通过 Metric Reporter 把数据推送到 PushGateway ,Prometheus 再从PushGateway 拉取数据,最后展示在 Grafana 上.

下载

下载我这里就省略了,自己

你可能感兴趣的:(Flink,监控系列,java,flink)