

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

# X-Ray と CloudWatch の統合
<a name="xray-services-cloudwatch"></a>

アプリケーションの健全性を簡単にモニタリングするため、AWS X-Ray は [CloudWatch Application Signals](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Application-Monitoring-Sections.html)、CloudWatch RUM、CloudWatch Synthetics と統合します。Application Signals のアプリケーションを有効にして、サービス、クライアントページ、Synthetics canary、およびサービス依存関係の運用健全性をモニタリングおよびトラブルシューティングします。

CloudWatch メトリクス、ログ、X-Ray トレースを相互に関連付けることにより、X-Ray トレースマップは、サービスの端末相互間の視点を提供し、パフォーマンスのボトルネックをすばやく特定し、影響を受けたユーザーを特定するのに役立ちます。

CloudWatch RUM を使用すると、現実的なユーザーモニタリングを実行できます。ウェブアプリケーションのパフォーマンスに関するクライアント側のデータを、ほぼリアルタイムで実際のユーザーセッションから収集し、表示できます。AWS X-Ray とCloudWatch RUM を使用すると、アプリケーションのエンドユーザーからダウンストリームの AWS マネージドサービスまでのリクエストパスを分析およびデバッグできます。これにより、エンドユーザーに影響を与えるレイテンシーの傾向やエラーを特定できます。

**Topics**
+ [CloudWatch RUM と AWS X-Ray](xray-services-RUM.md)
+ [X-Rayを使用した CloudWatchの合成カナリアのデバッグ](xray-services-cloudwatch-synthetics.md)

# CloudWatch RUM と AWS X-Ray
<a name="xray-services-RUM"></a>

Amazon CloudWatch RUM を使用すると、現実的なユーザーモニタリングを実行できます。ウェブアプリケーションのパフォーマンスに関するクライアント側のデータを、ほぼリアルタイムで実際のユーザーセッションから収集し、表示できます。AWS X-Ray とCloudWatch RUM を使用すると、アプリケーションのエンドユーザーからダウンストリームの AWS マネージドサービスまでのリクエストパスを分析およびデバッグできます。これにより、エンドユーザーに影響を与えるレイテンシーの傾向やエラーを特定できます。

ユーザーセッションの X-Ray トレースを有効にすると、CloudWatch RUM は許可された HTTP リクエストに X-Ray トレースヘッダーを追加し、許可された HTTP リクエストの X-Ray セグメントを記録します。その後、X-Ray トレースマップなど、これらのユーザーセッションについてのトレースやセグメントを X-Ray および CloudWatch コンソールに表示できるようになります。

