Flink 系列第14篇:Flink Metrics 监控指标详解(生产环境版)

使用Flink Metric Reporter 对flink任务指标进行监控 从flink1.8版本开始,reporter支持了将指标数据写入influxdb,用户可以自研可视化系统读取influxdb中的数据进行可视化。 但是对中小型公司来讲,可能因为成本原因,大多并不会选择自研可视化,我们选择grafana进行flink metrics的可视化。 本文主要重点讲述influxdb、prometheus为Reporter,将flink的metrics数据写入外部系统,并使用grafana进行可视化。 安装配置方式手把手教学,如下: 1. influxdb 1.1 启动 docker 阅读详情

Flink Metrics(指标系统)是理解、监控和调优 Flink 应用程序运行状态的关键工具,能够实时反馈作业健康度、资源使用情况,为故障诊断和性能优化提供核心依据,同时支持与外部监控系统无缝集成。

一、Flink Metrics 简介

1.1 核心目标

Flink Metrics 系统的核心目标的是全方位监控 Flink 作业及集群状态,具体包括:

  • 实时反映作业运行状态(如吞吐量、延迟、背压等核心运行指标);

  • 暴露系统资源使用情况(CPU、内存、网络、磁盘 I/O 等硬件资源);

  • 支撑故障快速诊断与作业性能调优;

  • 与外部监控系统无缝集成(如 Prometheus、Datadog、JMX、StatsD 等),实现统一监控与告警。

1.2 指标类型(Metric Types)

Flink 支持四种基本指标类型,覆盖各类监控场景,具体说明如下:

类型说明典型用途
Counter(计数器)递增的整数值,支持增减操作(实际业务中通常仅用于递增统计)记录处理记录数、失败次数、数据丢弃数等累计值
Gauge(仪表)返回任意类型的当前值,值可动态变化,实时反映当前状态内存使用量、队列长度、当前时间戳、水位线等实时状态
Histogram(直方图)统计数值分布,可输出 P50/P95/P99 分位数、均值、最大/最小值处理延迟、事件时间差、Checkpoint 耗时等分布类指标
Meter(速率计)测量事件发生频率,计算单位时间内的平均速率每秒处理记录数(records/sec)、每秒字节数等吞吐速率

注意:Flink 的 Histogram 默认使用 Exponentially Decaying Reservoir 算法,适合流式计算的动态场景,能够有效捕捉近期数据的分布特征。

1.3 指标作用域(Metric Scope)

Flink 通过层级化命名空间组织所有指标,每个指标都有唯一的逻辑标识,由「作用域(Scope)+ 指标名称(name)」组成,作用域用于明确指标的归属上下文。

1.3.1 指标命名格式

默认命名格式(从粗到细):

<scope_prefix>.job.<job_name>.operator.<operator_name>.task.<subtask_index>.<metric_name>

简化逻辑:作用域 → Flink 任务名(Job)→ 算子名(Operator)→ 子任务名(subtask)→ 指标名称

示例:job.my-job.operator.MyMap.source-id.numRecordsInPerSecond(表示名为 my-job 的作业中,MyMap 算子某子任务的每秒输入记录数)

1.3.2 常见作用域层级

作用域从粗到细分为以下层级,覆盖集群、作业、算子等不同维度:

  • System Scope:JVM、CPU、内存等系统级指标,归属整个集群;

  • JobManager Scope:JobManager 相关指标(如 Checkpoint 协调信息、运行作业数);

  • TaskManager Scope:TaskManager 资源使用指标(如网络缓冲池、可用内存段);

  • Job Scope:整个作业级别的指标(如总处理记录数、Checkpoint 总次数);

  • Task/Operator Scope:算子或子任务级别的细粒度指标(最常用,如单个算子的吞吐量、状态大小)。

可通过 metrics.scope.* 系列配置项,自定义指标命名格式(如适配 Prometheus 的 label 结构,便于后续监控展示)。

二、核心指标分类汇总

Flink 核心指标按业务场景分为 6 大类,每类指标明确作用域、监控用途及异常判断标准,直接对接生产监控需求。

2.1 状态(State)相关指标

状态相关指标主要包括 Gauge(核心)、Counter 指标,Histogram 指标仅针对 RocksDB 状态后端,用于监控状态大小、条目数及 RocksDB 运行状态,避免状态膨胀、OOM 等问题。

