Flink學習筆記之Metrics原理與實戰

2021-10-11 16:32:25 字數 1879 閱讀 6487

目錄

1. 概述

2. metrics基礎知識介紹

2.1 metric types

2.2 metric group

3. metrics的使用

3.1 system metrics

3.2 使用者自定義metrics

3.3 獲取metrics的方式

3.4 metric reporter

4. metric 實戰案例

4.1 自動化運維

4.2 效能分析

5. 參考鏈結

flink提供的metrics可以在flink內部收集一些指標,來讓開發和運維人員更好的理解作業或集群狀態。

參考官網文件metric types

flink內部有多層結構,以group的方式組織,

指標的唯一標識:metric group + metric name

官網system metrics參考

flink自帶的metric都是系統層面的,使用者可以根據自己的業務邏輯來對外暴露一些指標,用於監控,這點類似於spring boot 中的endpoint端點功能。

如下**片段:

繼承 richfunction

•register user-defined metric group: getruntimecontext().getmetricgroup().addgroup(…)

•register user-defined metric: getruntimecontext().getmetricgroup().counter/gauge/meter/histogram(…)

下面的**片段展示了如何使用使用者自定義metric:

•counter processedcount = getruntimecontext().getmetricgroup().counter("processed_count");

processedcount.inc();

•meter processrate = getruntimecontext().getmetricgroup().meter("rate", new meterview(60));

processrate.markevent();

•getruntimecontext().getmetricgroup().gauge("current_timestamp", system::currenttimemillis);

•histogram histogram = getruntimecontext().getmetricgroup().histogram("histogram", new descriptivestatisticshistogram(1000));

histogram.update(1024);

主要有3種方式來獲取metric

官網metric reporter參考這裡

利用常用的metric,來做自動化運維和效能分析,如下為自動化運維的乙個流程圖:

效能分析的流程如下:發現問題-->剖析問題-->分析原因-->借助profiling工具

Flink學習筆記之WaterMark

event time 業務系統中事件發生的事件。通常因為各種原因會有部分延遲到達系統,所以需要進行亂序處理。ingestion time 到達流處理系統的事件,因為是在入口的地方賦值,具有流中統一不變的特性。processing time 流處理器的本地事件,因為flink是併發執行,各個處理器的本...

Flink學習筆記(五) flink資料合流

上一章記錄了flink的分流操作,那麼有分流是不是應該有合流呢?當然是有這樣的操作啦 stream1和stream2流需要合併為stream流 1.union合流 2.connect合流 前置配置 streamexecutionenvironment env streamexecutionenvir...

Flink學習筆記1 Flink框架api介紹

1.獲得 execution 環境 getexecutionenvironment createlocalenvironment createremoteenvironment string host,int port,string.jarfiles 批處理示例 executionenvironme...