cyrus

cyrus

梦想是做一名可以“养活”自己的自由职业者 --自由不是你想做什么就做什么 而是不想做什么就不做什么.
github
twitter
bilibili

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

架构#

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

  • flink 原生环境中已经存在了 Prometheus 的插件 用于和 Prometheus 交互
  • Prometheus 用于 metric 的采集
    • node-exporter 会用到
    • pushgateway 会用到
  • Grafana 主要是 dashboard 的个性化 Prometheus 的页面虽然能看但是不美观

image

环境#

环境 / 组件版本
操作系统CentOS Linux release 7.9.2009 (Core)
dockerDocker version 1.13.1
flink1.13.6 on docker

部署#

Prometheus+Grafana 全部部署在 docker 上

1 准备工作

在 linux 中:

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

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

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 配置文件添加:

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 部署

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
image
添加 url 点击 save

  • 添加 Grafana dashborad 模板

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

grafana 导入 添加 id 会自动下载
image

然后调一调就可以了

image

image

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

image

后续#

  • flink process 中可配置监控指标 benchmark qps 数据量 延时
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。