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

本文涉及的产品
实时计算 Flink 版,5000CU*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轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
存储 Prometheus 运维
[10.14 workshop] 自定义 Prometheus 监控指标并通过 Grafana 展示
阿里云Prometheus监控全面对接开源Prometheus生态,支持类型丰富的组件监控,提供多种开箱即用的预置监控大盘,且提供全面托管的Prometheus服务。借助阿里云Prometheus监控,您无需自行搭建Prometheus监控系统,因而无需关心底层数据存储、数据展示、系统运维等问题。
[10.14 workshop] 自定义 Prometheus 监控指标并通过 Grafana 展示
|
4月前
|
存储 编解码 关系型数据库
使用Graphite、StatsD和CollectD进行统计数据跟踪简介
使用Graphite、StatsD和CollectD进行统计数据跟踪简介
48 0
|
7月前
|
JSON Kubernetes 数据格式
Grafana 系列文章(十三):如何用 Loki 收集查看 Kubernetes Events
Grafana 系列文章(十三):如何用 Loki 收集查看 Kubernetes Events
|
7月前
|
Prometheus Cloud Native
「译文」如何使用 PromQL join 来更有效地查询大规模的 Prometheus 指标
「译文」如何使用 PromQL join 来更有效地查询大规模的 Prometheus 指标
|
存储 消息中间件 算法
课时1:可观测(Trace)相关介绍
课时1:可观测(Trace)相关介绍
|
消息中间件 Prometheus 监控
Metrics 指标分析 |学习笔记
快速学习 Metrics 指标分析
396 0
Metrics 指标分析 |学习笔记
|
存储 运维 监控
跟误告警说再见,Smart Metrics 帮你用算法配告警
本文从两类常见的无效告警规则入手,分析有效告警配置难,误告警泛滥的原因,介绍 Smart Metrics 是如何帮助用户解决告警难配的问题的,并介绍一些最佳实践。
跟误告警说再见,Smart Metrics 帮你用算法配告警
|
Prometheus Kubernetes 监控
k8s集群监控(2)-部署kube-state-metrics对资源对象监控
kube-state-metrics对k8s集群中的资源对象监控,包括 pod 、 deployment, service
k8s集群监控(2)-部署kube-state-metrics对资源对象监控
|
Prometheus 监控 Cloud Native
3W字干货深入分析基于Micrometer和Prometheus实现度量和监控的方案(下)
最近线上的项目使用了spring-actuator做度量统计收集,使用Prometheus进行数据收集,Grafana进行数据展示,用于监控生成环境机器的性能指标和业务数据指标。一般,我们叫这样的操作为"埋点"。SpringBoot中的依赖spring-actuator中集成的度量统计API使用的框架是Micrometer,官网是micrometer.io。在实践中发现了业务开发者滥用了Micrometer的度量类型Counter,导致无论什么情况下都只使用计数统计的功能。这篇文章就是基于Micrometer分析其他的度量类型API的作用和适用场景。
626 0
3W字干货深入分析基于Micrometer和Prometheus实现度量和监控的方案(下)
|
监控 Apache 流计算
Metrics 和监控(一)| 学习笔记
快速学习 Metrics 和监控。