第4章 Prometheus 和 Flink 集成

Flink 提供的 Metrics 可在 Flink 内部收集各类指标,帮助开发人员更好地掌握作业或集群状态。集群运行后,内部实际状况难以直接察觉,比如作业运行快慢、是否存在异常等,开发人员无法实时查看所有 Task 日志,尤其在作业规模大或数量多的情况下,Metrics 能有效助力开发人员了解作业当前状况。
在这里插入图片描述
从 Flink 的源码结构可知,Flink 官方支持 Prometheus,并提供了对接 Prometheus 的 jar 包,集成过程十分便捷。
在这里插入图片描述

4.1 拷贝 jar 包

拷贝新的 flink 目录 flink-prometheus,将 flink-metrics-prometheus-1.12.0.jar 拷贝到 <flink_home>/lib 目录下,命令如下:

[atguigu@hadoop202 flink-prometheus]$ cp /opt/module/flink-prometheus/plugins/metrics-prometheus/flink-metrics-prometheus-1.12.0.jar /opt/module/flink-prometheus/lib/

Flink 的 Classpath 位于 lib 目录下,因此插件的 jar 包需放置在该目录。

4.2 修改 Flink 配置

进入 Flink 的 conf 目录,修改 flink-conf.yaml 文件,命令如下:

[atguigu@hadoop202 conf]$ vim flink-conf.yaml

添加如下配置:

##### 与 Prometheus 集成配置 #####
metrics.reporter.promgateway.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
# PushGateway 的主机名与端口号
metrics.reporter.promgateway.host: hadoop202
metrics.reporter.promgateway.port: 9091
# Flink metric 在前端展示的标签(前缀)与随机后缀
metrics.reporter.promgateway.jobName: flink-metrics-ppg
metrics.reporter.promgateway.randomJobNameSuffix: true
metrics.reporter.promgateway.deleteOnShutdown: false
metrics.reporter.promgateway.interval: 30 SECONDS

4.3 启动 netcat

为运行测试程序,启动 netcat,命令如下:

[atguigu@hadoop202 sbin]$ nc -lk 9999

4.4 启动相关服务并提交 Flink 任务

启动 hdfs、yarn,将 Flink 任务提交到 yarn 上,命令如下:

[atguigu@hadoop202 flink-prometheus]$ bin/flink run -t yarn-per-job -c com.atguigu.flink.chapter02.Flink03_WordCount_UnboundStream ./flink-base-1.0-SNAPSHOT-jar-with-dependencies.jar

4.5 查看指标统计

可通过 8088 端口跳转到 Flink UI 的 job 页面,查看指标统计情况。

4.6 验证集成结果

刷新 Prometheus 页面,若能看到 Flink 相关指标,则说明 Prometheus 与 Flink 集成成功。
在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