Managed Service for Apache Flink 中的指標和維度 - Managed Service for Apache Flink

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

Managed Service for Apache Flink 中的指標和維度

當 Managed Service for Apache Flink 處理資料來源時,會向 Amazon CloudWatch 報告下列指標和維度。

Flink 2.2 指標變更

Flink 2.2 引入可能會影響監控和警示的指標變更。升級之前,請檢閱下列變更:

  • 指標fullRestarts已移除。請改用 numRestarts

  • uptimedowntime指標已棄用,並將在未來版本中移除。遷移至新的狀態特定指標。

  • Kinesis Data Streams 連接器 bytesRequestedPerFetch 6.0.0 的指標已移除。

應用程式指標

指標 單位 Description 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 使用率整體百分比。例如,如果有 5 個任務管理員,則相應地有 5 個任務管理員容器,Managed Service for Apache Flink 會每 1 分鐘的報告間隔發佈 2* 5 個此指標樣本。 應用程式

它按每個容器計算如下:

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

CPUUtilization 指標只考慮在容器內執行之 TaskManager JVM 處理序的 CPU 使用率。同一個容器內的 JVM 外部還有其他元件在執行。containerCPUUtilization 指標為您提供了更完整的視角,包括容器中 CPU 耗盡的所有處理序以及由此引起的故障。

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

它按每個容器計算如下:

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

HeapMemoryUtilizationManagedMemoryUtilzations 指標僅考慮特定的記憶體指標,例如 TaskManager JVM 的堆積記憶體使用情況或受管記憶體 (例如用於 RocksDB 狀態後端等原生處理序的 JVM 外記憶體使用情況)。containerMemoryUtilization 指標可為您提供更完整的視角,現包括工作集記憶體,這是一個更佳的記憶體總量耗盡追蹤器。在其耗盡之後,它將導致任務管理員 Pod Out of Memory Error

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

它按每個容器計算如下:

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

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

currentInputWatermark 毫秒 此應用程式/運算子/任務/執行緒收到的最後一個浮水印 應用程式、運算子、任務、平行處理層級 僅針對具有兩個輸入的維度發出此記錄。這是最後接收到的浮水印的最小值。
currentOutputWatermark 毫秒 此應用程式/運算子/任務/執行緒發出的最後一個浮水印 應用程式、運算子、任務、平行處理層級
downtime 【已棄用】 毫秒 對於目前處於失敗/復原狀況的作業,此中斷期間經過的時間。 應用程式 此指標衡量作業失敗或復原時經過的時間。此指標針對執行中作業傳回 0,針對完成的作業傳回 -1。如果此指標不是 0 或 -1,則表示應用程式的 Apache Flink 作業執行失敗。

Flink 2.2 中已棄用。failingTime改用 cancellingTimerestartingTime和/或 。

failingTime 毫秒 應用程式處於失敗狀態所花費的時間 (以毫秒為單位)。使用此指標來監控應用程式失敗和觸發警示。 應用程式、流程 可從 Flink 2.2 取得。取代部分已棄用downtime指標。
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 統計資料:

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

  • 由於 Managed Service for Apache Flink 每分鐘需要 4 個指標快照,因此應使用下列指標數學表達式:m1/4,其中 m1 是一段期間 (秒/分鐘) 內的 SUM 統計資料

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

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

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

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

  • 由於 Managed Service for Apache Flink 每分鐘需要 4 個指標快照,因此應使用下列指標數學表達式:m1/4,其中 m1 是一段期間 (秒/分鐘) 內的 SUM 統計資料

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

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

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

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

  • 由於 Managed Service for Apache Flink 每分鐘需要 4 個指標快照,因此應使用下列指標數學表達式:m1/4,其中 m1 是一段期間 (秒/分鐘) 內的 SUM 統計資料

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

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

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

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

  • 由於 Managed Service for Apache Flink 每分鐘需要 4 個指標快照,因此應使用下列指標數學表達式:m1/4,其中 m1 是一段期間 (秒/分鐘) 內的 SUM 統計資料

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

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

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

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

  • 由於 Managed Service for Apache Flink 每分鐘需要 4 個指標快照,因此應使用下列指標數學表達式:m1/4,其中 m1 是一段期間 (秒/分鐘) 內的 SUM 統計資料

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

