学习 Flink(十):使用 Prometheus 监控 Flink 集群

Prometheus

首先,执行 cp opt/flink-metrics-prometheus-1.8.0.jar lib/,将依赖的 JAR 文件拷贝到 /lib 目录下。

然后,编辑 conf/flink-conf.yaml 文件,添加配置:

metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter  
metrics.reporter.prom.class: 9250-9260  

可选配置 metrics.reporter.prom.port,Prometheus Exporter 监听端口,默认为 9249,JobManager 和 TaskManager 在同一台机器,可以配置为范围 9250-9260

可选配置 metrics.reporter.prom.filterLabelValueCharacters,指定是否过滤不匹配 [a-zA-Z_][a-zA-Z0-9_]* 的 Label,默认为 false

重新启动 Flink 集群,Flink Prometheus 指标地址在 JobManager 和 TaskManager 所在主机的 metrics.reporter.prom.port 端口。

配置 Prometheus

编辑 prometheus.yml 配置文件,添加 Flink 集群指标配置:

scrape_configs:  
  - job_name: 'flink-jm'
    metrics_path: '/'
    static_configs:
    - targets: ['FLINK_JM:9250']
  - job_name: 'flink-tm'
    metrics_path: '/'
    static_configs:
    - targets: ['FLINK_TM:9250']

启动 Prometheus:

prometheus --config.file=prometheus.yml  

Grafana

Grafana 是开源的仪表盘应用,官方支持 Prometheus 作为数据源。

添加 Prometheus 数据源,导入 Flink Metrics 仪表盘。

参考