**注記**  
CloudWatch RUM は X-Ray のサンプリングルールとは統合されません。代わりに、CloudWatch RUM を使用するようにアプリケーションを設定するときに、サンプリング率を選択してください。CloudWatch RUM から送信されるトレースには、追加のコストが発生する可能性があります。詳細については、「[AWS X-Ray 料金表](https://aws.amazon.com/xray/pricing/)」を参照してください。

デフォルトでは、CloudWatch RUM から送信されるクライアント側トレースは、サーバー側のトレースと接続されません。クライアント側のトレースをサーバー側のトレースと接続するには、CloudWatch RUM のウェブクライアントで HTTP リクエストに X-Ray トレースヘッダーを追加するように設定します。

**警告**  
HTTP リクエストに X-Ray トレースヘッダーを追加するための設定を CloudWatch RUM のウェブクライアントで行うことで、クロスオリジンリソース共有 (CORS) に失敗する場合があります。これを回避するには、ダウンストリームサービスの CORS 設定で、許可されるヘッダーのリストに `X-Amzn-Trace-Id` HTTP ヘッダーを追加します。API Gateway をダウンストリームとして使用している場合は、「[REST API リソースの CORS を有効にする](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html)」を参照してください。本番環境でクライアント側の X-Ray トレースヘッダーの追加を行う前に、アプリケーションのテストを実施することを強くお勧めします。詳細については、「[CloudWatch RUM web client documentation](https://github.com/aws-observability/aws-rum-web/blob/main/docs/cdn_installation.md#http)」を参照してください。

CloudWatch での実際のユーザーモニタリングの詳細については、「[CloudWatch RUMを使用する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html)」を参照してください。X-Ray によるユーザーセッションのトレースなど、CloudWatch RUMを使用するようにアプリケーションを設定するには、「[CloudWatch RUM を使用するためにアプリケーションをセットアップする](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-get-started.html)」を参照してください。

# X-Rayを使用した CloudWatchの合成カナリアのデバッグ
<a name="xray-services-cloudwatch-synthetics"></a>

CloudWatch Syntheticsは1日24時間有効になり1分間に1回起動されるスクリプト化されたカナリアを使用して、評価項目およびAPIをモニタリングできるフルマネージド型のサービスです。

以下の変更を確認して、canaryスクリプトをカスタマイズできます：
+ 可用性
+ レイテンシー
+ トランザクション
+ リンク切れまたはデットリンク
+ タスクのステップごとの完了
+ ページロードエラー
+ UI アセットのロードレイテンシー
+ 複雑なウィザードフロー
+ アプリケーションのチェックアウトフロー

カナリアは、お客様と同じルートをたどり、同じアクションと動作を実行して、お客様の満足体験を継続的に検証します。

Syntheticsテストの設定の詳細については、「[Syntheticsを使用してカナリアを作成および管理する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html)」を参照してください。

![\[X-Ray トレースマップの canary ノードの例。\]](http://docs.aws.amazon.com/ja_jp/xray/latest/devguide/images/synthetics-show-canary-active.png)


以下の例では、Syntheticsのカナリアで発生する問題をデバッグするための一般的な使用例を示しています。各例は、トレースマップまたは X-Ray Analytics コンソールのいずれかを使用してデバッグするための重要な戦略を示しています。

トレースマップの読み方と操作方法の詳細については、「[サービスマップの表示](https://docs.aws.amazon.com/xray/latest/devguide/xray-console.html#xray-console-servicemap)」を参照してください。

X-Ray Analytics コンソールを読み取って操作する方法の詳細については、[AWS X-Ray 「分析コンソールの操作](https://docs.aws.amazon.com/xray/latest/devguide/xray-console-analytics.html)」を参照してください。

**Topics**
+ [トレースマップでエラーレポートが増加した canary を検証する](#xray-services-cloudwatch-synthetics-workflows-which-canary)
+ [個々のトレースのトレース詳細マップを使用して、各リクエストを詳細に確認する](#xray-services-cloudwatch-synthetics-workflows-trace-map)
+ [アップストリームおよびダウンストリームサービスで継続的に発生している障害の根本原因を特定する](#xray-services-cloudwatch-synthetics-workflows-root-cause)
+ [パフォーマンスのボトルネックとトレンドを特定する](#xray-services-cloudwatch-synthetics-workflows-bottlenecks)
+ [変更前と変更後で待ち時間およびエラー・障害率を比較する](#xray-services-cloudwatch-synthetics-workflows-latency)
+ [すべてのAPIとURLに必要なcanaryの受信可能範囲エリアを特定する](#xray-services-cloudwatch-synthetics-workflows-impact)
+ [グループを使用してSyntheticsテストに焦点を合わせる](#xray-services-cloudwatch-synthetics-groups)

## トレースマップでエラーレポートが増加した canary を検証する
<a name="xray-services-cloudwatch-synthetics-workflows-which-canary"></a>

 X-Ray トレースマップ内で、どの canary でエラーや障害、スロットリング率、または応答時間が増加しているか確認するには、`Client::Synthetic` [フィルター](xray-console-filters.md)を使用して Synthetics canary のクライアントノードを強調表示できます。ノードをクリックすると、リクエスト全体の応答時間の分布が表示されます。2つのノード間のエッジをクリックすると、その接続を経由したリクエストの詳細が表示されます。また、トレースマップの関連するダウンストリームサービスの「リモート」推定ノードを表示できます。

Syntheticsノードをクリックすると、サイドパネルに**「View in Synthetics」**ボタンが表示され、Syntheticsコンソールにリダイレクトされ、canaryの詳細を確認することができます。

![\[サービスの詳細を含む X-Ray トレースマップの canary ノードの例。\]](http://docs.aws.amazon.com/ja_jp/xray/latest/devguide/images/synthetics-canary-servicedetail.png)


## 個々のトレースのトレース詳細マップを使用して、各リクエストを詳細に確認する
<a name="xray-services-cloudwatch-synthetics-workflows-trace-map"></a>

どのサービスで、最も待ち時間が発生しているか、またはエラーが発生しているかを判断するには、トレースマップのトレースを選択してトレース詳細マップを呼び出します。個々のトレース詳細マップには、1 つのリクエストの端末相互間でパスが表示されます。このパスを使用して、起動するサービスを把握し、アップストリームおよびダウンストリームサービスを可視化します。

![\[X-Ray トレース詳細マップの canary ノードの例。\]](http://docs.aws.amazon.com/ja_jp/xray/latest/devguide/images/synthetics-canary-tracemap.png)


## アップストリームおよびダウンストリームサービスで継続的に発生している障害の根本原因を特定する
<a name="xray-services-cloudwatch-synthetics-workflows-root-cause"></a>

Synthetics canaryの障害に関するCloudWatchアラームを受診したら、X-Rayのトレースデータの統計的モデリングを使用して、X-Ray Analyticsコンソール内で問題が推定される根本原因を特定します。Analyticsコンソールno、**応答時間の根本原因**表には、記録されたエンティティパスを表示します。X-Rayは、トレース内の、どのパスが応答時間の最大の原因であるかを判断します。この形式は、検出されたエンティティの階層を示し、最後に応答時間の根本原因を示します。

以下の例では、API Gateway上で実行されている API 「XXX」のSyntheticsテストが、Amazon DynamoDB表からのスループット容量の例外により障害になっていることを示しています。

![\[X-Ray トレースマップの canary ノードの例。\]](http://docs.aws.amazon.com/ja_jp/xray/latest/devguide/images/synthetics-canary-active-select.png)


![\[canaryノードの根本原因の例。\]](http://docs.aws.amazon.com/ja_jp/xray/latest/devguide/images/synthetics-canary-rootcause.png)


![\[canary ノードを示す注釈フィルターの例。\]](http://docs.aws.amazon.com/ja_jp/xray/latest/devguide/images/synthetics-canary-showannot.png)


## パフォーマンスのボトルネックとトレンドを特定する
<a name="xray-services-cloudwatch-synthetics-workflows-bottlenecks"></a>

Synthetics canary からの継続的なトラフィックを使用して、一定期間にわたってトレース詳細マップを作成し、エンドポイントのパフォーマンスのトレンドを経時的に表示できます。

![\[canary ノードを示す注釈フィルターの例。\]](http://docs.aws.amazon.com/ja_jp/xray/latest/devguide/images/synthetics-canary-distribution.png)


## 変更前と変更後で待ち時間およびエラー・障害率を比較する
<a name="xray-services-cloudwatch-synthetics-workflows-latency"></a>

変更が発生した時間を特定して把握し、その変更を canary による問題の発見数の増加と関連させます。X-Ray Analyticsコンソールを使用して、前後の時間範囲を異なるトレースセットとして定義し、応答時間分布に視覚的な差異が生じます。

![\[canary ノードを示す注釈フィルターの例。\]](http://docs.aws.amazon.com/ja_jp/xray/latest/devguide/images/synthetics-canary-compare.png)


## すべてのAPIとURLに必要なcanaryの受信可能範囲エリアを特定する
<a name="xray-services-cloudwatch-synthetics-workflows-impact"></a>

 X-Ray Analyticsを使用して、ユーザー間でカナリアの満足体験を比較します。以下のUIは、カナリアが青いトレンドラインおよびユーザーが緑のトレンドラインを示しています。また、3つのURLのうち2つにcanaryテストがないことを確認できます。

![\[canary ノードを示す注釈フィルターの例。\]](http://docs.aws.amazon.com/ja_jp/xray/latest/devguide/images/synthetics-canary-vs-customer.png)


## グループを使用してSyntheticsテストに焦点を合わせる
<a name="xray-services-cloudwatch-synthetics-groups"></a>

 フィルター式を使用してX-Rayグループを作成し、特定のワークフローセットに焦点を合わせることができ、 AWS Elastic Beanstalk例えばNETで実行されているアプリケーション「www」のSyntheticsテストなどです。[複合型キーワード](xray-console-filters.md#console-filters-complex)を使用して、`service()`そして`edge()`サービスとエッジをフィルタリングします。

**Example グループフィルタ式**  

```
"edge(id(name: "www", type: "client::Synthetics"), id(name: "www", type: "AWS::ElasticBeanstalk::Environment"))" 
```

![\[Elastic Beanstalk www のノードの例。\]](http://docs.aws.amazon.com/ja_jp/xray/latest/devguide/images/synthetics-canary-active-www.png)
