

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

# CloudWatch の Amazon SWF メトリクス
<a name="cw-metrics"></a>

Amazon SWF では、ワークフローおよびアクティビティを追跡し、選択したしきい値にアラームを設定するために使用できる CloudWatch のメトリクスを提供するようになりました。を使用してメトリクスを表示できます AWS マネジメントコンソール。詳細については、「[を使用した CloudWatch の Amazon SWF メトリクスの表示 AWS マネジメントコンソール](cw-metrics-console.md)」を参照してください。

**Topics**
+ [Amazon SWF メトリクスの単位の報告](#swf-reporting-units)
+ [API と決定イベントのメトリクス](#swf-throttling-metrics)
+ [Amazon SWF のメトリクス](#cloudwatch-swf-metrics)
+ [Amazon SWF 非 ASCII リソース名と CloudWatch ディメンション](#cloudwatch-swf-non-ascii)

## Amazon SWF メトリクスの単位の報告
<a name="swf-reporting-units"></a>

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

CloudWatch の Amazon SWF メトリクスの一部は*時間間隔*であり、常にミリ秒単位で測定されます。CloudWatch の単位は `Time` として報告されます。これらのメトリクスは通常、ワークフローおよびアクティビティのタイムアウトを設定できるワークフロー内の実行段階に対応しており、それぞれに似た名前が付いています。

たとえば、`DecisionTaskStartToCloseTime` メトリクスは、ディシジョンタスクが実行開始されてから完了するまでの時間を測定します。この同じ期間に対し、`DecisionTaskStartToCloseTimeout` 値を設定できます。

これらの各ワークフローステージの図と、ワークフローおよびアクティビティのライフサイクルで各ワークフローステージがいつ発生するかについては、「[Amazon SWF タイムアウトの種類](swf-timeout-types.md)」を参照してください。

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

CloudWatch の Amazon SWF メトリクスの一部は、結果を *カウント* として報告します。例えば、`WorkflowsCanceled` は、結果を *1* または *0* としてレコードしますが、これはワークフローがキャンセルされたかどうかを表します。値が 0 の場合、メトリクスが報告されなかったのではなく、メトリクスに記述された条件が発生しなかったことを示しているだけです。

CloudWatch で `Count` を報告する CloudWatch の Amazon SWF メトリックスの一部は、*1 秒あたりのカウント数*です。例えば、CloudWatch で `Count` として報告される `ProvisionedRefillRate` は、`Count` の 1 秒あたりのリクエスト*数*を表します。

カウントを返すメトリクスでは、最小値および最大値は常に 0 または 1 ですが、平均は 0 ～ 1 の範囲の値になります。

## API と決定イベントのメトリクス
<a name="swf-throttling-metrics"></a>

 CloudWatch の API および決定イベントをモニタリングして、使用量と容量のインサイトを得ることができます。「[Amazon SWF の基本的なワークフローの概念](swf-dg-basic.md)」セクションの「[deciders](swf-dev-actors.md#swf-dev-actors-deciders)」(ディサイダー)、および「[Amazon Simple Workflow Service API Reference](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_Decision.html)」(Amazon Simple Workflow Service API リファレンス) の「[Decision](https://docs.aws.amazon.com/amazonswf/latest/apireference/)」(決定) のトピックを参照してください。

また、Amazon SWF のスロットリング制限に近づいているときに、これらの制限をモニタリングしてアラームを受けることができます。これらの制約の説明とデフォルト設定については、「[Amazon SWF スロットリングのクォータ](swf-dg-limits.md#swf-throttling-limits)」を確認してください。これらの制限は、不適切なワークフローがシステムリソースを過度に消費することを防ぐためのものです。この制限の上限緩和を申請する方法については、「[クォータ引き上げのリクエスト](swf-dg-limits.md#swf-dg-limits-how-to-increase)」を参照してください。

ベストプラクティスとして、API または決定イベントの容量の 60% 前後に CloudWatch アラームを設定します。これにより、Amazon SWF のスロットリングを有効にする前に、ワークフローを調整するか、サービスの上限緩和を申請できます。呼び出しの[バースト性](https://en.wikipedia.org/wiki/Burstiness)により、サービスの上限に近づいているときに通知する複数のアラームを設定できます。
+ トラフィックに非常に大きなスパイクがある場合は、`ProvisionedBucketSize` の制限の 60% にアラームを設定します。
+ 呼び出しのレートが比較的安定している場合は、関連 API および決定イベントの `ProvisionedRefillRate` 制限の 60% にアラームを設定します。

## Amazon SWF のメトリクス
<a name="cloudwatch-swf-metrics"></a>

Amazon SWF では、次のメトリックを使用できます。


|  メトリクス  |  説明  | 
| --- | --- | 
| `DecisionTaskScheduleToStartTime` | 決定タスクを予定した時刻からワーカーがそれを取得し、開始した時刻までの時間間隔 (ミリ秒)。<br />CloudWatch 単位: `Time`<br />ディメンション: `Domain, WorkflowTypeName, WorkflowTypeVersion`<br />有効な統計: `Average, Minimum, Maximum` | 
| `DecisionTaskStartToCloseTime` | 決定タスクの開始時刻からクローズ時刻までの時間間隔 (ミリ秒)。<br />CloudWatch 単位: `Time`<br />ディメンション: `Domain, WorkflowTypeName, WorkflowTypeVersion`<br />有効な統計: `Average, Minimum, Maximum` | 
| `DecisionTasksCompleted` | 完了した決定タスクの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `Domain, WorkflowTypeName, WorkflowTypeVersion`<br />有効な統計: `Sum` | 
| PendingTasks | 特定のタスクリストでの保留中のタスクの数 (1 分間隔)。<br />CloudWatch 単位: `Count`<br />ディメンション: `Domain, TaskListName`<br />有効な統計: `Sum` | 
| `StartedDecisionTasksTimedOutOnClose` | 開始したが、クローズ時にタイムアウトした決定タスクの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `Domain, WorkflowTypeName, WorkflowTypeVersion`<br />有効な統計: `Sum` | 
| `WorkflowStartToCloseTime` | ワークフローの開始時刻からクローズ時刻までの時間間隔 (ミリ秒)。<br />CloudWatch 単位: `Time`<br />ディメンション: `Domain, WorkflowTypeName, WorkflowTypeVersion`<br />有効な統計: `Average, Minimum, Maximum` | 
| `WorkflowsCanceled` | 取り消されたワークフローの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `Domain, WorkflowTypeName, WorkflowTypeVersion`<br />有効な統計: `Sum` | 
| `WorkflowsCompleted` | 完了したワークフローの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `Domain, WorkflowTypeName, WorkflowTypeVersion`<br />有効な統計: `Sum` | 
| `WorkflowsContinuedAsNew` | 新規として継続したワークフローの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `Domain, WorkflowTypeName, WorkflowTypeVersion`<br />有効な統計: `Sum` | 
| `WorkflowsFailed` | 失敗したワークフローの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `Domain, WorkflowTypeName, WorkflowTypeVersion`<br />有効な統計: `Sum` | 
| `WorkflowsTerminated` | 終了されたワークフローの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `Cause, Domain, WorkflowTypeName, WorkflowTypeVersion`<br />有効な統計: `Sum` | 
| `WorkflowsTimedOut` | 何らかの理由でタイムアウトしたワークフローの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `Domain, WorkflowTypeName, WorkflowTypeVersion`<br />有効な統計: `Sum` | 
| `ActivityTaskScheduleToCloseTime` | アクティビティのスケジュール時刻からクローズ時刻までの時間間隔 (ミリ秒)。<br />CloudWatch 単位: `Time`<br />ディメンション: `Domain, ActivityTypeName, ActivityTypeVersion`<br />有効な統計: `Average, Minimum, Maximum` | 
| `ActivityTaskScheduleToStartTime` | アクティビティタスクのスケジュール時刻から開始時刻までの時間間隔 (ミリ秒)。<br />CloudWatch 単位: `Time`<br />ディメンション: `Domain, ActivityTypeName, ActivityTypeVersion`<br />有効な統計: `Average, Minimum, Maximum` | 
| `ActivityTaskStartToCloseTime` | アクティビティタスクの開始時刻からクローズ時刻までの時間間隔 (ミリ秒)。<br />CloudWatch 単位: `Time`<br />ディメンション: `Domain, ActivityTypeName, ActivityTypeVersion`<br />有効な統計: `Average, Minimum, Maximum` | 
| `ActivityTasksCanceled` | 取り消されたアクティビティタスクの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `Domain, ActivityTypeName, ActivityTypeVersion`<br />有効な統計: `Sum` | 
| `ActivityTasksCompleted` | 完了したアクティビティタスクの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `Domain, ActivityTypeName, ActivityTypeVersion`<br />有効な統計: `Sum` | 
| `ActivityTasksFailed` | 失敗したアクティビティタスクの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `Domain, ActivityTypeName, ActivityTypeVersion`<br />有効な統計: `Sum` | 
| `ScheduledActivityTasksTimedOutOnClose` | スケジュールされたが、クローズ時にタイムアウトしたアクティビティタスクの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `Domain, ActivityTypeName, ActivityTypeVersion`<br />有効な統計: `Sum` | 
| `ScheduledActivityTasksTimedOutOnStart` | スケジュールされたが、開始時にタイムアウトしたアクティビティタスクの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `Domain, ActivityTypeName, ActivityTypeVersion`<br />有効な統計: `Sum` | 
| `StartedActivityTasksTimedOutOnClose` | 開始されたが、クローズ時にタイムアウトしたアクティビティタスクの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `Domain, ActivityTypeName, ActivityTypeVersion`<br />有効な統計: `Sum` | 
| `StartedActivityTasksTimedOutOnHeartbeat` | 開始されたが、ハートビートタイムアウトのためタイムアウトしたアクティビティタスクの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `Domain, ActivityTypeName, ActivityTypeVersion`<br />有効な統計: `Sum` | 
| `ThrottledEvents` | スロットルされたリクエストの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `APIName, DecisionName, ThrottlingScope`<br />有効な統計: `Sum` | 
| `ProvisionedBucketSize` | 1 秒あたりに利用できるリクエストの数。<br />ディメンション: `APIName, DecisionName`<br />有効な統計: `Minimum` | 
| `ConsumedCapacity` | 1 秒あたりのリクエストの数。<br />CloudWatch 単位: `Count`<br />ディメンション: `APIName, DecisionName`<br />有効な統計: `Sum` | 
| ConsumedLimit | 消費された一般限度額。<br />ディメンション: `GeneralLimitType` | 
| `ProvisionedRefillRate` | バケットで許可される 1 秒あたりのリクエストの数。<br />ディメンション: `APIName, DecisionName`<br />有効な統計: `Minimum` | 
| ProvisionedLimit | アカウントにプロビジョニングされた一般限度額。<br />ディメンション: `GeneralLimitType` | 


|  ディメンション  |  説明  | 
| --- | --- | 
| `Domain` | ワークフローまたはアクティビティが実行中の Amazon SWF ドメインにデータをフィルタリングします。 | 
| `ActivityTypeName` | アクティビティタイプの名前にデータをフィルタリングします。 | 
| `ActivityTypeVersion` | アクティビティタイプのバージョンにデータをフィルタリングします。 | 
| `WorkflowTypeName` | このワークフロー実行のワークフロータイプの名前にデータをフィルタリングします。 | 
| `WorkflowTypeVersion` | このワークフロー実行のワークフロータイプのバージョンにデータをフィルタリングします。 | 
| `APIName` | 指定された API 名の API にデータをフィルタリングします。 | 
| `DecisionName` | 指定された決定名にデータをフィルタリングします。 | 
| `TaskListName` | 指定されたタスクリスト名にデータをフィルタリングします。 | 
| `TaskListClassification` | タスクリストの分類にデータをフィルタリングします。値は、決定タスクリストの場合は「D」、アクティビティタスクリストの場合は「A」です。 | 
| `ThrottlingScope` | 指定されたスロットリングスコープにデータをフィルタリングします。値は、アカウントレベルのクォータを超える場合は「アカウント」、ワークフローレベルのクォータを超える場合は「ワークフロー」です。 | 

## Amazon SWF 非 ASCII リソース名と CloudWatch ディメンション
<a name="cloudwatch-swf-non-ascii"></a>

Amazon SWF では、TaskList や DomainName などのリソース名に非 ASCII 文字を使用できます。ただし、CloudWatch メトリクスのディメンション値に含めることができるのは、印刷可能な ASCII 文字だけです。Amazon SWF が [CloudWatch 要件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Dimension.html) と互換性のあるディメンション値を使用するようにするために、これらの要件を満たしていない Amazon SWF リソース名は変換され、次のようにチェックサムが追加されます 
+ 非 ASCII 文字はすべて `?` に置き換えられます。
+ 入力文字列または変換された文字列は、必要に応じて切り捨てられます。これにより、チェックサムが追加されたときに、新しい文字列の長さが CloudWatch の最大値を超えないようにします。
+ ASCII 以外の文字は に変換されるため`?`、変換前に異なっていた一部の CloudWatch メトリクスディメンション値は、変換後に同じように見える場合があります。それらを区別しやすくするために、リソース名には、アンダースコア (`_`) の後に、元のリソース名の SHA256 チェックサムの最初の 16 文字が追加されます。

変換の例:
+ `test àpple` は `test ?pple_82cc5b8e3a771d12` に変換されます
+ `àòà` は `???_2fec5edbb2c05c22` に変換されます。
+ TaskList の名前 `àpplé` と `âpplè` は両方とも `?ppl?` に変換され、同一になります。チェックサムを追加すると、それぞれ `?ppl?_f39a36df9d85a69d`、`?ppl?_da3efb4f11dd0f7f` という異なる値が返されます。

**ヒント**  
独自の SHA256 チェックサムを生成できます。例えば、`shasum` コマンドラインツールを使用するには、次のようにします。  
 **echo -n "<the original resource name>" \| shasum -a 256 \| cut -c1-16** 