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

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

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

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


Metrics 和监控(一)

 

内容介绍:

一、什么是 Metrics

二、Metrics 的类型

三、Metric Group

四、怎么用 Metrics

五、如何获取 Metrics

六、实战:利用 Metrics 监控(几个哲学问题)

七、实战

 

一、什么是 Metrics

相当于指标等一类的意思;fink 提供的 Metrics,可以在 fink 内部收集这样的指标,然后暴露出指标,去更好的理解作业的状态、集群的状态。

这样更好的理解内部的状态。(不能实时检测作业的过程)Metrics 就相当于可以实时监控作业的工具。

 

二、Metrics 的类型

1、counter 计数器;

可以进行累加或者累减

2、Gauge 最简单的Metrics,反映一个值

看现在内存有多少可以每次实时暴露Gauge,Gauge目前的值就是kept使用的量。

3、meter 统计吞吐量,单位时间内发生“事件”的次数。

相当于求一种速率,事件处理它所用的时间得出的类似于斜率的东西。

4、histogram 统计数据分布、quantile(分位数),mean(频率值),stddev(标准方差),max,min(给一段时间,一段时间内做一个详细的统计)

 

三、Metric Group

1、Metric 在 Flink 内部有多层结构,并不是扁平化结构,是具有层级关系的,以 Group的方式组织

2、Metric Group + Metric Name 的唯一标识。下面是一个具体的例子(层级关系):

TaskManagerMetricGroup

TaskManagerJobMetricGroup

TaskMetricGroup

TasklOMetricGroup

OperatorMetricGroup

$User-defined Group}/ $fUser-defined Metrics}(自己加的 Metric,可以有自己的分层)

OperatorlOMetricGroup

JobManagerMetricGroup(层级少)

JobManagerJobMetricGroup

 

四、怎么用 Metrics

第一步 what,第二步 how

1、系统内置的 Metrics

(1)CPU

(2)memory(heap 的使用情况、nonheap 的使用情况、direct 使用情况)

(3)threads

(4)garbage collection

(5)class loader(不常用)

(6)network(广泛)解决性能问题 network 很好用。不只是网络传输。可以简单想象为Flink结构,一个有向无环图,可以看到上下游是一种生产者消费者模型。定位性能后面会讲到。

(7)cluster(集群)

(8)availability

(9)checkpointing(可以体现潜在的问题)

(10)rockDB(作业规模数据量足够大,需要额外关注,随着数据量的增大,性能会下降。但不会明显下降)

(11)IO

(12)connnectors

(13)kinesis connector

2、User-defined Metrics

除了系统的 Metrics 之外,Flink 支持自定义 Metrics

继承 RichFunction(才可以有接口)

Register user-defined Metric Group:(自定义层级)

getRuntimeContext().getMetricGroup().addGroup(...) 入口

Register user-defined Metric:getRuntimeContext).getMetricGroup@).counter/gauge/meter/histogram(...)

例: 

Counter processedCount= getRuntimeContext().getMetricGroup().counter("processed_count"):

processedCount.inc();

Meter processRate = getRuntimeContext().getMetricGroup().meter("rate", new MeterView(60));

processRate.markEvent(); (meter 多长时间内发生的记录,要有一个时间的窗口,单位为秒;加一个事件不需要每次 counter)getRuntimeContext().getMetricGroup().gauge("current_timestamp",System::currentTimeMillis);

Histogram histogram = getRuntimeContext().getMetricGroup().histogram("histogram", new

DescriptiveStatisticsHistogram(1000));

histogram.update(1024);(继承关系,)

https://ci.apache.org/projects/flink/flink-docs-release-1.8/monitoring/metrics.html#metric-types

相关实践学习
基于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日以线上峰会的形式与大家见面。
相关文章
|
API Apache 数据库
Flink CDC 3.0 正式发布,详细解读新一代实时数据集成框架
Flink CDC 于 2023 年 12 月 7 日重磅推出了其全新的 3.0 版本 ~
108907 8
 Flink CDC 3.0 正式发布,详细解读新一代实时数据集成框架
|
IDE 数据可视化 Java
5款经典代码阅读器的使用方案对比
代码阅读是技术人的必备技能之一,高效地梳理代码能够极大程度上提高开发人员的工作效率,进一步为业务创造新价值。
12258 0
5款经典代码阅读器的使用方案对比
|
存储 Java 大数据
Spring Boot 2.x :通过 spring-boot-starter-hbase 集成 HBase
HBase 是在 Hadoop 分布式文件系统(简称:HDFS)之上的分布式面向列的数据库。而且是 2007 最初原型,历史悠久。 那追根究底,Hadoop 是什么?Hadoop是一个分布式环境存储并处理大数据。本文介绍通过 spring-boot-starter-hbase 集成 HBase。
13525 0
|
9月前
|
存储 SQL 数据挖掘
深入理解 Flink 中的 State
Flink 的 State(状态)是其四大核心之一,为流处理和批处理任务提供强大支持。本文深入探讨 Flink 中的状态管理,涵盖 State 在 HDFS 中的存储格式、存在形式(如 ValueState、ListState 等)、使用方法、过期时间 TTL 和清除策略,并介绍 Table API 和 SQL 模块中的状态管理。通过实际案例,帮助读者理解如何在电商订单处理、实时日志统计等场景中有效利用状态管理功能。
763 16
|
11月前
|
Java UED Spring
Springboot通过SSE实现实时消息返回
通过Spring Boot实现SSE,可以简单高效地将实时消息推送给客户端。虽然SSE有其限制,但对于许多实时消息推送场景而言,它提供了一种简洁而强大的解决方案。在实际开发中,根据具体需求选择合适的技术,可以提高系统的性能和用户体验。希望本文能帮助你深入理解Spring Boot中SSE的实现和应用。
4729 1
|
12月前
|
弹性计算 安全 API
HTTP 405 Method Not Allowed:解析与解决
本文详细解析了HTTP 405 "Method Not Allowed" 错误,包括其定义、常见原因、示例代码及解决方案。通过检查API文档、修改请求方法或更新服务器配置,可有效解决此错误,提升Web开发效率。
6083 2
|
关系型数据库 MySQL Unix
MySQL配置不区分大小写的方法
结论 通过适当配置 lower_case_table_names参数以及在数据定义和查询中选择合适的校对规则,可以灵活地控制MySQL中的大小写敏感性,以适应不同的应用场景和需求。这样的设置既可以增加数据库的兼容性,又可以在必要时利用大小写敏感性进行精确的数据处理。需要注意的是,修改 lower_case_table_names参数后,最好在数据库初始化时进行,以避免现有表名的大小写问题。
1305 3
|
监控 网络协议 Java
Java TCP长连接详解:实现稳定、高效的网络通信
Java TCP长连接详解:实现稳定、高效的网络通信
|
监控 Java Shell
深入了解Spring Cloud Data Flow:流数据管道的管理和编排
在现代软件开发中,数据流处理变得越来越重要。随着数据量的不断增长,处理实时数据流以及批处理数据变得愈发复杂。为了更好地管理和编排数据流,Spring社区提供了一个强大的工具,即Spring Cloud Data Flow(SCDF)。本文将深入介绍Spring Cloud Data Flow的核心概念、架构和使用方式,以帮助您更好地理解和利用这个强大的数据流处理框架。