AWS Step Functions
開発者ガイド

CloudWatch を使用して Step Functions をモニタリングする

モニタリングは、AWS Step Functions と AWS ソリューションの信頼性、可用性、パフォーマンスを維持する上で重要な部分です。マルチポイント障害をより簡単にデバッグできるように、使用する AWS サービスからモニタリングデータを収集する必要があります。ただし、Step Functions のモニタリングを開始する前に、以下の質問に回答するモニタリング計画を作成する必要があります。

  • どのような目的でモニタリングしますか?

  • モニタリングの対象となるリソースとは ?

  • どのくらいの頻度でこれらのリソースをモニタリングしますか?

  • 使用するモニタリングツールは?

  • 誰がモニタリングタスクを実行しますか?

  • 誰が問題が発生したときに通知を受け取りますか?

次のステップでは、通常の Step Functions パフォーマンスのベースラインを環境に確立します。これを行うには、さまざまな時間帯に、さまざまな負荷条件でパフォーマンスを測定します。Step Functions をモニタリングするには、モニタリングデータの履歴を保存することを検討します。このデータを、最新のパフォーマンスデータと比較するベースラインとして使用し、通常のパフォーマンスのパターンやパフォーマンスの異常を検出して、問題への対応を検討することができます。

たとえば、Step Functions を使用すると、ハートビートのタイムアウトが原因で失敗したアクティビティや Lambda タスクの数をモニタリングできます。パフォーマンスが確立したベースラインを下回った場合、ハートビート間隔を変更する必要が生じることがあります。

ベースラインを確立するには、少なくとも、次のメトリクスをモニタリングする必要があります。

  • ActivitiesStarted

  • ActivitiesTimedOut

  • ExecutionsStarted

  • ExecutionsTimedOut

  • LambdaFunctionsStarted

  • LambdaFunctionsTimedOut

以下のセクションでは、Step Functions が Amazon CloudWatch に提供するメトリクスについて説明します。これらのメトリクスを使用してステートマシンおよびアクティビティを追跡し、しきい値のアラームを設定できます。メトリクスは、AWS マネジメントコンソール を使用して表示できます。

時間間隔を報告するメトリクス

Step Functions CloudWatch メトリックスの一部は時間間隔であり、常にミリ秒単位で測定されます。これらのメトリクスは通常、ステートマシン、アクティビティ、Lambda 関数タイムアウトを設定できる実行段階に対応しており、わかりやすい名前が付いています。

たとえば、ActivityRunTime メトリクスは、アクティビティが実行を開始してから完了するまでの時間を測定します。同じ期間のタイムアウト値を設定できます。

CloudWatch コンソールでは、時間間隔メトリクスの表示統計として [average (平均)] を選択した場合に最良の結果になります。

カウントを報告するメトリクス

一部の Step Functions CloudWatch メトリクスは、結果をカウントとして報告します。たとえば、ExecutionsFailed はステートマシンの実行が失敗した回数を記録します。

CloudWatch コンソールでは、カウントメトリクスの表示統計として [sum (合計)] を選択した場合に最良の結果になります。

実行メトリクス

AWS/States 名前空間には、以下の Step Functions 実行のメトリクスが含まれます。

メトリクス 説明
ExecutionTime 実行の開始時点から終了時点までの間隔 (ミリ秒単位)。
ExecutionThrottled 調整済みの StateEntered イベントと再試行回数。これは StateTransition のスロットリングに関連しています。詳細については、AWS Step Functions 開発者ガイドの「状態のスロットリングに関連する制限」を参照してください。
ExecutionsAborted 中断または終了された実行の数。
ExecutionsFailed 失敗した実行の数。
ExecutionsStarted 開始された実行の数。
ExecutionsSucceeded 正常に完了した実行の数。
ExecutionsTimedOut 何らかの理由でタイムアウトした実行の数。

Step Functions 実行メトリクスのディメンション

ディメンション 説明
StateMachineArn

当該の実行に関するステートマシンの Amazon リソースネーム (ARN)。

アクティビティのメトリクス

AWS/States 名前空間には、以下の Step Functions アクティビティのメトリクスが含まれます。

