Metrics 和监控(二)| 学习笔记

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
简介: 快速学习 Metrics 和监控。

开发者学堂课程【Apache Flink 入门到实战 - Flink 开源社区出品 Metrics 和监控(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/632/detail/10046


Metrics 和监控(二)

五、如何获取 Metrics

1、Web UI

2、RESTful API(对程序比较友好,写自动化脚本,运维;通过 RESTful API 解析格式,这样对程序友好 )

详见:htps://dapache.orz/orojedsftimnk fink doc-release 18/montorne/ret aplhtonl

image.png

以上是逻辑:

(1)Web UI和RESTful API

通过中心化的一个节点,定期去拉从各个组件实现。细节:拉,不一定实时更新。一个定期更新的逻辑。

小问题:不同步。因为某种情况没拉过来是不会更新的。因此会延迟。试着等一下就会更新。 

(2)红色的线有一个中心化的节点去聚合。

(3)蓝色的线是每一个单独的点。去直接汇报。如果要聚合需要在第三方。优点:内存大。用原始数据做处理。 

3、Metric Reporter(功能强大)

Flink 内置了很多 Reporter,对外部系统的技术选型可以参考,详见:

https://ci.apache.org/projects/flink/flink-docs-release-

1.8/monitoring/metrics.htm|#reporter

Metric Reporter Configuration Example

metrics.reporters: your monitorimx

metrics.reporter.jmx.class(必须):org.apache.flink.metrics.jmx.JMXReporter

metrics.reporter.jmx.port:1025-10000

metrics.reporter.your_monitor.class(必须): com.your company.YourMonitorClass

metrics.reporter(自定义).your monitor.interval: 10 SECONDS

metrics.reporter.your_monitor.config.a: your_a_value

metrics.reporter.your_monitor.config(自定义).b: your_b_value

(常见的系统:Graphite 、InfluxDB、Prometheus、SIf4j 调试好用)

 

六、实战:利用 Metrics 监控

1、自动化运维

(1) 收集 Metrics 作为决策依据

利用 Metric Reporter 收集 Metrics 到

存储/分析系统(例如 TSDB)

或者直接通过 RESTful API

(2)定制监控规则

关注关键指标,Failover,

Checkpoint, 业务 Delay(可能没有,需自己添加)

3)通知工具

自动报警:

钉钉报警,邮件报警,短信报警,电话报警

(4)大盘、报表、指标

通过大盘时刻了解作业总体信息

通过报表分析优化

下图所示大盘:可以关注业务延迟,队列的状况等

image.png

2、性能分析

(1)发现问题

异常指标

(2)剖析问题

缩小范围,验证假设,找

到瓶颈页

(3)分析原因

业务逻辑,JVM,操作系统,

State, 数据分布,高级功能

(4)借助 profiling工具

 

七、实战

“我的任务慢,怎么办”

1、为什么提问没人回答?

(一般没有老师会回答,闻着伤心,听者流泪,提问黑洞,话题终结者)

系统框架问题,需要进行很多轮的剖析。对于系统运作不熟悉,可以求助 Metrics

image.png

例如:发现一个 failover 的问题,都应该是0,但是有一个突起

image.png

延迟,自己统计的数据和当前数据不一致。也有问题。

image.png

TPS 的突降也是有问题的

常用的解决方法:

(1)缩小范围,定位瓶颈

例如:后面都是空的,但是前面满了。那么说明是一号节点的问题,这是就可以主要检查一号节点。100%是指最大值

image.png

发现324就是最高的,这时就可以缩小范围。

image.png

(2)多维度分析

① 业务维度(多)

并发度是否合理

数据波峰波谷(是不是平均的,波峰波谷)

数据倾斜(统计出来发现有些很满,有些没有,较难解决,是否打散数据)

② Garbage Collection(常见,内存没有配够,越来越慢,看GC)

GC log

③ Checkpoint Alignment(对齐,发现前三者没有问题,可以将其对齐)

④ State Backend 性能(如果数据量很大的需要小心)

