使用 Amazon 監控 Amazon Kinesis Data Streams 服務 CloudWatch - Amazon Kinesis Data Streams

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

使用 Amazon 監控 Amazon Kinesis Data Streams 服務 CloudWatch

Amazon Kinesis Data Streams 和 Amazon CloudWatch 已整合,因此您可以收集、檢視和分析 CloudWatch Kinesis 資料串流的指標。例如,若要追蹤碎片用量,您可以監控 IncomingBytesOutgoingBytes 指標,並將它們與串流中的碎片數量比較。

您設定的串流指標和碎片層級指標會自動收集,並推送至 CloudWatch 每分鐘。指標將封存兩週,之後即會捨棄資料。

下表說明 Kinesis 資料串流的基本串流層級和增強之碎片層級監控。

Type 描述

基本 (串流層級)

串流層級資料將每分鐘免費自動傳送。

增強 (碎片層級)

碎片層級資料會每分鐘傳送 (需另行支付費用)。若要取得此層級的資料,您必須使用 EnableEnhancedMonitoring操作為串流特別啟用它。

如需定價的相關資訊,請參閱 Amazon CloudWatch 產品頁面。

Amazon Kinesis Data Streams 維度和指標

Kinesis Data Streams CloudWatch 會在兩個層級將指標傳送至 :串流層級,以及可選擇的碎片層級。串流層級指標適用於正常情況下最常見的監控使用案例。碎片層級指標適用於特定監控任務,通常與疑難排解相關,並使用 EnableEnhancedMonitoring操作啟用。

如需從 CloudWatch 指標收集的統計資料說明,請參閱 Amazon CloudWatch 使用者指南 中的CloudWatch 統計資料

基本串流層級指標

AWS/Kinesis 命名空間包含下列串流層級指標。

Kinesis Data Streams CloudWatch 每分鐘會傳送這些串流層級指標。這些是一律可用的指標。

指標 描述
GetRecords.Bytes

擷取自 Kinesis 串流的位元組數目,這是對指定的期間進行測量。Minimum、Maximum 與 Average 統計資訊代表指定期間內串流之單一 GetRecords 操作中的位元組。

分區層級指標名稱:OutgoingBytes

維度: StreamName

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:位元組

GetRecords.IteratorAge

此指標不再使用。請使用 GetRecords.IteratorAgeMilliseconds

GetRecords.IteratorAgeMilliseconds

對 Kinesis 串流進行之所有 GetRecords 呼叫中最後一筆記錄的存留期,這是對指定的期間進行測量。目前時間與將 GetRecords 呼叫的最後一筆記錄寫入至串流時之間的差異就是存留期。Minimum 和 Maximum 統計資訊可以用來追蹤 Kinesis 取用者應用程式進度。零值指出所讀取的記錄完全與串流同步。

分區層級指標名稱:IteratorAgeMilliseconds

維度: StreamName

統計資訊:Minimum、Maximum、Average、Samples

單位:毫秒

GetRecords.Latency

每個 GetRecords 操作所需的時間,這是對指定的期間進行測量。

維度: StreamName

統計資訊:Minimum、Maximum、Average

單位:毫秒

GetRecords.Records

擷取自分區的記錄數目,這是對指定的期間進行測量。Minimum、Maximum 與 Average 統計資訊代表指定期間內串流之單一 GetRecords 操作中的記錄。

分區層級指標名稱:OutgoingRecords

維度: StreamName

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:計數

GetRecords.Success

每個串流的成功 GetRecords 操作數目,這是對指定的期間進行測量。

維度: StreamName

統計資訊:Average、Sum、Samples

單位:計數

IncomingBytes

在指定的期間內,成功放入 Kinesis 串流的位元組數目。此指標包含來自 PutRecordPutRecords 操作的位元組。Minimum、Maximum 與 Average 統計資訊代表指定期間內串流之單一 Put 操作中的位元組。

分區層級指標名稱:IncomingBytes

維度: StreamName

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:位元組

IncomingRecords