メトリクス 説明
ActivityRunTime アクティビティの開始時点から終了時点までの間隔 (ミリ秒単位)。
ActivityScheduleTime アクティビティがスケジュール状態に留まる間隔 (ミリ秒単位)。
ActivityTime アクティビティがスケジュールされてから終了するまでの間隔 (ミリ秒単位)。
ActivitiesFailed 失敗したアクティビティの数。
ActivitiesHeartbeatTimedOut ハートビートタイムアウトが原因でタイムアウトしたアクティビティの数。
ActivitiesScheduled スケジュールされたアクティビティの数。
ActivitiesStarted 開始されたアクティビティの数。
ActivitiesSucceeded 正常に完了したアクティビティの数。
ActivitiesTimedOut 終了時にタイムアウトしたアクティビティの数。

Step Functions アクティビティメトリクスのディメンション

ディメンション 説明

ActivityArn

アクティビティの ARN。

Lambda 関数メトリクス

AWS/States 名前空間には、Step Functions Lambda 関数の以下のメトリクスが含まれます。

メトリクス 説明
LambdaFunctionRunTime Lambda 関数の開始時点から終了時点までの間隔 (ミリ秒単位)。
LambdaFunctionScheduleTime Lambda 関数がスケジュール状態に留まる間隔 (ミリ秒単位)。
LambdaFunctionTime Lambda 関数がスケジュールされた時点から終了する時点までの間隔 (ミリ秒単位)。
LambdaFunctionsFailed 失敗した Lambda 関数の数。
LambdaFunctionsScheduled スケジュールされた Lambda 関数の数。
LambdaFunctionsStarted 開始された Lambda 関数の数。
LambdaFunctionsSucceeded 正常に完了した Lambda 関数の数。
LambdaFunctionsTimedOut 終了時にタイムアウトした Lambda 関数の数。

Step Functions Lambda 関数メトリクスのディメンション

ディメンション 説明

LambdaFunctionArn

Lambda 関数の ARN。

サービス統合メトリクス

AWS/States 名前空間には、Step Functions サービス統合に対する次のメトリクスが含まれます。詳細については、「AWS のサービス統合」を参照してください。

メトリクス 説明
ServiceIntegrationRunTime サービスタスクの開始時点から終了時点までの間隔 (ミリ秒単位)。
ServiceIntegrationScheduleTime サービスタスクがスケジュール状態に留まる間隔 (ミリ秒単位)。
ServiceIntegrationTime サービスタスクがスケジュールされてから終了するまでの間隔 (ミリ秒単位)。
ServiceIntegrationsFailed 失敗したサービスタスクの数。
ServiceIntegrationsScheduled スケジュールされたサービスタスクの数。
ServiceIntegrationsStarted 開始したサービスタスクの数。
ServiceIntegrationsSucceeded 正常に完了したサービスタスクの数。
ServiceIntegrationsTimedOut 終了時にタイムアウトしたサービスタスクの数。

Step Functions のサービス統合メトリクスのディメンション

ディメンション 説明

ServiceIntegrationResourceArn

統合されたサービスのリソースの ARN。

サービスメトリクス

AWS/States 名前空間には、Step Functions サービスの次のメトリクスが含まれます。

メトリクス 説明
ThrottledEvents

スロットルされたリクエストの数。

ProvisionedBucketSize

1 秒あたりに利用できるリクエストの数。

ProvisionedRefillRate

バケットで許可される 1 秒あたりのリクエストの数。

ConsumedCapacity

1 秒あたりのリクエストの数。

Step Functions サービスメトリクスのディメンション

ディメンション 説明

StateTransition

データをフィルタリングして状態遷移メトリクスを表示します。

API のメトリクス

AWS/States 名前空間には、Step Functions API の次のメトリクスが含まれます。

メトリクス 説明
ThrottledEvents

スロットルされたリクエストの数。

ProvisionedBucketSize

1 秒あたりに利用できるリクエストの数。

ProvisionedRefillRate

バケットで許可される 1 秒あたりのリクエストの数。

ConsumedCapacity

1 秒あたりのリクエストの数。

Step Functions API メトリクスのディメンション

ディメンション 説明

APIName

指定された API 名の API にデータをフィルタリングします。