監視 Step Functions 使用 CloudWatch - AWS Step Functions

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

監視 Step Functions 使用 CloudWatch

監控是維持 AWS 解決方案的可靠性、可用性和效能的 AWS Step Functions 重要組成部分。您應該從使用的 AWS 服務收集盡可能多的監視資料,以便對多點失敗進行偵錯。開始監視 Step Functions 之前,您應該先建立可回答下列問題的監視計劃:

  • 監控目標是什麼?

  • 要監控哪些資源?

  • 監控這些資源的頻率為何?

  • 要使用哪些監控工具?

  • 誰將執行監控任務?

  • 發生問題時應該通知誰?

下一個步驟是在您的環境中建立正常 效能的基準。若要完成此步驟,請在各種時間及不同負載條件下測量效能。監視 Step Functions 數時,請考慮儲存歷史監視資料。這類資料會提供基準,讓您可與目前的效能資料比較,以識別出正常的效能模式和效能異常狀況,再規劃方法來處理問題。

例如,使用 Step Functions 時,您可以監視有多少活動或 AWS Lambda 工作因活動訊號逾時而失敗。當效能超出建立的基準時,您可能需要變更活動訊號的間隔。

若要建立基準,您至少必須監控下列指標:

  • ActivitiesStarted

  • ActivitiesTimedOut

  • ExecutionsStarted

  • ExecutionsTimedOut

  • LambdaFunctionsStarted

  • LambdaFunctionsTimedOut

以下各節說明 Step Functions 提供給 Amazon 的指標 CloudWatch。您可以使用這些指標來追蹤狀態機器和活動,並設定閾值的警示。您可以使用檢視量度 AWS Management Console。

報告時間間隔的量度

某些「Step Functions」測 CloudWatch 量結果是時間間隔,一律以毫秒為單位。這些指標通常對應於您的執行階段,您可以使用描述性名稱來設定狀態機器、活動和 Lambda 函數逾時。

例如,ActivityRunTime 指標會測量活動開始執行後所需的完成時間。您可以為相同的期間設定逾時值。

在 CloudWatch 主控台中,如果您選擇平均值作為時間間隔測量結果的顯示統計資料,則可以取得最佳結果。

報告計數的量度

部分 Step Functions 數 CloudWatch 量度報表的結果為計數。例如,ExecutionsFailed 會記錄狀態機器執行的失敗次數。

Step Functions 為每個狀態機執行發出兩個ExecutionsStarted指標。這會導致ExecutionsStarted測量結果的SampleCount統計值顯示每次執行狀態機器時的值 2。 SampleCount 統計資料會顯示以ExecutionStarted=1及執行完成的ExecutionStarted=0時間。

提示

我們建議您選取「和」作為在 CloudWatch 主控台中報告計數的量度的顯示統計資料。

執行指標

AWS/States命名空間包含所有「Step Functions」執行的下列測量結果。這些是跨區域帳戶套用的無維度指標。

指標 描述
OpenExecutionCount

目前開啟的執行項目大約數目 — 您帳戶中目前正在進行的工作流程。

其目的是提供您工作流程何時接近最大執行限制的深入分析,以避免在呼叫StartExecution或標準工作流程時RedriveExecutionExecutionLimitExceeded生錯誤。

量度取決於使用中的工作流程狀態轉換,因此在較低層級時,估計值可能與觀察到的執行中工作流程計數不一致。

OpenExecutionLimit

開啟的執行數目上限。如需詳細資訊,請參閱 與帳戶相關的配額

此限制不適用於快速工作流程。

具有版本或別名的狀態機的執行指標

當您使用版本別名執行狀態機器執行時,Step Functions 會發出以下指標。只有在節流執行的情況下才會發出ExecutionThrottled指標。這些指標將包括用StateMachineArn於識別特定狀態機器。

指標 描述
ExecutionTime 執行開始與關閉時間之間的間隔 (以毫秒為單位)。
ExecutionThrottled 已限制的StateEntered事件和重試次數。這和 StateTransition 的調節有關。如需詳細資訊,請參閱 與狀態節流有關的配額
ExecutionsAborted 中止或終止的執行數目。
ExecutionsFailed 失敗的執行次數。
ExecutionsStarted 已開始執行的數目。
ExecutionsSucceeded 成功完成的執行項目數目。
ExecutionsTimedOut 因任何原因逾時的執行次數。

快速工作流程的執行度量

AWS/States命名空間包含「Step Functions 快速工作流程」執行的下列度量。

指標 描述
ExpressExecutionMemory

快速工作流程使用的總記憶體。

ExpressExecutionBilledDuration

「快速工作流程」計費的持續時間。

ExpressExecutionBilledMemory

「快速工作流程」計費的使用記憶體量。

Redrive標準工作流程的執行指標

當你redrive一個狀態機執行,Step Functions 發出以下指標。

對於所有redriven執行,會發出Executions*指標。例如,假設redriven執行中止。此執行將為和發出非零數據點。RedrivenExecutionsAborted ExecutionsAborted

指標 描述
ExecutionsRedriven redriven執行次數。
RedrivenExecutionsAborted 已取消或終止的redriven執行數目。
RedrivenExecutionsTimedOut 因任何原因逾時的redriven執行次數。
RedrivenExecutionsSucceeded 順利完成的redriven執行數目。
RedrivenExecutionsFailed 失敗的redriven執行次數。

Step Functions 執行測量結果的維度

維度 描述
StateMachineArn

有問題執行的狀態機器的 Amazon 資源名稱 (ARN)。

