

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

# Managed Service for Apache Flink 中的指標和維度
<a name="metrics-dimensions"></a>

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

**Flink 2.2 指標變更**  
Flink 2.2 引入可能會影響監控和警示的指標變更。升級之前，請檢閱下列變更：  
指標`fullRestarts`已移除。請改用 `numRestarts`。
`uptime` 和 `downtime`指標已棄用，並將在未來版本中移除。遷移至新的狀態特定指標。
Kinesis Data Streams 連接器 `bytesRequestedPerFetch` 6.0.0 的指標已移除。

## 應用程式指標
<a name="metrics-dimensions-jobs"></a>


| 指標 | 單位 | Description | Level | 使用須知 | 
| --- | --- | --- | --- | --- | 
| backPressuredTimeMsPerSecond\$1 | 毫秒 | 此任務或運算子每秒承受背壓的時間 (毫秒)。 | 任務、運算子、平行處理層級 | \$1 僅可用於執行 Flink 1.13 版本之 Managed Service for Apache Flink 應用程式。 這些指標可用於識別應用程式中的瓶頸。 | 
| busyTimeMsPerSecond\$1 | 毫秒 | 此任務或運算子每秒忙碌 (既不是閒置也沒有背壓) 的時間 (毫秒)。如果無法計算該值，則可以是 NaN。 | 任務、運算子、平行處理層級 | \$1 僅可用於執行 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\$1 5 個此指標樣本。 | 應用程式 | 它按每個容器計算如下： *容器使用的總 CPU 時間 (秒) \$1 100 / 容器 CPU 限制 (單位為 CPU/秒)* `CPUUtilization` 指標只考慮在容器內執行之 TaskManager JVM 處理序的 CPU 使用率。同一個容器內的 JVM 外部還有其他元件在執行。`containerCPUUtilization` 指標為您提供了更完整的視角，包括容器中 CPU 耗盡的所有處理序以及由此引起的故障。  | 
| containerMemoryUtilization | 百分比 | Flink 應用程式叢集中跨任務管理員容器的記憶體使用率整體百分比。例如，如果有 5 個任務管理員，則相應地有 5 個任務管理員容器，Managed Service for Apache Flink 會每 1 分鐘的報告間隔發佈 2\$1 5 個此指標樣本。 | 應用程式 | 它按每個容器計算如下： *容器記憶體用量 (位元組) \$1 100 / 每 Pod 部署規格的容器記憶體限制 (位元組)* `HeapMemoryUtilization` 和 `ManagedMemoryUtilzations` 指標僅考慮特定的記憶體指標，例如 TaskManager JVM 的堆積記憶體使用情況或受管記憶體 (例如用於 [RocksDB 狀態後端](https://flink.apache.org/2021/01/18/rocksdb.html#:~:text=Conclusion-,The%20RocksDB%20state%20backend%20(i.e.%2C%20RocksDBStateBackend)%20is%20one%20of,with%20exactly%2Donce%20processing%20guarantees.)等原生處理序的 JVM 外記憶體使用情況)。`containerMemoryUtilization` 指標可為您提供更完整的視角，現包括工作集記憶體，這是一個更佳的記憶體總量耗盡追蹤器。在其耗盡之後，它將導致任務管理員 Pod `Out of Memory Error`。  | 
| containerDiskUtilization | 百分比 | Flink 應用程式叢集中跨任務管理員容器的磁碟使用率整體百分比。例如，如果有 5 個任務管理員，則相應地有 5 個任務管理員容器，Managed Service for Apache Flink 會每 1 分鐘的報告間隔發佈 2\$1 5 個此指標樣本。 | 應用程式 | 它按每個容器計算如下： *磁碟使用量 (位元組) \$1 100 / 容器的磁碟限制 (位元組)* 對於容器，它代表在其上設定容器根磁碟區的檔案系統的使用率。  | 
| currentInputWatermark | 毫秒 | 此應用程式/運算子/任務/執行緒收到的最後一個浮水印 | 應用程式、運算子、任務、平行處理層級 | 僅針對具有兩個輸入的維度發出此記錄。這是最後接收到的浮水印的最小值。 | 
| currentOutputWatermark | 毫秒 | 此應用程式/運算子/任務/執行緒發出的最後一個浮水印 | 應用程式、運算子、任務、平行處理層級 |  | 
| downtime 【已棄用】 | 毫秒 | 對於目前處於失敗/復原狀況的作業，此中斷期間經過的時間。 | 應用程式 | 此指標衡量作業失敗或復原時經過的時間。此指標針對執行中作業傳回 0，針對完成的作業傳回 -1。如果此指標不是 0 或 -1，則表示應用程式的 Apache Flink 作業執行失敗。**Flink 2.2 中已棄用。**請`failingTime`改用 `cancellingTime`、 `restartingTime`和/或 。 | 
| failingTime | 毫秒 | 應用程式處於失敗狀態所花費的時間 （以毫秒為單位）。使用此指標來監控應用程式失敗和觸發警示。 | 應用程式、流程 | 可從 Flink 2.2 取得。取代部分已棄用downtime指標。 | 
| heapMemoryUtilization | 百分比 | 任務管理員的整體堆積記憶體使用率。例如，如果有 5 個任務管理員，Managed Service for Apache Flink 會針對每個報告間隔發行此指標的 5 個樣本。 | 應用程式 | 您可以使用此指標來監控應用程式中的最小、平均和最大堆積記憶體使用率。HeapMemoryUtilization 只考慮特定記憶體指標，如 TaskManager JVM 的堆積記憶體使用情況。 | 
| idleTimeMsPerSecond\$1 | 毫秒 | 此任務或運算子每秒閒置 (沒有要處理的資料) 的時間 (毫秒)。閒置時間不包括背壓時間，因此如果任務受到背壓，則不會閒置。 | 任務、運算子、平行處理層級 | \$1 僅可用於執行 Flink 1.13 版本之 Managed Service for Apache Flink 應用程式。 這些指標可用於識別應用程式中的瓶頸。 | 
| lastCheckpointSize | 位元組 | 最後一個檢查點的大小總計 | 應用程式 | 您可以使用此指標判斷執行中應用程式的儲存體使用率。如果此指標的值增加，可能表示應用程式發生了問題，例如記憶體流失或瓶頸。 | 
| lastCheckpointDuration | 毫秒 | 完成最後一個檢查點所花費的時間 | 應用程式 | 此指標會測量完成最新檢查點所花費的時間。如果此指標的值增加，可能表示應用程式發生了問題，例如記憶體流失或瓶頸。在某些情況下，您可以藉由停用檢查點來疑難排解此問題。 | 
| managedMemoryUsed\$1 | 位元組 | 目前使用中的受管記憶體數量。 | 應用程式、運算子、任務、平行處理層級 | \$1 僅可用於執行 Flink 1.13 版本之 Managed Service for Apache Flink 應用程式。 這與 Java 堆積之外由 Flink 管理的記憶體有關。它用於 RocksDB 狀態後端，也可用於應用程式。 | 
| managedMemoryTotal\$1 | 位元組 | 記憶體總量。 | 應用程式、運算子、任務、平行處理層級 | \$1 僅可用於執行 Flink 1.13 版本之 Managed Service for Apache Flink 應用程式。 這與 Java 堆積之外由 Flink 管理的記憶體有關。它用於 RocksDB 狀態後端，也可用於應用程式。`ManagedMemoryUtilzations` 指標僅考慮特定的記憶體指標，例如受管記憶體 (用於 [RocksDB 狀態後端](https://flink.apache.org/2021/01/18/rocksdb.html#:~:text=Conclusion-,The%20RocksDB%20state%20backend%20(i.e.%2C%20RocksDBStateBackend)%20is%20one%20of,with%20exactly%2Donce%20processing%20guarantees.)等原生處理序的 JVM 外記憶體使用情況) | 
| managedMemoryUtilization\$1 | 百分比 | 由 managedMemoryUsed/managedMemoryTotal 所衍生 | 應用程式、運算子、任務、平行處理層級 | \$1 僅可用於執行 Flink 1.13 版本之 Managed Service for Apache Flink 應用程式。 這與 Java 堆積之外由 Flink 管理的記憶體有關。它用於 RocksDB 狀態後端，也可用於應用程式。 | 
| numberOfFailedCheckpoints | 計數 | 檢查點失敗的次數。 | 應用程式 | 您可以使用此指標來監控應用程式運作狀態和進度。檢查點可能會因為應用程式問題 (例如輸送量或許可問題) 而失敗。 | 
| numRecordsIn\$1 | 計數 | 此應用程式、運算子或任務已接收的記錄總數。 | 應用程式、運算子、任務、平行處理層級 | \$1 若要套用一段時間內 (秒/分鐘) 的 SUM 統計資料： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/managed-flink/latest/java/metrics-dimensions.html) 指標的「層級」指定此指標是衡量整個應用程式、特定運算子還是特定任務接收的記錄總數。 | 
| numRecordsInPerSecond\$1 | 計數/秒 | 此應用程式、運算子或任務每秒收到的記錄總數。 | 應用程式、運算子、任務、平行處理層級 | \$1 若要套用一段時間內 (秒/分鐘) 的 SUM 統計資料： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/managed-flink/latest/java/metrics-dimensions.html) 指標的「層級」指定此指標是衡量整個應用程式、特定運算子還是特定任務每秒接收的記錄總數。 | 
| numRecordsOut\$1 | 計數 | 此應用程式、運算子或任務發出的記錄總數。 | 應用程式、運算子、任務、平行處理層級 |  \$1 若要套用一段時間內 (秒/分鐘) 的 SUM 統計資料： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/managed-flink/latest/java/metrics-dimensions.html) 指標的「層級」指定此指標是衡量整個應用程式、特定運算子還是特定任務發出的記錄總數。 | 
| numLateRecordsDropped\$1 | 計數 | 應用程式、運算子、任務、平行處理層級 |  | \$1 若要套用一段時間內 (秒/分鐘) 的 SUM 統計資料： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/managed-flink/latest/java/metrics-dimensions.html) 此運算子或任務因遲到而丟棄的記錄數。 | 
| numRecordsOutPerSecond\$1 | 計數/秒 | 此應用程式、運算子或任務每秒發出的記錄總數。 | 應用程式、運算子、任務、平行處理層級 |  \$1 若要套用一段時間內 (秒/分鐘) 的 SUM 統計資料： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/managed-flink/latest/java/metrics-dimensions.html) 指標的「層級」指定此指標是衡量整個應用程式、特定運算子還是特定任務每秒發出的記錄總數。 | 
| 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\$1id | 使用此指標來監控檔案描述項容量。 | 
| taskmanagerFileDescriptorsOpen | 計數 | 每個 TaskManager 的目前開啟檔案描述項數量。 | 應用程式、流程、主機、tm\$1id | 使用此指標來監控檔案描述項用量，並偵測潛在的資源耗盡。 | 
| KPUs\$1 | 計數 | 應用程式使用的 KPUs 總數。 | 應用程式 | \$1此指標每個計費期間 （一小時） 會收到一個範例。若要視覺化一段時間內的 KPUs 數量，請在至少一 (1) 小時內使用 MAX 或 AVG。 KPU 計數包含 `orchestration` KPU。如需詳細資訊，請參閱 [Managed Service for Apache Flink 定價](https://aws.amazon.com/managed-service-apache-flink/pricing/)。 | 

**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 連接器指標
<a name="metrics-dimensions-stream"></a>

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


| 指標 | 單位 | Description | Level | 使用須知 | 
| --- | --- | --- | --- | --- | 
| millisbehindLatest | 毫秒 | 取用者位於串流開頭之後的毫秒數，指出取用者落後目前時間多久。 | 應用程式 (用於串流)，平行處理層級 (用於 ShardId) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/managed-flink/latest/java/metrics-dimensions.html)  | 

