Flink Metrics索引收集方案

本文讨论的是Flink On K8s场景,该场景有几个特点,一是在线业务系统资源的复用,二是调度节点的随机性,这对现有的Flink度量收集和使用姿态提出了新的要求:

Flink任务自动伸缩,智能诊断场景依靠度量指标进行处理和分析。现有的普罗米修斯储存方案不再适用。

现有的指标需要在本地收集,然后由nodeexporter或lancer导出到目标存储,这强烈依赖于本地环境。线上业务系统资源环境差异较大,扩容等维护成本较高,资源隔离不够好。

期望在Flink On K8s场景下,Flink Metrics指标收集能够独立于基础环境,对扩展和收缩友好,支持指标收集和分析数据的统一存储,降低指标维护和使用的成本,并考察Flink Metrics指标收集方案。

2.1.1.原理架构图如下。

2.1.2,配置模式

将flink-Metrics-Prometheus-1.14.3 . jar包放入Flink安装目录/lib中。

修改flink-conf.yaml配置文件并设置属性。

示例配置:

metrics . reporter . prom gateway . class:org . Apache . flink . metrics . Prometheus . prometheuspushgateway reporter

metrics . reporter . prom gateway . host:本地主机

metrics . reporter . prom gateway . port:9091

metrics . reporter . prom gateway . job name:my job

metrics . reporter . prom gateway . randomjobname suffix:true

metrics . reporter . prom gateway . deleteonshutdown:false

metrics . reporter . prom gateway . grouping key:k 1 = v 1;k2=v2

metrics.reporter.promgateway .间隔:60秒

2.2.1,原理结构图如下。

2.2.2配置模式

将flink-Metrics-Prometheus-1.14.3 . jar包放入Flink安装目录/lib中。

修改flink-conf.yaml配置文件并设置属性。

示例配置:

metrics . reporter . prom . class:org . Apache . flink . metrics . Prometheus . Prometheus reporter

metrics . reporter . prom . port:9250-9260

2.3 ...1,原理架构图如下。

2.3.2配置模式

将flink-Metrics-inflow d B- 1.14.3 . jar包放入Flink安装目录/lib。

修改flink-conf.yaml配置文件并设置属性。

示例配置:

metrics . reporter . influxdb . factory . class:org . Apache . flink . metrics . influxdb . influxdb reporter factory

metrics . reporter . influx db . scheme:http

metrics . reporter . influx db . host:localhost

metrics . reporter . influx db . port:8086

metrics . reporter . influx db . db:flink

metrics . reporter . influx db . username:flink-metrics

metrics . reporter . influxdb . password:qwerty

metrics . reporter . influx db . retention policy:one _ hour

metrics . reporter . influx db . consistency:ANY

metrics . reporter . influx db . connect time out:60000

metrics . reporter . influx db . write time out:60000

metrics.reporter.influxdb .间隔:60秒

2.4.1,原理结构图如下。

2.4.2配置模式

将flink-Metrics-JMX-1.14.3 . jar包放入Flink安装目录/lib。

修改flink-conf.yaml配置文件并设置属性。

示例配置:

metrics . reporter . JMX . factory . class:org . Apache . flink . metrics . JMX . jmxreporterfactory

metrics . reporter . JMX . port:9250-9260

2.5.1,配置模式

将flink-Metrics-SLF4J-1.14.3 . jar包放入Flink安装目录/lib。

修改flink-conf.yaml配置文件并设置属性。

示例配置:

metrics . reporter . SLF 4j . factory . class:org . Apache . flink . metrics . SLF 4j . SLF 4j reporter factory

metrics.reporter.slf4j .间隔:60秒

GraphiteReporter、StatsDReporter、DatadogHttpReporter

在Kafka中收集指标后,实时将完整的指标写入ClickHouse。

指标在Kafka中采集后,会实时将全量的指标写入ClickHouse,可以满足监测行情、长期保存和指标数据二次加工分析的需求。该方法具有指标数据来源统一、任务市场大、报警等优点。