適用於 Apache Flink 的受管理服務中的度量和維度 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink 之前稱為 Amazon Kinesis Data Analytics for Apache Flink。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

適用於 Apache Flink 的受管理服務中的度量和維度

當您的 Apache Flink 受管服務處理資料來源時,適用於 Apache Flink 的受管服務會向 Amazon 報告以下指標和維度。 CloudWatch

應用程式指標

指標 單位 描述 Level 使用須知
backPressuredTimeMsPerSecond* 毫秒 此任務或運算子每秒承受背壓的時間 (毫秒)。 任務、運算子、平行處理層級

* 僅可用於執行 Flink 1.13 版本之 Managed Service for Apache Flink 應用程式。

這些指標可用於識別應用程式中的瓶頸。

busyTimeMsPerSecond* 毫秒 此任務或運算子每秒忙碌 (既不是閒置也沒有背壓) 的時間 (毫秒)。如果無法計算該值,則可以是 NaN。 任務、運算子、平行處理層級

* 僅可用於執行 Flink 1.13 版本之 Managed Service for Apache Flink 應用程式。

這些指標可用於識別應用程式中的瓶頸。

cpuUtilization 百分比 工作管理員的整體CPU使用率百分比。例如,如果有 5 個任務管理員,Managed Service for Apache Flink 會針對每個報告間隔發行此指標的 5 個樣本。 應用程式 您可以使用此指標來監視應用程式中的最小、平均和最大使用CPU率。該CPUUtilization指標僅考慮在容器內運行的 TaskManager JVM進程的CPU使用情況。
containerCPUUtilization 百分比 Flink 應CPU用程式叢集中任務管理器容器的整體使用率百分比。例如,如果有五個工作管理員,則相應地有五個 TaskManager 容器,而 Apache Flink 的受管理服務會每 1 分鐘報告間隔發佈 2* 5 個此指標的範例。 應用程式

它按每個容器計算如下:

容器使用的總CPU時間 (秒) * 100/容器CPU限制 (單位CPUs/秒)

CPUUtilization指標僅考慮在容器內運行的 TaskManager JVM進程的CPU使用情況。還有其他組件在同一個容器JVM內運行外部。該containerCPUUtilization指標為您提供了更完整的圖片,包括容器CPU耗盡方面的所有過程以及由此引起的失敗。

containerMemoryUtilization 百分比 Flink 應用程式叢集中跨任務管理員容器的記憶體使用率整體百分比。例如,如果有五個工作管理員,則相應地有五個 TaskManager 容器,而 Apache Flink 的受管理服務會每 1 分鐘報告間隔發佈 2* 5 個此指標的範例。 應用程式

它按每個容器計算如下:

容器記憶體用量 (位元組) * 100 / 每 Pod 部署規格的容器記憶體限制 (位元組)

HeapMemoryUtilization和指ManagedMemoryUtilzations標僅考慮特定的內存指標,如堆內存使用情況 TaskManager JVM或託管內存(像 RockSDB 狀態後端本機進程外JVM的內存使用情況)。containerMemoryUtilization 指標可為您提供更完整的視角,現包括工作集記憶體,這是一個更佳的記憶體總量耗盡追蹤器。一旦耗盡,它將導致該Out of Memory Error網 TaskManager 繭。

containerDiskUtilization 百分比 Flink 應用程式叢集中跨任務管理員容器的磁碟使用率整體百分比。例如,如果有五個工作管理員,則相應地有五個 TaskManager 容器,而 Apache Flink 的受管理服務會每 1 分鐘報告間隔發佈 2* 5 個此指標的範例。 應用程式

它按每個容器計算如下:

磁碟使用量 (位元組) * 100 / 容器的磁碟限制 (位元組)

對於容器,它代表在其上設定容器根磁碟區的檔案系統的使用率。

currentInputWatermark 毫秒 此應用程式/運算子/任務/執行緒收到的最後一個浮水印 應用程式、運算子、任務、平行處理層級 僅針對具有兩個輸入的維度發出此記錄。這是最後接收到的浮水印的最小值。
currentOutputWatermark 毫秒 此應用程式/運算子/任務/執行緒發出的最後一個浮水印 應用程式、運算子、任務、平行處理層級
downtime 毫秒 對於目前處於失敗/復原狀況的作業,此中斷期間經過的時間。 應用程式 此指標衡量作業失敗或復原時經過的時間。此指標針對執行中作業傳回 0,針對完成的作業傳回 -1。如果此指標不是 0 或 -1,則表示應用程式的 Apache Flink 作業執行失敗。
fullRestarts 計數 此作業提交後完全重新啟動的總次數。此指標不衡量細微的重新啟動。 應用程式 您可以使用此指標評估應用程式總體運作狀態。在 Managed Service for Apache Flink 進行內部維護期間,可能會重新啟動。重新啟動時間高於正常狀態可能表示應用程式發生了問題。
heapMemoryUtilization 百分比 任務管理員的整體堆積記憶體使用率。例如,如果有 5 個任務管理員,Managed Service for Apache Flink 會針對每個報告間隔發行此指標的 5 個樣本。 應用程式 您可以使用此指標來監控應用程式中的最小、平均和最大堆積記憶體使用率。特定記憶體指標的HeapMemoryUtilization唯一帳戶,例如 TaskManager JVM.
idleTimeMsPerSecond* 毫秒 此任務或運算子每秒閒置 (沒有要處理的資料) 的時間 (毫秒)。閒置時間不包括背壓時間,因此如果任務受到背壓,則不會閒置。 任務、運算子、平行處理層級

