您好,登錄后才能下訂單哦!
怎么理解Flink指標、監控與告警,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
為什么我們關注指標監控
1. 監控報警的鏈路
2. 常用的監控項
對于系統指標最常關注的是作業的可用性,如 uptime (作業持續運行的時間)、fullRestarts (作業重啟的次數)。
第二個關注的是作業的流量,可以通過 numRecordsIn、numBytesInLocal 等相關指標來關注作業每天處理的消息數目及高峰時間段的流量,通過關注這些指標可以觀察作業的流量表現是否正常。
然后是 CPU(如:CPU.Load)、內存(如:Heap.Used )、GC ( 如:GarbageCollector.Count、GarbageCollector.Time )及網絡 ( inputQueueLength、outputQueueLength) 相關指標,這些指標一般是用來排查作業的故障信息。
另外是 checkpoint 相關信息,例如最近完成的 checkpoint 的時長( lastCheckpointDuration )、最近完成的 checkpoint 的大小( lastCheckpointSize )、作業失敗后恢復的能力( lastCheckpointRestoreTimestamp )、成功和失敗的 checkpoint 數目( numberOfCompletedCheckpoints、numberOfFailedCheckpoints )以及在 Exactly once 模式下 barrier 對齊時間( checkpointAlignmentTime )。
還有就是 connector 的指標,例如常用的 Kafka connector ,Kafka 自身提供了一些指標,可以幫助我們了解到作業最新消費的消息的狀況、作業是否有延遲等。
比如處理邏輯耗時打點,例如包含復雜邏輯的業務系統,可以通過在邏輯前后進行打點,這樣可以查看每條消息處理完這個邏輯的耗時。
另一塊是外部服務調用的性能, 在 Flink 作業中可能需要訪問外部存儲(如 Redis ), 可以通過打點來查看請求的耗時、請求的成功率等。
還有是緩存命中率,有時候由于數據集過大,我們只訪問熱數據,此時會在內存中緩存一部分信息,我們可以監控緩存命中率,如果緩存命中率非常高說明緩存有效,如果緩存命中率非常低,一直在訪問外部存儲,就需要考慮緩存設計的是否合理。
2.2 如何確定哪些指標需要關注?
第一點是作業狀態相關的, 如作業是否出故障、作業是否存活、作業是否穩定運行、影響作業可用性的風險因素(如上次 checkpoint 是否成功、最近成功的 checkpoint 的時間)。
第二點是作業性能相關的,如作業的處理延遲、數據傾斜、性能瓶頸(如外部訪問)等。
第三點是業務邏輯相關,如上游數據質量、新上的邏輯是否存在問題、數據是否存在丟失( Exactly once 語義中數據是否允許丟失)。
3. 指標的聚合方式
4. 指標監控的應用
報警時段:不同的時間段報警,可能需要有不同的域值,或者不同的報警方式(公司通訊軟件報警、電話報警等)
Q&A
在設計整套系統的架構時,需要有一定的兼容性,不能只關注一類指標。
設計初期需要考慮有哪些類型的指標,每個類型的指標有什么樣的特征,可能有哪些聚合的維度,用什么樣的方式去聚合。
搭建模型。
設計,先把指標的特征提取出來,然后對這些特征去進行設計,最后做一個能兼容的系統,這樣對于已知類型的指標,就只需修改配置就可以擴展了。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。