

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

# Amazon CloudWatch を使用した Step Functions メトリクスのモニタリング
<a name="procedure-cw-metrics"></a>

モニタリングは、 および AWS Step Functions AWS ソリューションの信頼性、可用性、パフォーマンスを維持する上で重要な部分です。マルチポイント障害の AWS デバッグに使用するサービスからデータを収集できます。

ただし、Step Functions のモニタリングをスタートする前に、以下の質問に回答するモニタリング計画を作成する必要があります。
+ モニタリングの目的は何ですか?
+ どのリソースをモニタリングしますか?
+ どのくらいの頻度でこれらのリソースをモニタリングしますか?
+ どのモニタリングツールを利用しますか?
+ 誰がモニタリングタスクを実行しますか?
+ 問題が発生したときに誰が通知を受け取りますか?

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

アクティビティおよびタスクの失敗をモニタリングして、ベースラインを確立することをお勧めします。パフォーマンスがベースラインメトリクスから外れた場合は、アラートを設定して根本原因を調査できるようにします。

ベースラインを確立するには、少なくとも、次のメトリクスをモニタリングする必要があります。
+  `ExecutionsStarted` 
+  `ExecutionsTimedOut` 
+  *オプション* (アクティビティを使用する場合) - `ActivitiesStarted` 
+  *オプション* (アクティビティを使用する場合) - `ActivitiesTimedOut` 

## CloudWatch の Step Functions メトリクスのタイプ
<a name="sfn-cw-metrics"></a>

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

メトリクスは CloudWatch メトリクスのコンテナである*名前空間*によってグループ化されるため、異なるアプリケーションのメトリクスが誤って集計されることはありません。

**非 ASCII 名とログ記録**  
Step Functions では、ステートマシン、実行、アクティビティ、ラベルに、ASCII 以外の文字を含む名前を使用できます。このような文字を使用すると Amazon CloudWatch がデータを記録できなくなるため、Step Functions のメトリクスを追跡できるように ASCII 文字のみを使用することをお勧めします。

### CloudWatch メトリクスの配信
<a name="cloudwatch-best-effort"></a>

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

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