具有版本的執行維度

維度 描述
StateMachineArn

執行由本開始的狀態機器的 Amazon 資源名稱 (ARN)。

Version

用於啟動執行的狀態機器版本。

具有別名的執行維度

維度 描述
StateMachineArn

執行由名開始的狀態機器的 Amazon 資源名稱 (ARN)。

Alias

用於啟動執行的狀態機器別名。

版本和別名的資源計數量

AWS/States命名空間包括狀態機器版本和別名計數的下列度量。

指標 描述
AliasCount

為狀態機器建立的別名數目。

每個狀態機最多可以建立 100 個別名。

VersionCount

針對狀態機器發行的版本數目。

您最多可以發佈 1000 個版本的狀態機器。

版本和別名之資源計數量度的維度

維度 描述
ResourceArn

具有版本或別名的狀態機器的 Amazon 資源名稱(ARN)。

活動指標

AWS/States命名空間包含「Step Functions」活動的下列測量結果。

指標 描述
ActivityRunTime 活動開始與關閉時間之間的間隔 (以毫秒為單位)。
ActivityScheduleTime 活動保持在排程狀態的間隔 (以毫秒為單位)。
ActivityTime 從活動排程到活動關閉的時間之間的間隔,以毫秒為單位。
ActivitiesFailed 失敗的活動數目。
ActivitiesHeartbeatTimedOut 因活動訊號逾時而逾時的活動數目。
ActivitiesScheduled 已排程活動的數目。
ActivitiesStarted 已開始活動的數目。
ActivitiesSucceeded 成功完成的活動數目。
ActivitiesTimedOut 關閉時逾時的活動數目。

Step Functions 活動測量結果的維度

維度 描述

ActivityArn

該活動的 ARN。

Lambda 功能指標

AWS/States名空間包括步驟函數 Lambda 函數的下列量度。

指標 描述
LambdaFunctionRunTime Lambda 函數啟動到關閉時間之間的間隔 (以毫秒為單位)。
LambdaFunctionScheduleTime Lambda 函數保持在排程狀態的間隔 (以毫秒為單位)。
LambdaFunctionTime Lambda 函數排定到關閉時間之間的間隔 (以毫秒為單位)。
LambdaFunctionsFailed 失敗的 Lambda 函數數目。
LambdaFunctionsScheduled 排程的 Lambda 函數數。
LambdaFunctionsStarted 已啟動的 Lambda 函數數目。
LambdaFunctionsSucceeded 成功完成的 Lambda 函數數目。
LambdaFunctionsTimedOut 關閉時逾時的 Lambda 函數數目。

步驟函數 Lambda 函數量度量的維度

維度 描述

LambdaFunctionArn

Lambda 函數的 ARN。

注意

系統會針對在欄位中指定 Lambda 函數 ARN 的工作狀態發出 Lambda 函數指標。 Resource改為使用"Resource": "arn:aws:states:::lambda:invoke"發出服務整合度量的工作狀態。如需詳細資訊,請參閱 使用 Step Functions 叫用 Lambda

服務整合指標

AWS/States名空間包含下列 Step Functions 服務整合的量度。如需詳細資訊,請參閱 AWS Step Functions 搭配其他服務使用

指標 描述
ServiceIntegrationRunTime 服務工作開始與關閉時間之間的間隔 (以毫秒為單位)。
ServiceIntegrationScheduleTime 服務工作保持在排程狀態的間隔 (以毫秒為單位)。
ServiceIntegrationTime 從排定服務工作到關閉時間之間的間隔 (以毫秒為單位)。
ServiceIntegrationsFailed 失敗的服務作業數目。
ServiceIntegrationsScheduled 排程的服務作業數目。
ServiceIntegrationsStarted 已啟動的服務作業數目。
ServiceIntegrationsSucceeded 順利完成的服務作業數目。
ServiceIntegrationsTimedOut 關閉時逾時的服務作業數目。

Step Functions 服務整合測量結果的維度

維度 描述

ServiceIntegrationResourceArn

整合服務的資源 ARN。

服務指標

AWS/States命名空間包含「Step Functions」服務的下列測量結果。

指標 描述
ThrottledEvents

已限制的要求計數。

ProvisionedBucketSize

每秒可用要求的計數。

ProvisionedRefillRate

允許進入值區的每秒要求計數。

ConsumedCapacity

每秒要求計數。

Step Functions 服務測量結果的維度

維度 描述

ServiceMetric

篩選資料以顯示狀態轉換指標

API 指標

AWS/States名空間包含 Step Functions API 的下列量度。

指標 描述
ThrottledEvents

已限制的要求計數。

ProvisionedBucketSize

每秒可用要求的計數。

ProvisionedRefillRate

允許進入值區的每秒要求計數。

ConsumedCapacity

每秒要求計數。

Step Functions API 指標的維度

維度 描述

APIName

將資料篩選為指定之 API 名稱的 API。

最大努力 CloudWatch 指標交付

CloudWatch 指標是依最佳作業基礎交付。

不保證指標的完成程度與時間先後順序。特定要求的資料點回傳,回傳時附有的時間戳記可能會晚於實際處理要求時間。資料點可能會延遲一分鐘,然後才能透過使用 CloudWatch,否則可能根本無法傳遞。 CloudWatch請求指標可讓您以近乎即時的方式瞭解狀態機器執行情況。這並不意味著是所有與執行相關的指標的完整會計。

根據此功能的最大努力,帳單和成本管理儀表板上可用的報表可能包含一或多個未出現在執行指標中的存取要求。