**注意**  
指標`bytesRequestedPerFetch`已在 Flink AWS 連接器 6.0.0 版 （唯一與 Flink 2.2 相容的連接器版本） 中移除。Flink 2.2 中唯一可用的 Kinesis Data Streams 連接器指標是 。 `millisBehindLatest`

## Amazon MSK 連接器指標
<a name="metrics-dimensions-msk"></a>

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\$1lag\$1max | 計數 | 此視窗中任何分割區以記錄數目而言的最大延遲 | 應用程式、運算子、任務、平行處理層級 |  | 
| bytes\$1consumed\$1rate | 位元組 | 每秒使用的主題位元組平均數目 | 應用程式、運算子、任務、平行處理層級 |  | 

## Apache Zeppelin 指標
<a name="metrics-dimensions-zeppelin"></a>

對於 Studio 筆記本， 在應用程式層級 AWS 發出下列指標：`KPUs`、`cpuUtilization`、`heapMemoryUtilization`、`oldGenerationGCTime`、 `oldGenerationGCCount`和 `threadCount`。此外，它還會在應用程式層級發出下表中顯示的指標。


****  

| 指標 | 單位 | Description | Prometheus 名稱 | 
| --- | --- | --- | --- | 
| zeppelinCpuUtilization | 百分比 | Apache Zeppelin 伺服器中 CPU 使用率的整體百分比。 | process\$1cpu\$1usage | 
| zeppelinHeapMemoryUtilization | 百分比 | Apache Zeppelin 伺服器的堆積記憶體使用率整體百分比。 | jvm\$1memory\$1used\$1bytes | 
| zeppelinThreadCount | 計數 | Apache Zeppelin 伺服器使用的即時執行緒總數。 | jvm\$1threads\$1live\$1threads | 
| zeppelinWaitingJobs | 計數 | 等待執行緒的已排入佇列的 Apache Zeppelin 作業數目。 | jetty\$1threads\$1jobs | 
| zeppelinServerUptime | 秒鐘 | 伺服器啟動並執行的總時間。 | process\$1uptime\$1seconds | 