使用 Amazon 監控 Step Functions 指標 CloudWatch - AWS Step Functions

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

使用 Amazon 監控 Step Functions 指標 CloudWatch

監控是維持可靠性,可用性和性能的重要組成部分 AWS Step Functions 和您的 AWS 解決方案。您應該從中收集盡可能多的監視數據 AWS 您使用的服務,以便您可以偵錯多點失敗。

開始監視 Step Functions 之前,您應該先建立可回答下列問題的監視計劃:

  • 監控目標是什麼?

  • 要監控哪些資源?

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

  • 要使用哪些監控工具?

  • 誰將執行監控任務?

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

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

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

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

  • ActivitiesStarted

  • ActivitiesTimedOut

  • ExecutionsStarted

  • ExecutionsTimedOut

  • LambdaFunctionsStarted

  • LambdaFunctionsTimedOut

Step Functions 測量結果 CloudWatch

Step Functions 向 Amazon 提供以下類型的指標 CloudWatch。您可以使用這些指標來追蹤狀態機器和活動,並設定閾值的警示。您可以使用 AWS Management Console.

CloudWatch 指標傳送

CloudWatch 指標是以最大的努力為基礎提供。

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

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

報告時間間隔的量度

某些「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生錯誤。

OpenExecutionCount是開啟工作流程的大約數目。此量度將低於觀察到的執行中工作流程計數。執行開啟的工作流程計數低於 10,000 可能會顯示零開啟的執行。若要在接近您的警示時通知您OpenExecutionLimit,我們建議您使用臨界值為 100K 或更高的最大統計資料,因為預設開啟的工作流程限制為 1,000,000 次執行。

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的。

注意

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

服務整合指標

AWS/States名空間包含下列 Step Functions 服務整合的量度。如需詳細資訊,請參閱整合服務與 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的。

檢視 Step Functions 測量結果 CloudWatch

您可以使用主 CloudWatch 控台來檢視執行、活動、函數和服務整合的 Step Functions 指標。

  1. 登入 AWS Management Console 並打開控 CloudWatch 制台。

  2. 選擇 Metrics (指標) 並前往 All Metrics (所有指標) 標籤,然後選擇 States (狀態)

    如果您最近執行了任何執行,最多可以看到四種類型的指標:

    • 執行指標

    • Activity Function Metrics (活動函數指標)

    • Lambda 函數指標

    • 服務整合指標

  3. 選擇指標類型,以查看指標清單。

    • 若要依量度名稱排序量StateMachineArn,或使用欄標題。

    • 若要檢視指標的圖表,請在清單上選擇指標旁的方塊。您可以使用圖表視圖上方的時間範圍控制變更圖表參數。

      您可以使用相對值或絕對值 (特定天數和時間) 選擇自訂時間範圍。您還可以使用下拉式清單將值顯示為行、重疊圖表或號碼 (值)。

    • 若要檢視圖表的詳細資訊,請將滑鼠游標暫留在圖表下方顯示的量度顏色代碼上,即可顯示量度詳細資訊。

如需使用指 CloudWatch 標的詳細資訊,請參閱 Amazon 使用者指南中的使 CloudWatch 用 Amazon 指 CloudWatch

設定 Step Functions 量度量的警示 CloudWatch

您可以使用 Amazon CloudWatch 警示來執行動作。例如,如果您想知道何時達到警示臨界值,可以設定警示,以便在StateMachinesFailed指標上升超過特定閾值時傳送通知給 Amazon SNS 主題,或傳送電子郵件。

設定指標的警示

  1. 登入 AWS Management Console 並打開控 CloudWatch 制台。

  2. 選擇 Metrics (指標) 並前往 All Metrics (所有指標) 標籤,然後選擇 States (狀態)

    如果您最近執行了任何執行,最多可以看到四種類型的指標:

    • 執行指標

    • Activity Function Metrics (活動函數指標)

    • Lambda 函數指標

    • 服務整合指標

  3. 選擇指標類型,以查看指標清單。

  4. 選擇指標,然後選擇 Graphed metrics (圖表化指標)

  5. 選擇清單中測量結果旁的鐘形圖示,以顯示「建立警示」頁面。

  6. 輸入 Alarm threshold (警示閾值)Actions (動作) 的值,然後選擇 Create Alarm (建立警示)

如需有關設定和使用 CloudWatch 警示的詳細資訊,請參閱 Amazon 使用 CloudWatch 者指南中的建立 Amazon CloudWatch 警示