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

  1. 部署
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 隨便啟動一個作業用於測試

  1. 觀察

網關查看 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 數據量 延遲
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。