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 限制 (單位為 CPU/秒) 該 |
containerMemoryUtilization |
百分比 | Flink 應用程式叢集中跨任務管理員容器的記憶體使用率整體百分比。例如,如果有五個工作管理員,則相應地有五個 TaskManager 容器,而 Apache Flink 的受管理服務會每 1 分鐘報告間隔發佈 2* 5 個此指標的範例。 | 應用程式 | 它按每個容器計算如下: 容器記憶體用量 (位元組) * 100 / 每 Pod 部署規格的容器記憶體限制 (位元組)
|
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 狀態後端,也可用於應用程式。 |
managedMemoryUtilization* |
百分比 | 派生者 managedMemoryUsed/managedMemoryTotal | 應用程式、運算子、任務、平行處理層級 | * 僅可用於執行 Flink 1.13 版本之 Managed Service for Apache Flink 應用程式。 這與 Java 堆積之外由 Flink 管理的記憶體有關。它用於 RocksDB 狀態後端,也可用於應用程式。 |
numberOfFailedCheckpoints |
計數 | 檢查點失敗的次數。 | 應用程式 | 您可以使用此指標來監控應用程式運作狀態和進度。檢查點可能會因為應用程式問題 (例如輸送量或許可問題) 而失敗。 |
numRecordsIn* |
計數 | 此應用程式、運算子或任務已接收的記錄總數。 | 應用程式、運算子、任務、平行處理層級 | * 若要套用一段時間內 (秒/分鐘) 的 SUM 統計資料:
指標的「層級」指定此指標是衡量整個應用程式、特定運算子還是特定任務接收的記錄總數。 |
numRecordsInPerSecond* |
計數/秒 | 此應用程式、運算子或任務每秒收到的記錄總數。 | 應用程式、運算子、任務、平行處理層級 | * 若要套用一段時間內 (秒/分鐘) 的 SUM 統計資料:
指標的「層級」指定此指標是衡量整個應用程式、特定運算子還是特定任務每秒接收的記錄總數。 |
numRecordsOut* |
計數 | 此應用程式、運算子或任務發出的記錄總數。 | 應用程式、運算子、任務、平行處理層級 |
* 若要套用一段時間內 (秒/分鐘) 的 SUM 統計資料:
指標的「層級」指定此指標是衡量整個應用程式、特定運算子還是特定任務發出的記錄總數。 |
numLateRecordsDropped* |
計數 | 應用程式、運算子、任務、平行處理層級 | * 若要套用一段時間內 (秒/分鐘) 的 SUM 統計資料:
此運算子或任務因遲到而丟棄的記錄數。 |
|
numRecordsOutPerSecond* |
計數/秒 | 此應用程式、運算子或任務每秒發出的記錄總數。 | 應用程式、運算子、任務、平行處理層級 |
* 若要套用一段時間內 (秒/分鐘) 的 SUM 統計資料:
指標的「層級」指定此指標是衡量整個應用程式、特定運算子還是特定任務每秒發出的記錄總數。 |
oldGenerationGCCount |
計數 | 所有任務管理員中發生的垃圾回收操作總數。 | 應用程式 | |
oldGenerationGCTime |
毫秒 | 執行垃圾回收操作所花費的總時間。 | 應用程式 | 您可以使用此指標來監控總計、平均和最大垃圾回收時間。 |
threadCount |
計數 | 應用程式使用的即時執行緒總數。 | 應用程式 | 此指標衡量應用程式的程式碼使用的執行緒數目。這與應用程式平行處理層級不同。 |
uptime |
毫秒 | 作業在不中斷的情況下執行的時間。 | 應用程式 | 您可以使用此指標來判斷作業是否在成功執行。此指標針對已完成的作業傳回 -1。 |
KPUs* |
計數 | 應用程式使用的 KPU 總數。 | 應用程式 | * 此指標會在每個計費週期 (一小時) 接收一個樣本。若要視覺化一段時間內的 KPU 數目,請在至少一 (1) 小時的期間內使用 MAX 或 AVG。 KPU 計數包括 |
Kinesis Data Streams 連接器測量結果
AWS 除了下列項目之外,還會發出 Kinesis Data Streams 的所有記錄:
指標 | 單位 | 描述 | Level | 使用須知 |
---|---|---|---|---|
millisbehindLatest |
毫秒 | 取用者位於串流開頭之後的毫秒數,指出取用者落後目前時間多久。 | 應用程式 (串流)、平行處理 (用於 ShardId) |
|
bytesRequestedPerFetch |
位元組 | 對 getRecords 的單一呼叫請求的位元組。 |
應用程式 (串流)、平行處理 (用於 ShardId) |
Amazon MSK 連接器指標
AWS 除了以下內容之外,還會發出 Amazon MSK 的所有記錄:
指標 | 單位 | 描述 | 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 會在應用程式層級發出下列指標:KPUs
cpuUtilization
、heapMemoryUtilization
、oldGenerationGCTime
、oldGenerationGCCount
、和threadCount
。此外,它還會在應用程式層級發出下表中顯示的指標。
指標 | 單位 | 描述 | 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 |
檢視 CloudWatch 量度
您可以使用 CloudWatch Amazon 主 CloudWatch 控台或 AWS CLI.
使用 CloudWatch 主控台檢視指標
請在以下位置開啟 CloudWatch 主控台。
https://console.aws.amazon.com/cloudwatch/ -
在導覽窗格中,選擇 指標。
-
在 Apache Flink 的受管理服務的「按類別分類的CloudWatch 測量結果」窗格中,選擇測量結果類別。
-
在上方窗格中,向下捲動以檢視完整指標清單。
若要使用檢視量度 AWS CLI
-
在命令提示中,使用下列命令。
aws cloudwatch list-metrics --namespace "AWS/KinesisAnalytics" --region
region
設定 CloudWatch 量度報告層級
您可以控制應用程式建立的應用程式指標層級。Managed Service for Apache Flink 支援下列指標層級:
-
應用程式:應用程式只報告每個應用程式的最高層級指標。依預設,Managed Service for Apache Flink 指標在 Application 層級發佈。
-
任務:應用程式針對使用「任務」指標報告層級定義的指標來報告任務特定的指標維度,例如每秒進出應用程式的記錄數。
-
運算子:應用程式針對以「運算子」指標報告層級定義的指標來報告運算子特定的指標維度,例如每個篩選或對應操作的指標。
-
平行處理層級:應用程式為每個執行緒報告
Task
和Operator
層級指標。由於成本過高,平行處理設定超過 64 的應用程式不建議使用此報告層級。注意
鑒於服務所產生的指標資料量,您只能使用此指標層級進行疑難排解。您只能使用 CLI 來設定此指標層級。此指標層級在主控台中無法使用。
預設層級為應用程式。應用程式會報告目前層級和所有更高層級的指標。例如,如果報告層級設定為運算子,則應用程式會報告應用程式、任務和運算子指標。
您可以使用動作的MonitoringConfiguration
參數或CreateApplication
動作的參數來設定 CloudWatch MonitoringConfigurationUpdate
量度報告層級。UpdateApplication
下列UpdateApplication
動作要求範例會將 CloudWatch 量度報告層級設定為 Task:
{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "MonitoringConfigurationUpdate": { "ConfigurationTypeUpdate": "CUSTOM", "MetricsLevelUpdate": "TASK" } } } }
您也可以使用 CreateApplication
動作的 LogLevel
參數或 UpdateApplication
動作的 LogLevelUpdate
參數來設定記錄層級。您可以使用下列日誌層級:
-
ERROR
:記錄可能復原的錯誤事件。 -
WARN
:記錄可能導致錯誤的警告事件。 -
INFO
:記錄資訊事件。 -
DEBUG
:記錄一般偵錯事件。
如需 Log4j 記錄層級的詳細資訊,請參閱 Apache Log4j