2.1.1 状态 Gauge 指标(作用域:Task/Operator)

  • totalStateSize:当前子任务的总状态大小(单位:bytes)

    • 计算公式:所有状态 backend 序列化后估算大小;

    • 监控用途:跟踪状态增长趋势,预估 Checkpoint 大小;

    • 异常判断:正常应稳定或缓慢增长;突增可能是数据倾斜或状态未清理;接近磁盘/内存上限时存在故障风险;

    • Web UI 位置:Job → Checkpoints → Details(显示为“State Size”)。

  • managedKeyedState:Keyed State 大小(单位:bytes)

    • 计算公式:Keyed state backend 直接报告;

    • 监控用途:监控 Keyed 状态膨胀情况;

    • 异常判断:与 totalStateSize 一致,突增需排查数据或状态配置。

  • managedOperatorState:Operator State 大小(单位:bytes)

    • 计算公式:Operator state backend 直接报告;

    • 监控用途:监控 Broadcast/Union 等 Operator 状态的变化;

    • 异常判断:通常数值较小,突增需警惕配置或业务逻辑问题。

  • numStateEntries:状态条目总数(key-value 对数)

    • 计算公式:RocksDB 后端取 rocksdb.estimate-num-keys,Heap 后端取 Map.size();

    • 监控用途:反映状态规模,评估内存压力;

    • 异常判断:应与业务量成比例;异常增长可能是未设置状态 TTL(过期时间)导致。

关键提示:totalStateSize 是 Checkpoint 大小的主要决定因素,直接影响 Checkpoint 耗时、故障恢复时间和存储成本(如 HDFS/S3 存储占用)。

2.1.2 状态 Counter 指标

  • numberOfRestoredStateEntries:从状态恢复的条目数

    • 计算公式:作业重启时统计的状态恢复条目数;

    • 作用域:Task/Operator;

    • 监控用途:验证状态恢复的完整性;

    • 正常判断:应约等于上次作业运行时的 numStateEntries;

    • Web UI 位置:Job → Overview(作业启动时可见)。

2.1.3 状态 Histogram 指标(RocksDB 特有)

仅当 state.backend: rocksdb 时生效,作用域均为 Task/Operator,需在 flink\-conf\.yaml 中显式启用,否则无法采集。

  • rocksdb.block.cache.hit.count:Block Cache 命中次数

    • 说明:本质是 Counter 指标,但部分 Flink 版本暴露为 Histogram;

    • 监控用途:评估 RocksDB 缓存效率;

    • 正常判断:缓存命中率(hit / (hit + miss))需 &gt; 90%。

  • rocksdb.block.cache.miss.count:Block Cache 未命中次数

    • 说明:本质是 Counter 指标,部分版本暴露为 Histogram;

    • 监控用途:辅助评估缓存效率;

    • 正常判断:数值越低越好,未命中次数过多说明缓存配置不合理。

  • rocksdb.bytes.read:从磁盘读取的字节数

    • 监控用途:评估 RocksDB 的磁盘 I/O 读取压力;

    • 异常判断:数值突增可能是缓存失效或大范围扫描操作导致。

  • rocksdb.bytes.written:写入磁盘的字节数

    • 监控用途:评估 Checkpoint/Flush 操作的磁盘写入压力;

    • 正常判断:与totalStateSize 正相关,同步增长属于正常现象。

  • rocksdb.compaction.time:Compaction 操作耗时(单位:ms)

    • 监控用途:评估 RocksDB 后台压缩操作对作业性能的影响;

    • 异常判断:P99 耗时需 &lt; 1s;持续偏高可能是磁盘速度慢或写放大严重。

启用 RocksDB 指标的配置(flink-conf.yaml):

state.backend.rocksdb.metrics.block-cache: true
state.backend.rocksdb.metrics.compaction: true
# 其他 RocksDB 指标可参考官方文档补充配置

2.2 Checkpoint 指标

Checkpoint 指标作用域为 JobManager / Job,核心用于监控 Checkpoint 的执行状态、性能及恢复情况,是保障作业高可用的关键监控点。

2.2.1 Checkpoint Gauge 指标

  • lastCheckpointDuration:最近一次 Checkpoint 耗时(单位:ms)

    • 监控用途:评估 Checkpoint 性能;

    • 异常判断:正常应小于 Checkpoint 间隔(如 1min 内);突增可能是状态过大或 HDFS 等存储系统响应缓慢;

    • Web UI 位置:Job → Checkpoints。

  • lastCheckpointSize:最近一次 Checkpoint 总大小(单位:bytes)

    • 监控用途:评估存储成本和故障恢复时间;

    • 正常判断:应约等于所有子任务 totalStateSize 的总和。

  • lastCheckpointExternalPath:最近一次 Checkpoint 的外部存储路径

    • 监控用途:用于自动化运维(如定期清理过期 Checkpoint);

    • 正常判断:应为非空且可访问,为空说明 Checkpoint 存储失败。

  • checkpointProgress:当前 Checkpoint 的执行进度(0~1)

    • 监控用途:实时跟踪 Checkpoint 执行状态;

    • 异常判断:应快速接近 1.0,若长期卡住说明 Checkpoint 执行异常。

  • numberOfInProgressCheckpoints:正在执行的 Checkpoint 数量

    • 监控用途:控制 Checkpoint 并发度;

    • 正常判断:默认应 ≤1(除非配置了并发 Checkpoint)。

