を使用した 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 は、ステートマシンの実行ごとに 2 つのExecutionsStartedメトリクスを出力します。これにより、 ExecutionsStarted メトリクスの SampleCount 統計は、ステートマシンの実行ごとに 2 の値を表示します。 SampleCount 統計にはExecutionStarted=1、実行が完了したExecutionStarted=0日時と が表示されます。

ヒント

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

実行メトリクス

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

メトリクス 説明
OpenExecutionCount

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

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

OpenExecutionCount は、開いているワークフローのおおよその数です。このメトリクスは、観測された実行中のワークフロー数よりも低くなります。オープンワークフロー数を 10,000 未満にすると、オープン実行がゼロになる可能性があります。に近づいている場合に通知するアラームについてはOpenExecutionLimit、デフォルトのオープンワークフロー制限が 100K 実行であるため、しきい値が 100K 以上の最大統計を使用することをお勧めします。

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 サービスメトリックのディメンション

ディメンション 説明

ServiceMetric

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

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 つ以上のアクセスリクエストが含まれることがあります。