この機能はベストエフォート型であるため、[請求情報とコスト管理ダッシュボード](https://console.aws.amazon.com/billing/home?#/)で利用できるレポートには、実行メトリクスに表示されない 1 つ以上のアクセスリクエストが含まれることがあります。

### 時間間隔を報告するメトリクス
<a name="monitoring-using-cloudwatch-time-interval-metrics"></a>

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

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

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

### カウントを報告するメトリクス
<a name="monitoring-using-cloudwatch-count-metrics"></a>

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

注目点として、Step Functions は、ステートマシンが実行されるたびに **2 つの** `ExecutionsStarted` メトリクスを出力します。その結果、ステートマシンが実行されるたびに、`ExecutionsStarted` メトリクスの [SampleCount](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html) 統計に **2** の値が表示されます。SampleCount 統計には、実行完了時に `ExecutionStarted=1` とその後に `ExecutionStarted=0` が表示されます。

同様に、他の実行ステータスのメトリクスも、CloudWatch メトリクスが「最低 1 回の配信」および「ベストエフォートの配信」方式を採用しているため、複数回出力されることがあります。

**ヒント**  
CloudWatch コンソールでカウントをレポートするメトリクスの表示統計として **[合計]** を使用することをお勧めします。

## CloudWatch での Step Functions メトリクスの表示
<a name="monitoring-using-cloudwatch-console"></a>

CloudWatch コンソールを使用して、実行、アクティビティ、関数、サービス統合の Step Functions メトリクスを表示できます。

1. にサインイン AWS マネジメントコンソール し、CloudWatch コンソールを開きます。

1. **[Metrics]** (メトリクス) を選択し、**[All Metrics]** (すべてのメトリクス) タブで、**[States]** (状態) を選択します。

   最近実行した場合、最大 4 タイプのメトリクスが表示されます。
   +  **実行メトリクス** 
   +  **アクティビティ関数メトリクス** 
   +  **Lambda 関数メトリクス** 
   +  **サービス統合メトリクス** 

1. メトリクスタイプを選択してメトリクスのリストを表示します。
   + メトリクスのグラフを表示するには、リストでメトリクスの横にあるボックスをオンにします。グラフパラメータは、グラフビューの上にある時間範囲コントロールを使用して変更できます。

     相対値または絶対値 (日時を指定) を使用してカスタム時間範囲を選択できます。ドロップダウンリストを使用して値を線、積み上げ領域、または数字 (値) として表示することもできます。
   + グラフの詳細を表示するには、グラフの下に表示されるメトリクス色コードにマウスカーソルを合わせてメトリクスの詳細を表示します。

CloudWatch メトリクスの操作方法の詳細については、*Amazon CloudWatch ユーザーガイド*の [Amazon CloudWatch メトリクスの使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/working_with_metrics.html)を参照してください。

## CloudWatch での Step Functions メトリクスのアラームの設定
<a name="monitoring-using-cloudwatch-console-set-alarm"></a>

Amazon CloudWatch アラームを使用してアクションを実行することができます。例えば、アラームのしきい値に到達するのがいつか知りたい場合、`StateMachinesFailed` メトリクスが一定のしきい値を超えたときに Amazon SNS トピックに通知を送信したり、メールを送信したりするようにアラームを設定できます。

### メトリクスにアラームを設定するには
<a name="to-set-an-alarm-on-a-metric"></a>

1. にサインイン AWS マネジメントコンソール し、CloudWatch コンソールを開きます。

1. 表示するメトリクスを 1 つ以上選択し、**グラフ化されたメトリクス**を選択します。

1. リストのメトリクスの横にあるベル型のアイコンを選択すると、**[アラームの作成]** ページが表示されます。

1. **[Alarm threshold]** (アラームしきい値) と **[Actions]** (アクション) に値を入力し、**[Create Alarm]** (アラームの作成) を選択します。

設定と CloudWatch アラームの使用に関する詳細については、状態の変更の詳細については、[Amazon CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/AlarmThatSendsEmail.html)の *Amazon CloudWatch アラームの作成*を参照してください。

## アカウントレベルの使用状況メトリクス
<a name="cloudwatch-step-functions-account-metrics"></a>

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

次のメトリクスはディメンションレスで、リージョン内のアカウントに適用されます。


| メトリクス | 説明 | 
| --- | --- | 
| StateMachineCount |  アカウントで現在アクティブなステートマシンの数。アカウントでステートマシンを追加または削除し、アカウントでこのメトリクスをアクティブ化するまで数分待つ必要がある場合があります。  | 
| ActivityCount |  アカウントで現在アクティブなアクティビティの数。アカウントでアクティビティを追加または削除し、アカウントのこのメトリクスをアクティブ化するまで数分待つ必要がある場合があります。  | 
| OpenExecutionCountPerStateMachine |  アカウントのステートマシンごとに実行を開きます。  | 

## 実行メトリクス
<a name="cloudwatch-step-functions-execution-metrics"></a>

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

次のメトリクスはディメンションレスで、リージョン内のアカウントに適用されます。


| メトリクス | 説明 | 
| --- | --- | 
| OpenExecutionCount |  現在の*オープン実行*の概算数 — アカウントで現在進行中のワークフロー。 目的は、Standard ワークフローで `StartExecution` または `RedriveExecution` を呼び出すときに **ExecutionLimitExceeded** エラーを回避するため、ワークフローがいつ**最大**実行制限に近づいているかを把握することです。 `OpenExecutionCount` は、オープンワークフローのおおよその数です。このメトリクスは、観測された実行中のワークフロー数よりも低くなります。10,000 未満のオープンワークフロー数を実行すると、オープン実行がゼロになる場合があります。`OpenExecutionLimit` に近づいている場合に通知するアラームについては、デフォルトのオープン状態のワークフローの実行制限が 100 万であるため、しきい値が 10 万以上の [[最大]](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html) 統計を使用することをお勧めします。  | 
| OpenExecutionLimit |  オープン実行の最大数。詳細については、「[アカウントに関連するクォータ](service-quotas.md#service-limits-accounts)」を参照してください。  *この制限は Express ワークフローには適用されません。*  | 

### すべてのステートマシンの実行メトリクス
<a name="cloudwatch-step-functions-execution-metrics-version-alias"></a>

すべてのステートマシンはメトリクスを出力します。`ExecutionThrottled` メトリクスは、スロットリング実行の場合にのみ出力されます。

次のメトリクスを でフィルタリング`StateMachineArn`して、特定のステートマシンを識別できます。

**アカウントレベルのメトリクス**  
ステートマシン ARN がない場合、次のメトリクスは**アカウントレベルで**レポートされます。ステートマシンレベルでレポートするステートマシン ARN を指定します。


| メトリクス | 説明 | 
| --- | --- | 
| ExecutionsAborted | 中断または終了された実行の数。 | 
| ExecutionsFailed | 失敗した実行の数。 | 
| ExecutionsStarted | スタートされた実行の数。 | 
| ExecutionsSucceeded | 正常に完了した実行の数。 | 
| ExecutionsTimedOut | 何らかの理由でタイムアウトした実行の数。 | 
| ExecutionThrottled | スロットリングされた StateEntered イベントと再試行の回数。これは StateTransition のスロットリングに関連しています。詳細については、「[状態のスロットリングに関連するクォータ](service-quotas.md#service-limits-api-state-throttling)」を参照してください。 | 
| ExecutionTime | 実行のスタート時点から終了時点までの間隔 (ミリ秒単位)。 | 

### Express ワークフローの実行メトリクス
<a name="cloudwatch-step-functions-execution-metrics-express-wf"></a>

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

**アカウントレベルのメトリクス**  
ステートマシン ARN がない場合、 `ExpressExecutionBilledDuration`と は**アカウントレベルで**`ExpressExecutionBilledMemory`レポートします。ステートマシンレベルでレポートするステートマシン ARN を指定します。


| メトリクス | 説明 | 
| --- | --- | 
| ExpressExecutionBilledDuration |  Express ワークフローに課金される期間。  | 
| ExpressExecutionBilledMemory | Express ワークフローに課金される消費メモリ量。 | 
|  ExpressExecutionMemory  |  特定の Express ワークフローによって消費されるメモリの合計。  | 

### 標準ワークフローの Redrive 実行メトリック
<a name="cloudwatch-redrive-execution-metrics"></a>

[redrive](redrive-executions.md) ステートマシンを実行すると、Step Functions は次のメトリクスを出力します。

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


| メトリクス | 説明 | 
| --- | --- | 
| ExecutionsRedriven | redriven 実行の回数。 | 
| RedrivenExecutionsAborted | キャンセルまたは終了された redriven 実行の数。 | 
| RedrivenExecutionsTimedOut | 何らかの理由でタイムアウトした redriven 実行の数。 | 
| RedrivenExecutionsSucceeded | 正常に完了した redriven 実行の数。 | 
| RedrivenExecutionsFailed | 失敗した redriven 実行の数。 | 

### Step Functions 実行メトリクスのディメンション
<a name="cloudwatch-step-functions-execution-metrics-dimensions"></a>


| ディメンション | 説明 | 
| --- | --- | 
|  StateMachineArn  |  当該の実行に関するステートマシンの　Amazon リソースネーム (ARN)  | 

### バージョンを使用した実行のディメンション
<a name="cloudwatch-setp-functions-version-metrics-dimensions"></a>


| ディメンション | 説明 | 
| --- | --- | 
|  StateMachineArn  |  [バージョン](concepts-state-machine-version.md)によって実行が開始されたステートマシンの Amazon リソースネーム (ARN)。  | 
| Version | 実行を開始するために使用されるステートマシンのバージョン。 | 

### エイリアスを使用した実行のディメンション
<a name="cloudwatch-setp-functions-alias-metrics-dimensions"></a>


| ディメンション | 説明 | 
| --- | --- | 
|  StateMachineArn  |  [エイリアス](concepts-state-machine-alias.md)によって実行が開始されたステートマシンの Amazon リソースネーム (ARN)。  | 
| Alias | 実行を開始するために使用されるステートマシンのエイリアス。 | 

## マップ実行メトリクス
<a name="resource-count-metrics-map-run"></a>

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


| メトリクス | 説明 | 
| --- | --- | 
| ApproximateOpenMapRunCount |  アカウントで現在進行中でオープン状態のマップ実行の概算数。 このメトリクスを使用すると、**OpenMapRunLimit** に近づいたときにアクションを実行して、バックログ状態のマップ実行を回避できます。 **OpenMapRunLimit** に近づいたときに通知するアラームには、しきい値を 900 以上に設定した **Maximum** 統計を使用することをお勧めします (デフォルトの **OpenMapRunLimit** は 1,000)。  | 
| OpenMapRunLimit |  オープン状態のマップ実行の最大数。 詳細については、「[アカウントに関連するクォータ](service-quotas.md#service-limits-accounts)」を参照してください。  | 
| ApproximateMapRunBacklogSize |  *バックログ状態*の[マップ実行](concepts-examine-map-run.md)の概算数。バックログ状態のマップ実行は、オープン状態のマップ実行の合計数がクォータを下回るまで [MapRunStarted](https://docs.aws.amazon.com/step-functions/latest/apireference/API_MapRunStartedEventDetails.html) イベントで待機します。 マップ実行がバックログ状態の間、項目の数はゼロになります。マップ実行がオープン状態になり、入力の読み取りを開始すると、カウントが増加します。  | 

## バージョンとエイリアスメトリクス
<a name="resource-count-metrics-alias-versions"></a>

`AWS/States` 名前空間には、ステートマシンのバージョンとエイリアスの数に関する以下のメトリクスが含まれます。


| メトリクス | 説明 | 
| --- | --- | 
| AliasCount |  ステートマシン用に作成された[エイリアス](concepts-state-machine-alias.md)の数。 ステートマシンごとに最大 100 個のエイリアスを[作成](concepts-state-machine-alias.md#procedure-create-aliases)できます。  | 
| VersionCount |  ステートマシンに公開されている[バージョン](concepts-state-machine-version.md)の数。 ステートマシンのバージョンを最大 1000 個[公開](concepts-state-machine-version.md#procedure-create-versions)できます。  | 

### バージョンとエイリアスのリソース数メトリクスのディメンション
<a name="resource-count-metrics-alias-versions-dimensions"></a>


| ディメンション | 説明 | 
| --- | --- | 
|  ResourceArn  |  バージョンまたはエイリアスを持つステートマシンの Amazon リソースネーム (ARN)。  | 

## アクティビティのメトリクス
<a name="cloudwatch-step-functions-activity-metrics"></a>

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

**アカウントレベルのメトリクス**  
ステートマシン ARN がない場合、次のメトリクスは**アカウントレベルで**レポートされます。ステートマシンレベルでレポートするステートマシン ARN を指定します。


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

### Step Functions アクティビティメトリクスのディメンション
<a name="cloudwatch-step-functions-activity-metrics-dimensions"></a>


| ディメンション | 説明 | 
| --- | --- | 
| ActivityArn |  アクティビティの ARN。  | 

## Lambda 関数メトリクス
<a name="cloudwatch-step-functions-lambda-function-metrics"></a>

`AWS/States` 名前空間には、Task ステート定義の Resource フィールドで**直接**参照される、Lambda 関数に関する次のメトリクスが含まれます。これらのメトリクスは、レガシーステートマシンで見つかる場合があります。最新のステートマシンでは、サービス統合メトリクスを出力する最適化された Lambda 統合を使用することをお勧めします。


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

### Step Functions Lambda 関数メトリクスのディメンション
<a name="cloudwatch-step-functions-lambda-function-metrics-dimensions"></a>


|  ディメンション  |  説明  | 
| --- | --- | 
| LambdaFunctionArn |   Lambda 関数の ARN。  | 

**注記**  
Lambda 関数メトリックスは、Lambda 関数 ARN を ` Resource` フィールドに指定するタスク状態に対して発行されます。`"Resource": "arn:aws:states:::lambda:invoke"` を使用するタスクの状態は、代わりにサービス統合メトリックを発行します。詳細については、「[Step Functions を使用して AWS Lambda関数を呼び出す](connect-lambda.md)」を参照してください。

## サービス統合メトリクス
<a name="cloudwatch-step-functions-service-integration-metrics"></a>

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


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

### Step Functions サービス統合メトリクスのディメンション
<a name="cloudwatch-step-functions-service-integration-metrics-dimensions"></a>


|  ディメンション  |  説明  | 
| --- | --- | 
| ServiceIntegrationResourceArn |  統合されたサービスのリソースの ARN。  | 

## サービスメトリクス
<a name="cloudwatch-step-functions-service-metrics"></a>

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

**アカウントレベルのメトリクス**  
ステートマシン ARN がない場合、次のメトリクスは**アカウントレベルで**レポートされます。ステートマシンレベルでレポートするステートマシン ARN を指定します。


| メトリクス | 説明 | 
| --- | --- | 
| ConsumedCapacity |  1 秒あたりのリクエストの数。  | 
| ProvisionedBucketSize |  1 秒あたりに利用できるリクエストの数。  | 
| ProvisionedRefillRate |  バケットで許可される 1 秒あたりのリクエストの数。  | 
| ThrottledEvents  | スロットリングされたリクエストの数。 | 

### Step Functions サービスメトリックのディメンション
<a name="cloudwatch-step-functions-service-metrics-dimensions"></a>


| ディメンション | 説明 | 
| --- | --- | 
| ServiceMetric |  データをフィルタリングして StateTransition を表示します。  | 
| StateMachineArn |  データをフィルタリングして、特定のステートマシンの遷移を表示します。  | 

## API 使用状況メトリクス
<a name="cloudwatch-step-functions-api-metrics"></a>

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


| メトリクス | 説明 | 
| --- | --- | 
| ThrottledEvents  | スロットリングされたリクエストの数。 | 
| ProvisionedBucketSize |  1 秒あたりに利用できるリクエストの数。  | 
| ProvisionedRefillRate |  バケットで許可される 1 秒あたりのリクエストの数。  | 
| ConsumedCapacity |  1 秒あたりのリクエストの数。  | 

### Step Functions API メトリクスのディメンション
<a name="cloudwatch-step-functions-api-metrics-dimensions"></a>


| ディメンション | 説明 | 
| --- | --- | 
| APIName |  指定された API 名の API にデータをフィルタリングします。  | 