2.2.2 Checkpoint Counter 指标

  • numberOfCompletedCheckpoints:成功完成的 Checkpoint 次数

    • 监控用途:监测 Checkpoint 健康度;

    • 作用域:JobManager / Job;

    • 异常判断:正常应稳定增长;长时间不变说明 Checkpoint 阻塞或失败;

    • Web UI 位置:Job → Checkpoints。

  • numberOfFailedCheckpoints:失败的 Checkpoint 累计次数

    • 监控用途:监测 Checkpoint 故障频率;

    • 作用域:JobManager / Job;

    • 异常判断:正常应为 0 或极低;大于 0 需立即排查原因(如存储故障、状态异常);

    • Web UI 位置:Job → Checkpoints。

  • restoredCheckpoints:作业重启时从 Checkpoint 恢复的次数

    • 监控用途:评估作业稳定性,统计故障恢复频率;

    • 作用域:JobManager / Job;

    • 异常判断:生产环境中应 ≤1(首次启动不算);频繁恢复说明作业不稳定;

    • Web UI 位置:Overview / Job。

2.2.3 Checkpoint Histogram 指标

Web UI 位置均为:Job → Checkpoints → Details,核心用于分析 Checkpoint 执行过程中的瓶颈。

  • checkpointAlignmentTime:Barrier 对齐耗时(单位:ms)

    • 统计内容:从第一个 Barrier 到达至最后一个 Barrier 到达的时间;

    • 监控用途:评估背压对 Checkpoint 的影响;

    • 异常判断:理想值接近 0;大于 1s 说明存在背压;持续偏高需优化算子或资源。

  • checkpointStartDelayNanos:Checkpoint 从触发到实际开始的延迟(单位:纳秒)

    • 统计内容:Checkpoint 的调度延迟;

    • 监控用途:评估 Checkpoint 调度效率;

    • 异常判断:应极小(微秒级);数值过大说明 TaskManager 过载。

2.3 背压(Backpressure)相关指标

⚠️ 注意:Flink 没有名为“backpressure”的直接指标,需通过网络缓冲区、算子繁忙度、队列长度等间接指标推断背压是否存在及严重程度。

2.3.1 背压 Gauge 指标

  • busyTimeMsPerSecond:每秒内算子处于“忙碌”状态的毫秒数

    • 作用域:Task / Operator;

    • 计算公式:基于处理线程的采样(每秒统计实际执行时间);

    • 监控用途:最核心的背压代理指标;

    • 异常判断:0–300ms 为空闲,700–1000ms 为高负载;持续 &gt;900ms 且下游算子数值更低,说明背压发生在本算子;

    • Web UI 位置:Job → Task → Metrics。

  • idleTimeMsPerSecond:每秒内算子处于空闲状态的毫秒数(= 1000 - busyTimeMsPerSecond)

    • 作用域:Task / Operator;

    • 监控用途:反向验证算子负载;

    • 正常判断:数值越高越健康(非源头算子);

    • Web UI 位置:Job → Task → Metrics。

  • buffers.inputQueueLength:输入缓冲队列中等待处理的 Buffer 数量(实时计数)

    • 作用域:Task(每个 Input Gate);

    • 监控用途:直接反映上游发送速度快于本 Task 处理速度;

    • 异常判断:持续 = 0 为无背压;持续 &gt; 0 为存在背压;接近 network.memory.buffers-per-channel 为严重阻塞;

    • Web UI 位置:Job → Task → Metrics(需展开 input gate)。

  • buffers.outputQueueLength:输出缓冲队列中未被下游拉取的 Buffer 数量(实时计数)

    • 作用域:Task(每个 Result Partition);

    • 监控用途:反映下游消费速度慢导致本 Task 数据积压;

    • 异常判断:与 buffers.inputQueueLength 一致;

    • Web UI 位置:与 buffers.inputQueueLength 一致。

  • availableMemorySegments:全局可用网络内存段数量

    • 作用域:TaskManager;

    • 计算公式:totalMemorySegments - usedMemorySegments;

    • 监控用途:集群级背压信号;

    • 异常判断:&gt; 20% of total 为健康;&lt; 5% 为严重背压,可能导致数据丢失或 Checkpoint 失败;

    • Web UI 位置:Task Managers → Metrics。

  • exclusiveBuffersUsage:每个通道专用 Buffer 使用率(Flink 1.16+)

    • 作用域:Task;

    • 计算公式:已用专用 Buffer 数 / 配置值;

    • 监控用途:细粒度通道背压检测;

    • 异常判断:接近 1.0 说明该通道存在瓶颈。

2.3.2 背压 Counter 指标

  • numRecordsDropped:因背压或资源不足丢弃的记录数

    • 作用域:Task(仅部分 Source/Sink 支持);

    • 计算公式:满足背压或资源不足条件时计数(如 Kafka Source 限速丢弃);

    • 监控用途:监控数据完整性风险;

    • 异常判断:正常应为 0;大于 0 需立即告警排查。

关键提示:Flink 默认不丢数据(背压会反向传导至 Source,限制数据摄入),但部分 Connector(如 UDP Source)或自定义逻辑可能存在数据丢弃场景。

2.3.3 背压源头定位方法

  1. 找到 busyTimeMsPerSecond 数值最高的算子(通常是性能瓶颈);

  2. 检查该算子下游算子的 inputQueueLength 是否偏高:若是,说明瓶颈在下游;

  3. 检查该算子上游算子的 outputQueueLength 是否偏高:若是,说明本算子是瓶颈。

