美文网首页
Flink Metrics指标采集方案

Flink Metrics指标采集方案

作者: 无色的叶 | 来源:发表于2022-04-24 16:43 被阅读0次

    1、背景

    本文讨论的都是基于Flink On K8s场景下,该场景下存在几个特点,一是存在线上业务系统资源复用,二是调度节点存在"随机性",对现有的Flink Metrics采集及使用姿势提出了新的要求:

    Flink任务自动扩缩容,智能诊断场景依赖Metrics指标进行加工分析处理,现有Prometheus存储方案不再适合。
    既有的指标采集需要先落本地,再由nodeexporter或lancer导出到目标存储,强依赖于Local环境,线上业务系统资源环境差异较大,扩容等维护成本较高,资源隔离性不够好。
    期望在Flink On K8s场景下,Flink Metrics指标采集,能够不依赖于基础环境,对扩缩容友好,,支持指标采集及分析数据存储统一,降低指标维护使用成本,对Flink Metrics指标采集方案进行调研

    2、主动方式 MetricReport

    2.1、PrometheusPushGatewayReporter方式(prometheus + pushgateway + grafana)

    2.1.1、 原理架构图如下


    image2022-3-17_16-47-57.png

    2.1.2、 配置方式
    将flink-metrics-prometheus-1.14.3.jar 包放入到flink安装目录/lib下
    修改flink-conf.yaml配置文件,设置属性
    Example configuration:
    metrics.reporter.promgateway.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
    metrics.reporter.promgateway.host: localhost
    metrics.reporter.promgateway.port: 9091
    metrics.reporter.promgateway.jobName: myJob
    metrics.reporter.promgateway.randomJobNameSuffix: true
    metrics.reporter.promgateway.deleteOnShutdown: false
    metrics.reporter.promgateway.groupingKey: k1=v1;k2=v2
    metrics.reporter.promgateway.interval: 60 SECONDS

    image.png

    2.2、PrometheusReporter方式(prometheus + grafana)

    2.2.1、原理架构图如下


    image2022-3-17_20-4-53.png

    2.2.2、配置方式

    将flink-metrics-prometheus-1.14.3.jar 包放入到flink安装目录/lib下
    修改flink-conf.yaml配置文件,设置属性
    Example configuration:
    metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter
    metrics.reporter.prom.port: 9250-9260

    2.3、InfluxdbReporter方式

    2.3..1、原理架构图如下


    image2022-3-17_20-7-12.png

    2.3.2、配置方式

    将flink-metrics-influxdb-1.14.3.jar 包放入到flink安装目录/lib下
    修改flink-conf.yaml配置文件,设置属性
    Example configuration:
    metrics.reporter.influxdb.factory.class: org.apache.flink.metrics.influxdb.InfluxdbReporterFactory
    metrics.reporter.influxdb.scheme: http
    metrics.reporter.influxdb.host: localhost
    metrics.reporter.influxdb.port: 8086
    metrics.reporter.influxdb.db: flink
    metrics.reporter.influxdb.username: flink-metrics
    metrics.reporter.influxdb.password: qwerty
    metrics.reporter.influxdb.retentionPolicy: one_hour
    metrics.reporter.influxdb.consistency: ANY
    metrics.reporter.influxdb.connectTimeout: 60000
    metrics.reporter.influxdb.writeTimeout: 60000
    metrics.reporter.influxdb.interval: 60 SECONDS


    image.png

    2.4、JMXReporter方式

    2.4.1、原理架构图如下


    image2022-3-17_20-23-3.png

    2.4.2、配置方式

    将flink-metrics-jmx-1.14.3.jar 包放入到flink安装目录/lib下
    修改flink-conf.yaml配置文件,设置属性
    Example configuration:
    metrics.reporter.jmx.factory.class: org.apache.flink.metrics.jmx.JMXReporterFactory
    metrics.reporter.jmx.port: 9250-9260

    2.5、Slf4jReporter方式

    2.5.1、配置方式

    将flink-metrics-slf4j-1.14.3.jar 包放入到flink安装目录/lib下
    修改flink-conf.yaml配置文件,设置属性
    Example configuration:
    metrics.reporter.slf4j.factory.class: org.apache.flink.metrics.slf4j.Slf4jReporterFactory
    metrics.reporter.slf4j.interval: 60 SECONDS

    2.6、其它方式

    GraphiteReporter、StatsDReporter、DatadogHttpReporter

    3、自定义指标采集方式

    3.1、自定义KafkaReporter

    指标采集到Kafka后,将全量指标实时写入ClickHouse.


    image2022-3-18_17-27-21.png

    指标采集到Kafka后,将全量指标实时写入ClickHouse同时满足监控大盘需求及指标数据长期存储和二次加工分析,该方式优势指标数据源统一,任务大盘及告警


    image2022-3-21_15-53-52.png

    3.2、业界实践参考

    image.png

    相关文章

      网友评论

          本文标题:Flink Metrics指标采集方案

          本文链接:https://www.haomeiwen.com/subject/stwtyrtx.html