在指定的期間內,成功放入 Kinesis 串流的記錄數目。此指標包含來自 PutRecordPutRecords 操作的記錄計數。Minimum、Maximum 與 Average 統計資訊代表指定期間內串流之單一 Put 操作中的記錄。

分區層級指標名稱:IncomingRecords

維度: StreamName

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:計數

PutRecord.Bytes

在指定的期間內,使用 PutRecord 操作放入 Kinesis 串流的位元組數目。

維度: StreamName

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:位元組

PutRecord.Latency

每個 PutRecord 操作所需的時間,這是對指定的期間進行測量。

維度: StreamName

統計資訊:Minimum、Maximum、Average

單位:毫秒

PutRecord.Success

每個 Kinesis 串流的成功 PutRecord 操作數目,這是對指定的期間進行測量。Average 會反映成功寫入至串流的百分比。

維度: StreamName

統計資訊:Average、Sum、Samples

單位:計數

PutRecords.Bytes

在指定的期間內,使用 PutRecords 操作放入 Kinesis 串流的位元組數目。

維度: StreamName

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:位元組

PutRecords.Latency

每個 PutRecords 操作所需的時間,這是對指定的期間進行測量。

維度: StreamName

統計資訊:Minimum、Maximum、Average

單位:毫秒

PutRecords.Records

此指標已淘汰。請使用 PutRecords.SuccessfulRecords

維度: StreamName

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:計數

PutRecords.Success

每個 Kinesis 串流中至少有一筆記錄成功的 PutRecords 操作數目,這是對指定的期間進行測量。

維度: StreamName

統計資訊:Average、Sum、Samples

單位:計數

PutRecords.TotalRecords

每個 Kinesis 資料串流之 PutRecords 操作中的記錄總數,這是對指定的期間進行測量。

維度: StreamName

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:計數

PutRecords.SuccessfulRecords

每個 Kinesis 資料串流之 PutRecords 操作中的成功記錄數目,這是對指定的期間進行測量。

維度: StreamName

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:計數

PutRecords.FailedRecords

由於內部失敗,每個 Kinesis 資料串流之 PutRecords 操作中遭拒的記錄數目,這是對指定的期間進行測量。偶爾的內部故障是預料中的,應該重試。

維度: StreamName

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:計數

PutRecords.ThrottledRecords

每個 Kinesis 資料串流之 PutRecords 操作中的由於限流遭拒的記錄數目,這是對指定的期間進行測量。

維度: StreamName

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:計數

ReadProvisionedThroughputExceeded

在指定的期間內,針對串流進行調節的 GetRecords 呼叫數目。此指標的最常用統計資訊是 Average。

Minimum 統計資訊的值為 1 時,已在指定期間內調節串流的所有記錄。

Maximum 統計資訊的值為 0 (零) 時,未在指定期間內調節串流的任何記錄。

分區層級指標名稱:ReadProvisionedThroughputExceeded

維度: StreamName

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:計數

SubscribeToShard.RateExceeded

當新訂閱嘗試因為已有相同消費者的作用中訂閱或您超出此操作每秒允許的呼叫數目而失敗時,會發出此指標。

維度: StreamName、 ConsumerName
SubscribeToShard.Success

此指標會 SubscribeToShard記錄訂閱是否已成功建立。訂閱最多只會存留 5 分鐘。因此,此指標至少每 5 分鐘發出一次。

維度: StreamName、 ConsumerName

SubscribeToShardEvent.Bytes

接收自碎片的位元組數目,此數量是在指定的期間進行測量。Minimum、Maximum 與 Average 統計資訊代表指定時段內在單一事件中發佈的位元組。

分區層級指標名稱:OutgoingBytes

維度: StreamName、 ConsumerName

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:位元組

SubscribeToShardEvent.MillisBehindLatest

讀取記錄來自串流頂端的毫秒數,表示消費者目前時間落後多少。

維度: StreamName、 ConsumerName

統計資訊:Minimum、Maximum、Average、Samples

單位:毫秒

SubscribeToShardEvent.Records