* 僅可用於執行 Flink 1.13 版本之 Managed Service for Apache Flink 應用程式。

這些指標可用於識別應用程式中的瓶頸。

lastCheckpointSize 位元組 最後一個檢查點的大小總計 應用程式 您可以使用此指標判斷執行中應用程式的儲存體使用率。

如果此指標的值增加,可能表示應用程式發生了問題,例如記憶體流失或瓶頸。

lastCheckpointDuration 毫秒 完成最後一個檢查點所花費的時間 應用程式 此指標會測量完成最新檢查點所花費的時間。如果此指標的值增加,可能表示應用程式發生了問題,例如記憶體流失或瓶頸。在某些情況下,您可以藉由停用檢查點來疑難排解此問題。
managedMemoryUsed* 位元組 目前使用中的受管記憶體數量。 應用程式、運算子、任務、平行處理層級

* 僅可用於執行 Flink 1.13 版本之 Managed Service for Apache Flink 應用程式。

這與 Java 堆積之外由 Flink 管理的記憶體有關。它用於 RocksDB 狀態後端,也可用於應用程式。

managedMemoryTotal* 位元組 記憶體總量。 應用程式、運算子、任務、平行處理層級

* 僅可用於執行 Flink 1.13 版本之 Managed Service for Apache Flink 應用程式。

這與 Java 堆積之外由 Flink 管理的記憶體有關。它用於 RocksDB 狀態後端,也可用於應用程式。該指ManagedMemoryUtilzations標僅考慮特定的內存指標,例如託管內存(像 RockSDB 狀態後端JVM的本機進程外的內存使用情況)

managedMemoryUtilization* 百分比 派生者 managedMemoryUsed/managedMemoryTotal 應用程式、運算子、任務、平行處理層級

* 僅可用於執行 Flink 1.13 版本之 Managed Service for Apache Flink 應用程式。

這與 Java 堆積之外由 Flink 管理的記憶體有關。它用於 RocksDB 狀態後端,也可用於應用程式。

numberOfFailedCheckpoints 計數 檢查點失敗的次數。 應用程式 您可以使用此指標來監控應用程式運作狀態和進度。檢查點可能會因為應用程式問題 (例如輸送量或許可問題) 而失敗。
numRecordsIn* 計數 此應用程式、運算子或任務已接收的記錄總數。 應用程式、運算子、任務、平行處理層級

* 若要套用一段時間內的SUM統計資料 (秒/分鐘):

  • 選取正確層級的指標。如果要追蹤運算子的指標,則需要選取對應的運算子指標。

  • 由於 Apache Flink 的受管理服務每分鐘需要 4 個量度快照,因此應使用下列量度數學運算:m1/4,其中 m1 是一段時間內的SUM統計資料 (秒/分鐘)

指標的「層級」指定此指標是衡量整個應用程式、特定運算子還是特定任務接收的記錄總數。

numRecordsInPerSecond* 計數/秒 此應用程式、運算子或任務每秒收到的記錄總數。 應用程式、運算子、任務、平行處理層級

* 若要套用一段時間內的SUM統計資料 (秒/分鐘):

  • 選取正確層級的指標。如果要追蹤運算子的指標,則需要選取對應的運算子指標。

  • 由於 Apache Flink 的受管理服務每分鐘需要 4 個量度快照,因此應使用下列量度數學運算:m1/4,其中 m1 是一段時間內的SUM統計資料 (秒/分鐘)

指標的「層級」指定此指標是衡量整個應用程式、特定運算子還是特定任務每秒接收的記錄總數。

numRecordsOut* 計數 此應用程式、運算子或任務發出的記錄總數。 應用程式、運算子、任務、平行處理層級

* 若要套用一段時間內的SUM統計資料 (秒/分鐘):

  • 選取正確層級的指標。如果要追蹤運算子的指標,則需要選取對應的運算子指標。

  • 由於 Apache Flink 的受管理服務每分鐘需要 4 個量度快照,因此應使用下列量度數學運算:m1/4,其中 m1 是一段時間內的SUM統計資料 (秒/分鐘)

指標的「層級」指定此指標是衡量整個應用程式、特定運算子還是特定任務發出的記錄總數。

numLateRecordsDropped* 計數 應用程式、運算子、任務、平行處理層級

* 若要套用一段時間內的SUM統計資料 (秒/分鐘):

  • 選取正確層級的指標。如果要追蹤運算子的指標,則需要選取對應的運算子指標。

  • 由於 Apache Flink 的受管理服務每分鐘需要 4 個量度快照,因此應使用下列量度數學運算:m1/4,其中 m1 是一段時間內的SUM統計資料 (秒/分鐘)

