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

本文涉及的产品
实时计算 Flink 版,5000CU*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轻松玩转一站式实时仓库
本场景介绍如何利用阿里云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 指标分析 |学习笔记
|
运维 监控 Cloud Native
Metrics 和监控(二)| 学习笔记
快速学习 Metrics 和监控。
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实现度量和监控的方案(下)