2.4 I/O(输入/输出)相关指标

I/O 指标主要反映数据吞吐、网络带宽、序列化开销,是容量规划和性能分析的基础,核心包括 Meter(吞吐速率)、Counter(累计量)、Gauge(延迟与队列)三类。

2.4.1 Meter:核心吞吐指标(作用域:Task / Operator)

  • numRecordsInPerSecond:每秒接收记录数

    • 监控用途:评估输入吞吐能力,跟踪数据流入速率;

    • 计算公式:默认使用 1 分钟 EWMA(类似 Linux load average),避免瞬时抖动,反映近期平均速率;

    • 异常判断:正常应数值稳定,符合业务周期;突降可能是 Source 故障或背压;突升可能是流量高峰;

    • Web UI 位置:Job → Task → Metrics。

  • numRecordsOutPerSecond:每秒输出记录数

    • 监控用途:评估输出吞吐能力,反映数据流出速率;

    • 异常判断:通常与 numRecordsInPerSecond 接近(除非有聚合、过滤逻辑);

    • 作用域、计算公式、Web UI 位置均与 numRecordsInPerSecond 一致。

  • numBytesInPerSecond:每秒输入字节数

    • 监控用途:评估网络带宽使用率(入站);

    • 异常判断:结合网络带宽上限(如 1Gbps ≈ 120MB/s),判断是否存在网络瓶颈;

    • 作用域、计算公式、Web UI 位置均与上述指标一致。

  • numBytesOutPerSecond:每秒输出字节数

    • 监控用途:评估网络带宽使用率(出站);

    • 异常判断:与 numBytesInPerSecond 一致,结合带宽上限判断瓶颈;

    • 作用域、计算公式、Web UI 位置均与上述指标一致。

关键洞察:若 numRecordsInPerSecond 高但 numBytesInPerSecond 低,说明是小事件高频场景;若 numBytesInPerSecond 高但 numRecordsInPerSecond 低,说明是大事件低频场景(如视频元数据传输)。

2.4.2 Counter:累计 I/O 量(作用域:Task/Operator)

  • numRecordsIn:算子接收到的记录总数

    • 监控用途:数据流入完整性校验;

    • 异常判断:应单调递增,作业重启后重置;停滞不前说明 Source 或上游算子故障;

    • Web UI 位置:Job → Task → Metrics。

  • numRecordsOut:算子输出的记录总数

    • 监控用途:数据流出完整性、ETL 正确性验证;

    • 异常判断:与下游算子的numRecordsIn 应一致(除分区边界差异);通常 ≥ numRecordsIn(除非有过滤逻辑);远小于则可能存在逻辑错误或背压丢弃;

    • Web UI 位置:与 numRecordsIn 一致。

  • numBytesIn:接收的网络字节数(序列化后累加值)

    • 监控用途:估算总带宽成本;

    • 异常判断:结合吞吐速率,评估数据密度;

    • Web UI 位置:与 numRecordsIn 一致。

  • numBytesOut:发送的网络字节数(序列化后累加值)

    • 监控用途:评估网络带宽总消耗;

    • 异常判断:结合吞吐速率,评估数据密度;

    • Web UI 位置:与 numRecordsIn 一致。

⚠️ 注意:numRecordsIn/numRecordsOut 在 Source/Sink 处有特殊语义:

  • Source 的 numRecordsOut = 作业总产出数据量;

  • Sink 的 numRecordsIn = 作业总消费数据量。

2.4.3 Gauge:I/O 延迟与队列(作用域:Task / Operator)

  • currentInputWatermark:当前输入水位线(单位:ms)

    • 计算公式:所有输入通道水位线的最小值;

    • 监控用途:跟踪事件时间推进进度;

    • 异常判断:应随时间正常推进;卡住不动说明某 Source 无数据或事件时间配置异常。

  • currentOutputWatermark:当前输出水位线(单位:ms)

    • 计算公式:本算子发出的水位线数值;

    • 监控用途:为下游算子提供事件时间基准;

    • 异常判断:应 ≥ 当前输入水位线。

  • buffers.inputExclusiveBuffersUsed:每个输入通道专用 Buffer 使用数

    • 监控用途:检测单条数据流的拥塞情况;

    • 异常判断:接近配置上限时,需扩容或调优通道配置。

2.5 网络与缓冲区指标

