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 展示
|
5月前
|
SQL Java API
Flink部署问题之committedOffsets指标为负值如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
5月前
|
Prometheus Cloud Native
「译文」如何使用 PromQL join 来更有效地查询大规模的 Prometheus 指标
「译文」如何使用 PromQL join 来更有效地查询大规模的 Prometheus 指标
|
5月前
|
JSON Kubernetes 数据格式
Grafana 系列文章(十三):如何用 Loki 收集查看 Kubernetes Events
Grafana 系列文章(十三):如何用 Loki 收集查看 Kubernetes Events
|
SQL JSON 数据挖掘
白话Elasticsearch33-深入聚合数据分析之案例实战bucket + metrics 统计每种颜色电视平均价格
白话Elasticsearch33-深入聚合数据分析之案例实战bucket + metrics 统计每种颜色电视平均价格
79 0
|
消息中间件 Prometheus 监控
Metrics 指标分析 |学习笔记
快速学习 Metrics 指标分析
354 0
Metrics 指标分析 |学习笔记
|
存储 SQL 数据采集
基于 Elasticsearch+Flink 的日志全观测最佳实践(二)|学习笔记
快速学习基于 Elasticsearch+Flink 的日志全观测最佳实践(二)
409 0
基于 Elasticsearch+Flink 的日志全观测最佳实践(二)|学习笔记
|
运维 监控 Cloud Native
Metrics 和监控(二)| 学习笔记
快速学习 Metrics 和监控。
134 0
Metrics 和监控(二)| 学习笔记
|
SQL 数据采集 监控
网站流量日志分析--统计分析--基础指标统计分析(pv、uv)|学习笔记
快速学习网站流量日志分析--统计分析--基础指标统计分析(pv、uv)
476 0
网站流量日志分析--统计分析--基础指标统计分析(pv、uv)|学习笔记