Prometheus+Grafana 听说大佬都用这个监控flink metrics

架构

简单的画了一下 以及粗浅的理解

flink 原生环境中已经存在了 Prometheus 的插件 用于和 Prometheus 交互

Prometheus 用于 metric 的采集

node-exporter 会用到

pushgateway 会用到

Grafana 主要是 dashboard 的个性化 Prometheus 的页面虽然能看但是不美观

环境

环境 / 组件 | 版本
操作系统 | CentOS Linux release 7.9.2009 (Core)
docker | Docker version 1.13.1
flink | 1.13.6 on docker

部署

Prometheus+Grafana 全部部署在 docker 上

1 准备工作

在 linux 中：

Copy
mkdir /opt/grafana-storage # grafana 数据存储目录
chmod -R 777 /opt/grafana-storage
vim /opt/prometheus/prometheus.yml # 创建并编辑

prometheus.yml (不要忘记修改 ip)

Copy
global:
scrape_interval: 60s
evaluation_interval: 60s

scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
labels:
instance: prometheus

- job_name: linux
static_configs:
- targets: ['ip:9100']
labels:
instance: localhost
- job_name: 'pushgateway'
static_configs:
- targets: ['ip:9091']
labels:
instance: 'pushgateway'

flink 配置文件添加：

Copy
metrics.reporter.promgateway.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
metrics.reporter.promgateway.host: ip
metrics.reporter.promgateway.port: 9091
metrics.reporter.promgateway.jobName: flink
metrics.reporter.promgateway.randomJobNameSuffix: true
metrics.reporter.promgateway.deleteOnShutdown: true

2 部署

Copy
mkdir /opt/grafana-storage
chmod -R 777 /opt/grafana-storage

docker run -d -p 3000:3000 --name=grafana -v /opt/grafana-storage:/var/lib/grafana grafana/grafana

docker run -d -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" --net="host" prom/node-exporter

docker run -d -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

docker run -d -p 9091:9091 prom/pushgateway

flink 随便启动一个作业 用于测试

3 观察

网关查看 prometheus 三件套启动状态 （up 为启动）
http://ip:9090/targets#pool-pushgateway

gateway 查看监控到的 flink 作业
http://ip:9091

实践

Grafana 添加 Prometheus source

设置 添加 Prometheus

添加 url 点击 save

添加 Grafana dashborad 模板

grafana dashborad 库 搜索模板 复制 id
https://grafana.com/grafana/dashboards/

grafana 导入 添加 id 会自动下载

然后调一调就可以了

一些模板没有数据不清楚怎么回事

后续

flink process 中可配置监控指标 benchmark qps 数据量 延时