均为 Gauge 指标,作用域为 TaskManager 或 Task,核心用于监控网络层状态,辅助判断背压和网络瓶颈。

  • availableMemorySegments:可用网络内存段数量

    • 计算公式:totalMemorySegments - usedMemorySegments;

    • 监控用途:背压核心底层指标,反映网络层是否阻塞;

    • 异常判断:正常应 &gt; 20% of total;接近 0 表示严重背压。

  • totalMemorySegments:网络内存段总量

    • 由 taskmanager.network.memory.* 系列配置决定,为固定值;

    • 监控用途:作为可用内存段的计算基线,用于容量规划。

  • inputQueueLength:输入队列长度(每个 input gate)

    • 计算公式:当前队列中的 Buffer 实时数量;

    • 监控用途:反映下游处理速度慢导致的上游数据积压;

    • 异常判断:持续 &gt; 0 表示存在背压;

    • Web UI 位置:Job → Task → Metrics。

  • outputQueueLength:输出队列长度(每个 Result Partition)

    • 计算公式:当前队列中的 Buffer 实时数量;

    • 监控用途:反映上游发送速度快于下游接收速度;

    • 异常判断:持续 &gt; 0 表示存在背压;

    • Web UI 位置:Job → Task → Metrics。

2.6 JVM 与系统资源指标

均为 Gauge 指标,作用域为 JobManager / TaskManager,核心用于监控 JVM 运行状态和系统硬件资源,避免 OOM、CPU 过载等问题。Web UI 位置均为:Task Managers → Metrics。

  • Status.JVM.Memory.Heap.Used:JVM 堆内存已用(单位:bytes)

    • 计算公式:MemoryMXBean.getHeapMemoryUsage().getUsed();

    • 监控用途:评估 OOM 风险;

    • 异常判断:应 < 80% of Max;持续上升可能存在内存泄漏。

  • Status.JVM.Memory.Heap.Max:JVM 堆内存上限(单位:bytes)

    • 由 JVM 参数 -Xmx 配置,为固定值;

    • 监控用途:用于内存容量规划。

  • Status.JVM.GarbageCollector.PS_Scavenge.Count:Young GC 次数

    • 计算公式:通过 JVM GC MXBean 统计;

    • 监控用途:评估 Young GC 频率;

    • 异常判断:正常应为每分钟 <10 次(具体视堆大小调整)。

  • Status.JVM.GarbageCollector.PS_Scavenge.Time:Young GC 总耗时(单位:ms)

    • 监控用途:评估 Young GC 对作业性能的影响(停顿时间);

    • 异常判断:单次耗时 < 50ms,总耗时占比 < 5% 为正常。

  • Status.JVM.GarbageCollector.PS_MarkSweep.Count/Time:Full GC 次数/耗时

    • 监控用途:检测严重内存问题;

    • 异常判断:正常应为 0;大于 0 说明内存不足或存在内存泄漏。

  • Status.JVM.Threads.Count:JVM 线程总数

    • 计算公式:通过 ThreadMXBean 统计;

    • 监控用途:检测线程泄漏;

    • 异常判断:数值应稳定;突增可能是异步操作未正确管理线程。

  • Status.JVM.CPU.Load:进程 CPU 使用率(0~1)

    • 计算公式:OperatingSystemMXBean.getProcessCpuLoad();

    • 监控用途:评估 CPU 瓶颈;

    • 异常判断:正常应 < 0.8;持续 1.0 可能是计算密集型算子或死循环。

三、生产环境监控体系

以下是 Flink 生产环境中最核心、可直接用于监控与告警的内置指标清单(Flink 1.15+),无需修改代码,只需正确配置 Reporter 即可采集,适配 Prometheus、Grafana 等监控工具。

序号指标全名(Prometheus 格式)监控类型指标说明
1flink_taskmanager_job_task_operator_busyTimeMsPerSecond背压算子每秒处于“处理中”状态的毫秒数,&gt;900 表示高负载或背压
2flink_taskmanager_job_task_buffers_inputQueueLength背压输入缓冲队列中等待处理的 Buffer 数量,持续 &gt;0 表示存在背压
3flink_taskmanager_job_task_buffers_outputQueueLength背压输出缓冲队列中未被下游拉取的 Buffer 数量,反映下游消费慢
4flink_taskmanager_Status_Network_AvailableMemorySegments背压TaskManager 全局可用网络内存段数量,接近 0 表示严重背压
5flink_taskmanager_Status_Network_TotalMemorySegments背压网络内存段总量,用于计算可用率,评估网络容量
6flink_taskmanager_job_task_operator_totalStateSize状态当前算子总状态大小(bytes),直接影响 Checkpoint 性能和恢复时间
7flink_taskmanager_job_task_operator_numStateEntries状态状态条目总数(如 key-value 对数),用于判断状态膨胀
8flink_taskmanager_job_task_operator_managedKeyedState状态Keyed State 大小(bytes),监控 Keyed 状态膨胀情况
9flink_taskmanager_job_task_operator_managedOperatorState状态Operator State 大小(bytes),监控 Broadcast/Union 状态
10flink_taskmanager_job_task_numRecordsInPerSecondIO每秒接收记录数(吞吐量),反映数据流入速率
11flink_taskmanager_job_task_numRecordsOutPerSecondIO每秒输出记录数,反映数据流出速率,评估端到端吞吐
12flink_taskmanager_job_task_numBytesInPerSecondIO每秒接收字节数,用于网络带宽监控和容量规划
13flink_taskmanager_job_task_numBytesOutPerSecond
Flink自定义指标监控实时数据流入量 在Apache Flink这样的流式处理框架中,我们可以通过自定义指标来监控数据流的输入量,以便更好地了解和优化系统性能。Flink作为一个流式处理框架,在处理大规模实时数据时具有较高的性能和灵活性,因此很适合用于流入量监控的实现。本文介绍了如何在Flink中实现自定义指标监控流入量。通过自定义Metric类和注册机制,我们能够方便地记录和更新流入量指标,并通过相关工具进行监控和分析。在该类中,我们使用Flink的Counter指标来记录流入量,并在构造函数中通过MetricGroup创建指标。 阅读详情