oldGenerationGCCount 計數 所有任務管理員中發生的垃圾回收操作總數。 應用程式
oldGenerationGCTime 毫秒 執行垃圾回收操作所花費的總時間。 應用程式 您可以使用此指標來監控總計、平均和最大垃圾回收時間。
threadsCount 計數 應用程式使用的即時執行緒總數。 應用程式 此指標衡量應用程式的程式碼使用的執行緒數目。這與應用程式平行處理層級不同。
cancellingTime 毫秒 應用程式處於取消狀態所花費的時間 (以毫秒為單位)。使用此指標來監控應用程式取消操作。 應用程式、流程 可從 Flink 2.2 取得。取代部分已棄用downtime指標。
restartingTime 毫秒 應用程式處於重新啟動狀態所花費的時間 (以毫秒為單位)。使用此指標來監控應用程式重新啟動行為。 應用程式、流程 可從 Flink 2.2 取得。取代部分已棄用downtime指標。
runningTime 毫秒 應用程式在未中斷的情況下執行的時間 (以毫秒為單位)。取代已取代的uptime指標。 應用程式、流程 可從 Flink 2.2 取得。使用 直接取代已取代的uptime指標。
uptime 【已棄用】 毫秒 作業在不中斷的情況下執行的時間。 應用程式 您可以使用此指標來判斷作業是否在成功執行。此指標針對已完成的作業傳回 -1。

Flink 2.2 中已棄用。請改用 runningTime

jobmanagerFileDescriptorsMax 計數 JobManager 可用的檔案描述項數目上限。 應用程式、流程、主機 使用此指標來監控檔案描述項容量。
jobmanagerFileDescriptorsOpen 計數 JobManager 目前開啟的檔案描述項數量。 應用程式、流程、主機 使用此指標來監控檔案描述項用量,並偵測潛在的資源耗盡。
taskmanagerFileDescriptorsMax 計數 每個 TaskManager 可用的檔案描述項數量上限。 應用程式、流程、主機、tm_id 使用此指標來監控檔案描述項容量。
taskmanagerFileDescriptorsOpen 計數 每個 TaskManager 的目前開啟檔案描述項數量。 應用程式、流程、主機、tm_id 使用此指標來監控檔案描述項用量,並偵測潛在的資源耗盡。
KPUs* 計數 應用程式使用的 KPUs 總數。 應用程式

*此指標每個計費期間 (一小時) 會收到一個範例。若要視覺化一段時間內的 KPUs 數量,請在至少一 (1) 小時內使用 MAX 或 AVG。

KPU 計數包含 orchestration KPU。如需詳細資訊,請參閱 Managed Service for Apache Flink 定價

Flink 2.2 指標遷移指引

從 fullRestarts 遷移:指標已在 Flink fullRestarts 2.2 中移除。請改用 numRestarts 指標。numRestarts 指標提供同等功能,可以直接取代 CloudWatch 警示,無需調整閾值。

從執行時間遷移:在 Flink 2.2 中已棄用uptime指標,並將在未來版本中移除。請改用 runningTime 指標。runningTime 指標提供同等功能,可以直接取代 CloudWatch 警示,無需調整閾值。

從停機時間遷移:在 Flink 2.2 中已棄用downtime指標,並將在未來版本中移除。根據您想要監控的內容,使用下列一或多個指標:

  • restartingTime:監控重新啟動應用程式所花費的時間

  • cancellingTime:監控取消應用程式所花費的時間

  • failingTime:監控處於失敗狀態所花費的時間

Kinesis Data Streams 連接器指標

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

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

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

注意

指標bytesRequestedPerFetch已在 Flink AWS 連接器 6.0.0 版 (唯一與 Flink 2.2 相容的連接器版本) 中移除。Flink 2.2 中唯一可用的 Kinesis Data Streams 連接器指標是 。 millisBehindLatest

Amazon MSK 連接器指標

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

指標 單位 Description 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 位元組 每秒使用的主題位元組平均數目 應用程式、運算子、任務、平行處理層級

Apache Zeppelin 指標

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

指標 單位 Description Prometheus 名稱
zeppelinCpuUtilization 百分比 Apache Zeppelin 伺服器中 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