接收自碎片的記錄數目,此數量是在指定的期間進行測量。Minimum、Maximum 與 Average 統計資訊代表指定時段內在單一事件中的記錄。

分區層級指標名稱:OutgoingRecords

維度: StreamName、 ConsumerName

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:計數

SubscribeToShardEvent.Success 此指標會在每次事件成功發佈時發出。只在有作用中訂閱時此發出此指標。

維度: StreamName、 ConsumerName

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:計數

WriteProvisionedThroughputExceeded

因在指定期間內調節串流而拒絕的記錄數目。此指標包含來自 PutRecordPutRecords 操作的調節。此指標的最常用統計資訊是 Average。

Minimum 統計資訊的值為非零時,正在指定期間內調節串流的記錄。

Maximum 統計資訊的值為 0 (零) 時,目前未在指定期間內調節串流的所有記錄。

分區層級指標名稱:WriteProvisionedThroughputExceeded

維度: StreamName

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:計數

增強碎片層級指標

AWS/Kinesis 命名空間包含下列分區層級指標。

Kinesis CloudWatch 每分鐘會傳送下列碎片層級指標給 。每個指標維度都會建立 1 個 CloudWatch 指標,並且每月會進行大約 43,200 個PutMetricDataAPI呼叫。預設不會啟用這些指標。Kinesis 發出之增強型指標會收取費用。如需詳細資訊,請參閱 Amazon Custom Metrics 標題下的 Amazon CloudWatch CloudWatch Pricing。每個月每個指標的每個分區都會收取費用。

指標 描述
IncomingBytes

在指定的期間內,成功放入分區的位元組數目。此指標包含來自 PutRecordPutRecords 操作的位元組。Minimum、Maximum 與 Average 統計資訊代表指定期間內分區之單一 Put 操作中的位元組。

串流層級指標名稱:IncomingBytes

維度: StreamName、 ShardId

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:位元組

IncomingRecords

在指定的期間內,成功放入分區的記錄數目。此指標包含來自 PutRecordPutRecords 操作的記錄計數。Minimum、Maximum 與 Average 統計資訊代表指定期間內分區之單一 Put 操作中的記錄。

串流層級指標名稱:IncomingRecords

維度: StreamName、 ShardId

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:計數

IteratorAgeMilliseconds

對分區進行之所有 GetRecords 呼叫中最後一筆記錄的存留期,這是對指定的期間進行測量。目前時間與將 GetRecords 呼叫的最後一筆記錄寫入至串流時之間的差異就是存留期。Minimum 和 Maximum 統計資訊可以用來追蹤 Kinesis 取用者應用程式進度。0 (零) 值指出所讀取的記錄完全與串流同步。

串流層級指標名稱:GetRecords.IteratorAgeMilliseconds

維度: StreamName、 ShardId

統計資訊:Minimum、Maximum、Average、Samples

單位:毫秒

OutgoingBytes

擷取自分區的位元組數目,這是對指定的期間進行測量。Minimum、Maximum 與 Average 統計資訊代表在指定期間內碎片之單一 GetRecords 操作中傳回或在單一 SubscribeToShard 事件中發佈的位元組。

串流層級指標名稱:GetRecords.Bytes

維度: StreamName、 ShardId

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:位元組

OutgoingRecords

擷取自分區的記錄數目,這是對指定的期間進行測量。Minimum、Maximum 與 Average 統計資訊代表在指定期間內碎片之單一 GetRecords 操作中傳回或在單一 SubscribeToShard 事件中發佈的記錄。

串流層級指標名稱:GetRecords.Records

維度: StreamName、 ShardId

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:計數

ReadProvisionedThroughputExceeded

在指定的期間內,針對分區進行調節的 GetRecords 呼叫數目。這項例外計數涵蓋下列限制的所有維度:每秒每個分區 5 次讀取或每個分區每秒 2 MB。此指標的最常用統計資訊是 Average。

Minimum 統計資訊的值為 1 時,已在指定期間內調節分區的所有記錄。

Maximum 統計資訊的值為 0 (零) 時,未在指定期間內調節分區的任何記錄。