相关推荐

【Flink】Flink 系统监控指标

Flink Metrics指任务在flink集群中运行过程中的各项指标,包括机器系统指标:Hostname,CPU,Memory,Thread,GC,NetWork,IO 和 任务运行组件指标:JobManager,TaskManager,Job, Task,Operater相关指标。Flink提供metrics的目的有两点:Flink原生的提供了几种主流的第三方上报方式:JMXReporter,GangliaReport,GraphiteReport等,用户可以直接配置使用。Flink Metrics是通

九师兄 4700

Flink(二十七)—— Flink Metrics 原理与监控实战

什么是 Metrics? Flink 提供的 Metrics 可以在 Flink 内部收集一些指标,通过这些指标让开发人员更好地理解作业或集群的状态。由于集群运行后很难发现内部的实际状况,跑得慢或快,是否异常等,开发人员无法实时查看所有的 Task 日志,比如作业很大或者有很多作业的情况下,该如何处理?此时 Metrics 可以很好的帮助开发人员了解作业的当前状况。 Metric Types Metrics 的类型如下: 首先,常用的如 Counter,写过 mapreduce 作业的开发人员就应该

weixin_42073629的博客 1542

第十八篇:如何进行生产环境作业监控

你好,欢迎来到第 18 课时,本课时主要讲解如何进行生产环境作业监控。 在第 15 课时“如何排查生产环境中的反压问题”中提到过我们应该如何发现任务是否出现反压,Flink 的后台页面是我们发现反压问题的第一选择,其后台页面可以直观、清晰地看到当前作业的运行状态。 在实际生产中,Flink 的后台页面可以方便我们对 Flink JobManager、TaskManager、执行计划、Slot 分配、是否反压等参数进行定位,对单个任务来讲可以方便地进行问题排查。 但是,对于很多大中型企业来讲,我们对进群的作业

微信搜:import_bigdata,大数据领域硬核原创作者 517

flink-metric原理与实战

一、背景介绍 flink内部实现了一套metric数据收集库。同时flink自身系统有一些固定的metric数据,包括系统的一些指标,CPU、内存、IO或者各个task运行的一些指标。具体包含那些指标可以查看官方文档:flink-metric。同时我们也可以利用系统的metric库在自己的代码中进行打点收集metrics数据。此外, flink提供了外部接口reporter,可以用...

bigdata_player 2007

如何进行生产环境作业监控

声明:本系列博客为原创,最先发表在拉勾教育,其中一部分为免费阅读部分。被读者各种搬运至各大网站。所有其他的来源均为抄袭。 《2021年最新版大数据面试题全面开启更新》 之前我们介绍如何发现Flink任务是否出现反压,Flink后台页面是发现问题的第一选择,后台页面可以直观、清晰地看到当前作业的运行状态。 在实际生产中,Flink的后台页面可以方便对Flink JobManager、TaskManager、执行计划、Slot分配、是否反压等参数进行定位,对单个任务来讲可以方便地进行问题...

微信搜:import_bigdata,大数据领域硬核原创作者 617

一口气搞懂「Flink Metrics」监控指标和性能优化,全靠这33张图和7千字(建议收藏)

前言 大家好,我是土哥。 最近在公司做 Flink 推理任务的性能测试,要对 job 的全链路吞吐、全链路时延、吞吐时延指标进行监控和调优,其中要使用 Flink Metrics 对指标进行监控。 接下来这篇文章,干货满满,我将带领读者全面了解 Flink Metrics 指标监控,并通过实战案例,对全链路吞吐、全链路时延、吞吐时延的指标进行性能优化,彻底掌握 Flink Metrics 性能调优的方法和 Metrics 的使用。大纲目录如下: 1 Flink Metrics 简介 Flink Metri

逆流而上Mr李 2568

Flink Metrics 指标监控详解

Flink 提供了完善的 Metrics 系统,用于监控作业运行状态。监控吞吐量(QPS)追踪处理延迟观察反压情况自定义业务指标@Override// 添加自定义分组层级.addGroup("etl") // 第一层:etl// 第二层:ua_parser// 在分组下注册指标/*** 算子级指标封装*/// Counter// Meter// Gaugereturn m;使用。

qq_41161764的博客 1386

Flink实战:监控(一)Metrics监控原理与实战

