文章目录
本文将详细介绍下flink中的指标核心模块,了解flink中定义的Metric类型,以及是如何分组组织Metric的。主要围绕flink源码中的flink-metrics-core
模块展开。后面介绍下flink中的常见指标项。
1. flink-metrics-core
- Metric
常见的指标类型有Gauge、Count、Meter、Histogram,flink 自定义了 Metric 类。
- MetricConfig
存取flink指标相关配置的工具类,继承Properties,添加了直接读取string、int、long、float、double、boolean配置值的方法。
- MetricGroup
Metric 在 flink 内部以 Group 的方式组织,有多层结构,Metric Group + Metric Name 是 Metric 的唯一标识。
TaskManagerMetricGroup
•TaskManagerJobMetricGroup
•TaskMetricGroup
•TaskIOMetricGroup
•OperatorMetricGroup
•${User-defined Group} / ${User-defined Metrics}
•OperatorIOMetricGroup
•JobManagerMetricGroup
•JobManagerJobMetricGroup
可以根据需要埋点自定义指标:
- 添加一个统计脏数据的指标,指标名为flink_taskmanager_job_task_operator_dtDirtyData :
// 从 RichFunction 中 getRuntimeContext()
dirtyDataCounter = runtimeContext.getMetricGroup().counter