を使用した Step Functions のモニタリング CloudWatch - AWS Step Functions

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

を使用した Step Functions のモニタリング CloudWatch

モニタリングは、 AWS Step Functions および AWS ソリューションの信頼性、可用性、パフォーマンスを維持する上で重要な部分です。マルチポイント障害をデバッグできるように、使用する 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 は、ステートマシンの実行ごとに 2 つのExecutionsStartedメトリクスを出力します。これにより、ステートマシンの実行ごとに SampleCount ExecutionsStartedメトリクスの 統計に 2 の値が表示されます。 SampleCount 統計にはExecutionStarted=1、実行が完了したExecutionStarted=0日時が表示されます。

ヒント

CloudWatch コンソールでカウントを報告するメトリクスの表示統計として Sum を選択することをお勧めします。

実行メトリクス

AWS/States 名前空間には、すべての Step Functions 実行に関する以下のメトリクスが含まれます。これらは、リージョンのアカウント全体に適用されるディメンションレスメトリクスです。

メトリクス 説明
OpenExecutionCount

現在開いている実行の概数 — アカウントで現在進行中のワークフロー。

その目的は、ワークフローがいつ最大実行制限に近づいているかを把握し、標準ワークフローRedriveExecutionStartExecutionまたは を呼び出す際のExecutionLimitExceededエラーを回避することです。

メトリクスはアクティブなワークフロー状態の遷移に依存するため、低いレベルでは、予測が観測された実行中のワークフロー数と一致しない場合があります。

OpenExecutionLimit

オープン実行の最大数。詳細については、「アカウントに関連するクォータ」を参照してください。

この制限は Express ワークフローには適用されません。

バージョンまたはエイリアスを持つステートマシンの実行メトリクス

バージョン またはエイリアス を使用してステートマシンの実行を実行すると、Step Functions は次のメトリクスを出力します。ExecutionThrottled メトリクスは、スロットリングされた実行の場合にのみ出力されます。これらのメトリクスには、特定のステートマシンを識別StateMachineArnするための が含まれます。

メトリクス 説明
ExecutionTime 実行の開始から終了までの間隔をミリ秒単位で表します。
ExecutionThrottled スロットリングされたStateEnteredイベントと再試行の数。これは StateTransition のスロットリングに関連しています。詳細については、「状態のスロットリングに関連するクォータ」を参照してください。
ExecutionsAborted 中止または終了した実行の数。
ExecutionsFailed 失敗した実行の数。
ExecutionsStarted 開始された実行の数。
ExecutionsSucceeded 正常に完了した実行の数。
ExecutionsTimedOut 何らかの理由でタイムアウトした実行の数。

Express ワークフローの実行メトリクス

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

メトリクス 説明
ExpressExecutionMemory

Express ワークフローによって消費されるメモリの合計。

ExpressExecutionBilledDuration

Express ワークフローに課金される期間。

ExpressExecutionBilledMemory

Express ワークフローに課金される消費メモリ量。

標準ワークフローの Redrive 実行メトリック

redrive ステートマシンを実行すると、Step Functions は次のメトリクスを出力します。

すべての redriven 実行で、Executions* メトリクスが出力されます。例えば、redriven実行が中止されたとします。この実行では、RedrivenExecutionsAbortedExecutionsAborted の両方で、0 以外のデータポイントが出力されます。

メトリクス 説明
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 名前空間には、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。

注記

Lambda 関数メトリックスは、Lambda 関数 ARN を 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

1 秒あたりの利用可能なリクエスト数。

ProvisionedRefillRate

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

ConsumedCapacity

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

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

ディメンション 説明

ServiceName

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

API のメトリクス

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

メトリクス 説明
ThrottledEvents

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

ProvisionedBucketSize

1 秒あたりの利用可能なリクエスト数。

ProvisionedRefillRate

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

ConsumedCapacity

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

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

ディメンション 説明

APIName

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

ベストエフォート型の CloudWatch メトリクス配信

CloudWatch メトリクスは、ベストエフォートで配信されます。

メトリクスの完全性や適時性は保証されません。特定のリクエストのデータポイントが、リクエストが実際に処理されたよりも後のタイムスタンプで返される場合があります。1 分間のデータポイントは、 を通じて使用可能になる前に遅れたり CloudWatch、まったく配信されなかったりすることがあります。 CloudWatchリクエストメトリクスを使用すると、ステートマシンの実行をほぼリアルタイムで把握できます。これは、実行に関するメトリクスのすべてを完全に報告するためのものではありません。

この機能はベストエフォート型であるため、請求情報とコスト管理ダッシュボードで利用できるレポートには、実行メトリクスに表示されない 1 つ以上のアクセスリクエストが含まれることがあります。