声明:本系列博客是根据SGG的视频整理而成,非常适合大家入门学习。 《2021年最新版大数据面试题全面开启更新》 本文主要讲解 Metrics、如何使用 Metrics 分析问题并解决问题,并对 Metrics 监控实战进行解释说明。 本文作者:Apache Flink Contributor 刘彪 什么是 Metrics? Flink 提供的 Metrics 可以在 Flink 内部收集一些指标,通过这些指标让开发人员更好地理解作业或集群的状态。由于集群运行后很难发现内部的实际状况,跑得慢或快,

微信搜:import_bigdata,大数据领域硬核原创作者 1189

Flink CDC监控指标详解:Metrics收集与告警配置

你是否曾遭遇过CDC任务静默失败却浑然不觉?生产环境中,数据同步延迟超过30分钟才被发现?本文将系统讲解Flink CDC监控指标体系,从核心指标解析到告警规则配置,帮你构建全方位的数据流监控体系,确保数据同步链路的稳定性与实时性。读完本文你将掌握: - 3类核心监控指标的识别与解读 - 5分钟完成Prometheus+Grafana部署 - 10个生产级告警规则模板 - 7个优化监控效率的最佳实...

gitblog_00963的博客 1429

OpenCV实战:5分钟搞定图像拼接(附Python代码)

本文通过OpenCV实战教程,详细讲解如何使用Python在5分钟内完成图像拼接。重点介绍`findHomography`函数和单应性矩阵的应用,提供完整的代码示例和常见问题解决方案,帮助开发者快速掌握图像拼接技术。

weixin_26833503的博客 120

2.2.1.3-移动平均线(python画k线、均线、5日线、买卖点图、python均线策略)

* 绘制一个k线图,也就是蜡烛图 * 计算5日均线值、10日均线值 * 在k线图上,绘制5日线和10日线图 * 在5日线上,绘制与10日线的交叉点(上穿、下穿时) python画k线、均线、5日线、买卖点图、python均线策略

KelvinLiu 3413

flink-learning 实战:构建 Kafka Metrics Reporter 实现 Flink 指标实时上报与监控

本文聚焦 flink-learning 仓库中 `flink-learning-extends/flink-metrics` 扩展模块下的 **flink-metrics-kafka** 子模块,讲解如何通过自定义 Flink MetricReporter,把 JobManager / TaskManager 的 JVM、Checkpoint、网络等指标以结构化 JSON 的形式实时写入 Kafk

gitblog_00865的博客 699

【IC设计实战】去耦电容decap在电源完整性中的关键作用与选型策略

本文深入探讨了去耦电容(decap)在IC设计电源完整性中的核心作用。文章分析了decap如何通过提供本地电荷缓冲来抑制电源噪声与电压波动,并详细阐述了其选型与布局策略,包括MIM、MOM、MOS电容的特性对比,以及如何权衡峰值抑制与建立速度的矛盾,为设计稳定可靠的芯片电源系统提供实践指导。

weixin_29233857的博客 247

Flink Web UI 与 Metrics 深度解析:实时监控与诊断指南

Flink Web UI 与 Metrics 系统为流处理作业提供全面的监控能力。Web UI包含作业管理、运行时监控(TaskManager状态、算子吞吐量、背压检测)和故障诊断(异常堆栈、火焰图)三大核心功能。Metrics系统通过Counter、Gauge等指标类型实现吞吐量监控和性能分析。生产环境中可集成Prometheus和Grafana,配置关键告警规则(如检查点失败、高背压)。高级诊断包括状态大小分析、延迟追踪和GC优化。系统支持RBAC权限管理和HTTPS加密,确保安全访问。

csdn_tom_168的博客 2056

C++游戏开发入门:从环境配置到第一个完整项目

C++ 作为游戏开发领域的关键语言,其学习路径常因语法枯燥而令初学者却步。以项目驱动的方式学编程,能帮助学习者将变量、循环、函数、指针等基础概念融入实际游戏逻辑中,获得即时反馈与完整项目经验。掌握合适的开发环境是高效实践的前提,例如在 Windows 下使用 VS Code 搭配 MinGW-w64 编译器,配合调试器与构建脚本,即可搭建轻量可扩展的 C++ 游戏开发工作流。此类课程通常面向无基础人群,从控制台小游戏逐步过渡到带游戏循环的完整作品,过程中还需关注性能观察、素材授权与版本管理。无论你是刚接触编

weixin_30621959的博客 540

微磁模拟实战指南:从OOMMF安装到首个3D模型运行

本文详细介绍了OOMMF微磁模拟软件的安装与使用,从环境配置到首个3D模型运行的完整教程。涵盖Windows、Linux和macOS平台的安装避坑指南,以及MIF文件编写、并行计算优化等实战技巧,帮助研究人员快速掌握这一开源工具在磁畴壁运动、磁滞回线等微磁学问题中的应用。

weixin_29294597的博客 153

详解 Flink Metrics 原理与监控实战

本文由 Apache Flink Contributor 刘彪分享,对什么是 Metrics、如何使用 Metrics两大问题进行了详细的介绍,并对 Metrics 监控实战进行解释说明。什么是 Metrics?Flink 提供的 Metrics 可以在 Flink 内部收集一些指标,通过这些指标让开发人员更好地理解作业或集群的状态。由于集群运行后很难发现内部的实际状况,跑得慢或快,是否异常等,...