串流層級指標名稱:ReadProvisionedThroughputExceeded

維度: StreamName、 ShardId

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:計數

WriteProvisionedThroughputExceeded

因在指定期間內調節分區而拒絕的記錄數目。此指標包含來自 PutRecordPutRecords 操作的調節,並涵蓋下列限制的所有維度:每個分區每秒 1,000 筆記錄或每個分區每秒 1 MB。此指標的最常用統計資訊是 Average。

Minimum 統計資訊的值為非零時,正在指定期間內調節分區的記錄。

Maximum 統計資訊的值為 0 (零) 時,未在指定期間內調節分區的任何記錄。

串流層級指標名稱:WriteProvisionedThroughputExceeded

維度: StreamName、 ShardId

統計資訊:Minimum、Maximum、Average、Sum、Samples

單位:計數

Amazon Kinesis Data Streams 指標的維度

維度

描述

StreamName

Kinesis 串流名稱。所有可用的統計資訊皆以 StreamName 篩選。

建議的 Amazon Kinesis Data Streams 指標

Kinesis 資料串流客戶可能會對數個 Amazon Kinesis Data Streams 指標會特別感興趣。以下清單提供建議的指標和其使用方式。

指標 使用須知

GetRecords.IteratorAgeMilliseconds

追蹤串流中所有碎片和取用者的讀取位置。如果反覆運算器的存留期超過保留期間的 50% (預設為 24 小時,最多可設定為 7 天),會有由於記錄過期而遺失資料的風險。我們建議您在最大統計量上使用 CloudWatch 警示,以便在此遺失發生風險之前提醒您。如需使用此指標的範例案例,請參閱消費者記錄處理落後

ReadProvisionedThroughputExceeded

當您的取用者端記錄處理落後,有時難以知道瓶頸所在位置。使用此指標來判斷您的讀取是否因為超過讀取輸送量限制而受到節制。此指標的最常用統計資訊是 Average。

WriteProvisionedThroughputExceeded 這是用於與 ReadProvisionedThroughputExceeded 指標相同的用途,但用於串流的生產程式 (put) 端。此指標的最常用統計資訊是 Average。
PutRecord.Success, PutRecords.Success 我們建議您在平均統計量上使用 CloudWatch 警示,以指示記錄何時無法串流。根據生產程式的用途,選擇其中一個或兩個 put 類型。如果使用 Kinesis Producer Library (KPL),請使用 PutRecords.Success
GetRecords.Success 我們建議在平均統計量上使用 CloudWatch 警示,以指示記錄何時從串流失敗。

存取 Kinesis Data Streams 的 Amazon CloudWatch 指標

您可以使用 CloudWatch 主控台、命令列或 監控 Kinesis Data Streams 的指標 CloudWatch API。以下程序將說明如何使用這些不同的方法來存取指標。

使用 CloudWatch 主控台存取指標
  1. 在 開啟 CloudWatch 主控台https://console.aws.amazon.com/cloudwatch/

  2. 在導覽列上,選擇一個區域。

  3. 在導覽窗格中,選擇 指標

  4. CloudWatch 依類別區分的指標窗格中,選擇 Kinesis 指標

  5. 按一下相關資料列以檢視指定 MetricName和 的統計資料StreamName

    注意:大多數主控台統計資料名稱都符合先前列出的對應 CloudWatch 指標名稱,但讀取輸送量寫入輸送量 除外。這些統計資料會以 5 分鐘的間隔計算:寫入輸送量監控IncomingBytes CloudWatch 指標,以及讀取輸送量監控 GetRecords.Bytes

  6. (選用) 在圖形窗格中,選取統計資料和期間,然後使用這些設定建立 CloudWatch 警示。

使用 存取指標 AWS CLI

使用 list-metricsget-metric-statistics命令。

使用 存取指標 CloudWatch CLI

使用 mon-list-metricsmon-get-stats命令。

使用 存取指標 CloudWatch API

使用 ListMetricsGetMetricStatistics操作。