此運算子或任務因遲到而丟棄的記錄數。

numRecordsOutPerSecond* 計數/秒 此應用程式、運算子或任務每秒發出的記錄總數。 應用程式、運算子、任務、平行處理層級

* 若要套用一段時間內的SUM統計資料 (秒/分鐘):

  • 選取正確層級的指標。如果要追蹤運算子的指標,則需要選取對應的運算子指標。

  • 由於 Apache Flink 的受管理服務每分鐘需要 4 個量度快照,因此應使用下列量度數學運算:m1/4,其中 m1 是一段時間內的SUM統計資料 (秒/分鐘)

指標的「層級」指定此指標是衡量整個應用程式、特定運算子還是特定任務每秒發出的記錄總數。

oldGenerationGCCount 計數 所有任務管理員中發生的垃圾回收操作總數。 應用程式
oldGenerationGCTime 毫秒 執行垃圾回收操作所花費的總時間。 應用程式 您可以使用此指標來監控總計、平均和最大垃圾回收時間。
threadCount 計數 應用程式使用的即時執行緒總數。 應用程式 此指標衡量應用程式的程式碼使用的執行緒數目。這與應用程式平行處理層級不同。
uptime 毫秒 作業在不中斷的情況下執行的時間。 應用程式 您可以使用此指標來判斷作業是否在成功執行。此指標針對已完成的作業傳回 -1。
KPUs* 計數 應用程式KPUs使用的總數。 應用程式

* 此指標會在每個計費週期 (一小時) 接收一個樣本。若要視覺化KPUs隨時間推移的數量,請使用MAX或AVG超過至少一 (1) 小時的期間。

計KPU數包括 orchestrationKPU. 如需詳細資訊,請參閱 Apache Flink 定價的受管理服務

Kinesis Data Streams 連接器測量結果

AWS 除了下列項目之外,還會發出 Kinesis Data Streams 的所有記錄:

指標 單位 描述 Level 使用須知
millisbehindLatest 毫秒 取用者位於串流開頭之後的毫秒數,指出取用者落後目前時間多久。 應用程式 (串流)、平行處理 (用於 ShardId)
  • 值為 0 表示記錄處理已跟上進度,此時沒有任何新記錄可供處理。可以使用串流名稱和碎片 ID 指定特定碎片的指標。

  • 值 -1 表示服務尚未報告指標的值。

bytesRequestedPerFetch 位元組 getRecords 的單一呼叫請求的位元組。 應用程式 (串流)、平行處理 (用於 ShardId)

Amazon MSK 連接器指標

AWS 除了以下內容之外,還會發MSK出 Amazon 的所有記錄:

指標 單位 描述 Level 使用須知
currentoffsets N/A 每個分割區的取用者目前的讀取位移。您可以依據主題名稱和分割區 ID 來指定特定分割區的指標。 應用程式 (針對主題)、平行處理 (用於 PartitionId)
commitsFailed N/A 向 Kafka 遞交位移失敗的總數,如果啟用了位移遞交和檢查點。 應用程式、運算子、任務、平行處理層級 將位移遞交回 Kafka 只是公開取用者進度的一種手段,因此遞交失敗不會影響 Flink 的檢查點分割區位移完整性。
commitsSucceeded N/A 向 Kafka 成功遞交位移的總數,如果啟用了位移遞交和檢查點。 應用程式、運算子、任務、平行處理層級
committedoffsets N/A 每個分割區最後一次成功提交到 Kafka 的位移。您可以依據主題名稱和分割區 ID 來指定特定分割區的指標。 應用程式 (針對主題)、平行處理 (用於 PartitionId)
records_lag_max 計數 此視窗中任何分割區以記錄數目而言的最大延遲 應用程式、運算子、任務、平行處理層級
bytes_consumed_rate 位元組 每秒使用的主題位元組平均數目 應用程式、運算子、任務、平行處理層級

阿帕奇齐柏林飞艇指标

對於 Studio 筆記本, AWS 會在應用程式層級發出下列指標:KPUscpuUtilizationheapMemoryUtilizationoldGenerationGCTimeoldGenerationGCCount、和threadCount。此外,它還會在應用程式層級發出下表中顯示的指標。

指標 單位 描述 Prometheus 名稱
zeppelinCpuUtilization 百分比 在 Apache 齊柏林飛艇服務器CPU使用率的總體百分比。 process_cpu_usage
zeppelinHeapMemoryUtilization 百分比 Apache Zeppelin 伺服器的堆積記憶體使用率整體百分比。 jvm_memory_used_bytes
zeppelinThreadCount 計數 Apache Zeppelin 伺服器使用的即時執行緒總數。 jvm_threads_live_threads
zeppelinWaitingJobs 計數 等待執行緒的已排入佇列的 Apache Zeppelin 作業數目。 jetty_threads_jobs
zeppelinServerUptime 秒鐘 伺服器啟動並執行的總時間。 process_uptime_seconds