http://www.54tianzhisheng.cn/ 1395

uniApp微信小程序:利用live-pusher人脸活体检测功能+完整示例代码,uniapp使用live-pusher直播推流组件实现人脸验证-活体检测,检测人脸中的动作包括眨眼、张嘴、左右摇头动作

UniApp 使用 live-pusher 实现人脸活体检测(附完整源码)uniapp开发微信小程序人脸检测活体检测,在uni-app的微信小程序项目中使用live-pusher实现人脸识别,uniapp使用live-pusher实现模拟人脸识别效果,张张嘴、眨眨眼、向左摇头、向右摇头等动作,免费使用人脸活体检测的插件方案,uniapp小程序怎么免费使用人脸活体,直播推流,UNIAPP微信小程序使用live-pusher实现人脸识别(拍照)功能,在uni-app项目中实现人脸识别,既使用uni-app中的l

✅ 精选推荐文章 3013

Flink Metrics 与 Web UI 实战指南:从指标采集到可视化监控

本文详细解析了Flink Metrics系统与Web UI的实战应用,从指标采集到可视化监控的全流程。通过核心组件工作流程、指标类型详解及生产环境监控方案设计,帮助开发者实现高效的实时监控与诊断,提升大数据处理作业的稳定性和性能。

lilh34434的博客 292

zemax---光学设计基础概念篇(持续更新中)

光学设计相关知识概念

u011699626的博客 1145

月薪30k+的工业视觉,必备Java+YOLO技能(工业级落地全拆解)

30k+工业视觉岗的核心不是算法调参,而是用Java把YOLO落地到工业场景的能力——稳运行、能对接、可管理是高薪的核心壁垒;必备技能分五层:模型工业级适配、Java推理核心、SpringBoot后端、工业部署运维、场景适配,每层都要练到“能落地、能讲清、能避坑”;学习路径的核心是“实战驱动”:不要只学理论,从一个完整的工业项目(如锂电缺陷检测)入手,练完就能对标高薪岗。

2601_94871597的博客 524

Flink 指标(Metrics)体系完全指南:注册、作用域、系统指标与监控集成

Flink 内置了一套完整的指标(Metric)系统,允许用户从任意用户函数中收集指标并将其暴露给外部监控系统。本文以 Apache Flink 官方运维文档为核心,系统讲解如何在 Flink 中注册自定义指标(Counter、Gauge、Histogram、Meter)、理解与配置指标作用域(Scope)、参考全部系统内置指标,以及通过 REST API 和 Web Dashboard 查询与可

gitblog_00219的博客 158

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Flink详解 Metrics 原理与实践

什么是 Metrics ? Flink 提供的 Metrics 可以在 Flink 内部收集一些指标,通过这些指标让开发人员更好地理解作业或集群的状态。由于集群运行后很难发现内部的实际状况,跑得慢或快,是否异常等,开发人员无法实行查看所有的 Task 日志,比如作业很大或者有很多作业的情况下,该如何处理?此时 Metrics 可以很好的帮助开发人员了解作业的当前状况。 Metric Types Metrics 的类型如下: 首先,常用的如 Counter,写过 mapreduce 作业的开发人员就应该很

hhhhhhfq的博客 2632

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

3步搭建!Apache Flink Metrics可视化监控:Grafana仪表盘配置指南

你还在为Flink集群性能问题排查头疼?本文将通过3个步骤,教你从零搭建专业的Flink Metrics监控面板,实时掌握集群吞吐量、延迟和资源使用率。读完你将获得: - 完整的Prometheus + Grafana部署方案 - 开箱即用的监控指标配置模板 - 常见性能瓶颈的可视化诊断方法 ## 一、准备工作:核心组件与环境要求 ### 1.1 必备依赖 Flink Metrics监控体系需...

gitblog_00569的博客 1258

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Flink Metrics 原理与使用

文章目录1. 什么是 Metrics?1.1 Metric Type1.2 Metric Group2. 怎么用 Metrics?2.1 System Metrics2.2 User-defined Metrics2.3 User-defined Metrics Example2.4 获取 Metrics2.5 Metric Reporter3. 利用 Metrics 做监控3.1 自动化运维3....

maben996 2208

Apache Flink 进阶(八):详解 Metrics 原理与实战

本文由 Apache Flink Contributor 刘彪分享,对什么是 Metrics、如何使用 Metrics两大问题进行了详细的介绍,并对 Metrics 监控实战进行解释说明。什么是 Metrics?Flink 提供的 Metrics 可以在 Flink 内部收集一些指标,通过这些指标让开发人员更好地理解作业或集群的状态。由于集群运行后很难发现内部的实际状况,跑得慢或快,是否异常等,...

Ververica的博客 3468
上一篇: Flink 系列第13篇:Flink 生产环境中的并行度与资源配置
下一篇: Flink 系列第15篇:Flink 侧输出(Side Output)详解及实践
juniperhan
博客等级 码龄1年 132粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值