prometheus监控flink

2023年 7月 16日 74.5k 0

前言

Flink 提供的Metrics可以在Flink 内部收集一些指标,通过这些指标可以让开发人员更好地理解作业或集群的状态。

但Flink 内置的Metrics更多的是查看任务的实时状态,要是想持久化这些指标,就需要借助于flink-metrics-prometheus,下面将展示一下prometheus监控flink的配置。

配置pushgateway

Prometheus 在正常情况下是采用拉模式从产生 metric 的作业或者 exporter(比如专门监控主机的 NodeExporter)拉取监控数据。但是我们要监控的是 Flink on YARN 作业,想要让 Prometheus 自动发现作业的提交、结束以及自动拉取数据显然是比较困难的。PushGateway 就是一个中转组件,通过配置 Flink on YARN 作业将 metric 推到PushGateway,Prometheus 再从 PushGateway 拉取就可以了。

1、下载并安装pushgateway

wget https://github.com/prometheus/pushgateway/releases/download/v1.5.1/pushgateway-1.5.1.linux-amd64.tar.gz
tar xf pushgateway-1.5.1.linux-amd64.tar.gz -C /usr/local/
cd /usr/local/
ln -s pushgateway-1.5.1.linux-amd64/ pushgateway

2、服务启动

/usr/local/pushgateway/pushgateway --web.listen-address :9091

3、prometheus集成pushgateway

  - job_name: "flink-pushgateway"
    static_configs:
      - targets: ["192.168.1.1:9091"]

Flink 配置

Flink 的 Metric Exporter 是一个可插拔的组件,可以将 Flink 的度量指标导出到 Prometheus 格式。flink官方提供插件jar包,默认在plugins目录下,只需要将jar包拷贝到flink lib目录下,就算是打开了扩展。

拷贝jar包:

cd /usr/local/flink-1.13.6/
cp plugins/metrics-prometheus/flink-metrics-prometheus-1.13.6.jar lib/

修改flink配置:flink-conf.yaml

##### 与 Prometheus 集成配置 #####
metrics.reporter.promgateway.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
# PushGateway 的主机名与端口号
metrics.reporter.promgateway.host: 192.168.1.1
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

然后就可以启动flink程序进行验证了(注:这里使用的flink安装包自带的flink程序)

./bin/flink run -t yarn-per-job --detached ./examples/streaming/TopSpeedWindowing.jar

启动 Prometheus 后,它将开始从 Flink 的 Metric Exporter 中抓取度量指标,并将它们存储在 Prometheus 的时间序列数据库中。

验证

flink 程序启动后,prometheus就可以收集到上报的数据了,需要做图表展示的话,在grafana dashboard挑选合适的模板即可。

image-20230405124455668

 

相关文章

对接alertmanager创建钉钉卡片(1)
手把手教你搭建OpenFalcon监控系统
无需任何魔法即可使用 Ansible 的神奇变量“hostvars”
openobseve HA本地单集群模式
基于k8s上loggie/vector/openobserve日志收集
openobseve单节点和查询语法

发布评论