Rockdb(随着数据量的增大,性能会下降,但又不会断崖似的下跌,下降的很慢。可能积攒了几天数据之后才会延迟,比较难查。)

⑤ 系统性能

CPU

内存,Swap

Disk IO, 吞吐量,容量

Network IO, 带宽

(越往下,概率越小。先缩小范围,利用 metrics) 

2、为什么

黑盒,缺少信息,无法了解系统状态

3、怎么办

求助 metrics

回答问题:

1、report 是专门的现成吗?

是的,每个 report 都是自己单独的。

2、Flink 内部的现成

有很多。

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
JSON 前端开发 JavaScript
java中post请求调用下载文件接口浏览器未弹窗而是返回一堆json,为啥
客户端调接口需要返回另存为弹窗,下载文件,但是遇到的问题是接口调用成功且不报错,浏览器F12查看居然返回一堆json,而没有另存为弹窗; > 正确的效果应该是:接口调用成功且浏览器F12不返回任何json,而是弹窗另存为窗口,直接保存文件即可。
456 2
|
Java
springboot 异常java.net.BindException: Address already in use: bind
springboot 异常java.net.BindException: Address already in use: bind
310 0
|
消息中间件 测试技术 开发工具
消息队列 MQ操作报错合集之收到"WARN RocketmqClient - consumeMessage Orderly return"警告,是什么原因
在使用消息队列MQ时,可能会遇到各种报错情况。以下是一些常见的错误场景、可能的原因以及解决建议的汇总:1.连接错误、2.消息发送失败、3.消息消费报错、4.消息重试与死信处理、5.资源与权限问题、6.配置错误、7.系统资源限制、8.版本兼容性问题。
294 0
|
Kubernetes 负载均衡 网络协议
k8s网络诊断之我的流量去哪了
某客户反馈,生产业务的应用在做滚动更新时大量502报错,同时生产业务中pod设置了prestop来优雅下线(延迟关闭),但是在滚动更新时依然会有502的问题,由于生产环境流量比较高,决定搭建测试环境模拟复现该问题,实际复现过程中发现,pod切换完成后,客户端访问svc关联的SLB,应用会超时一段时间或者qps下降为0
2045 1
|
JSON Java 数据格式
JAVA对象jackson序列化json属性名首字母变成小写的解决方案
java代码对象如下: package com.ctrip.market.messagepush.
2827 0
|
机器学习/深度学习 人工智能 编解码
【DSW Gallery】基于EasyNLP-Diffusion模型的中文文图生成
EasyNLP提供多种模型的训练及预测功能,旨在帮助自然语言开发者方便快捷地构建模型并应用于生产。本文简要介绍文图生成的技术,以及如何在PAI-DSW中基于EasyNLP使用diffusion model进行finetune和预测评估。
【DSW Gallery】基于EasyNLP-Diffusion模型的中文文图生成
|
消息中间件 Java RocketMQ
RocketMQ-Spring学习
们可以它的一系列动作操作,会首先将相关配置MessageConverterConfiguration、ListenerContainerConfiguration、ExtProducerResetConfiguration、ExtConsumerResetConfiguration、RocketMQTransactionConfiguration、RocketMQListenerConfiguration进行导入。在自动注入前处理事务配置RocketMQTransactionConfiguration,在自动注入后处理消息转换器配置MessageConverterConfiguration。
1452 0
RocketMQ-Spring学习
|
消息中间件 Prometheus 监控
RocketMQ 5.0 可观测能力升级: Metrics 指标分析介绍|学习笔记
快速学习 RocketMQ 5.0 可观测能力升级: Metrics 指标分析介绍
732 0
RocketMQ 5.0 可观测能力升级: Metrics 指标分析介绍|学习笔记
|
消息中间件 Prometheus 监控
Metrics 指标分析 |学习笔记
快速学习 Metrics 指标分析
510 0
Metrics 指标分析 |学习笔记
Jmeter调用接口返回乱码
Jmeter调用接口返回乱码是因为Jmeter的默认编码和项目不统一造成的,看下项目的编码是什么,将Jmeter的默认编码修改为与项目编码一致即可。
321 0
Jmeter调用接口返回乱码