X-Ray を使用した CloudWatch 合成 Canary のデバッグ - AWS X-Ray

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

X-Ray を使用した CloudWatch 合成 Canary のデバッグ

CloudWatch Synthetics は、1 日 24 時間、1 分に 1 回実行されるスクリプト化された Canary を使用してエンドポイントと APIs をモニタリングできるフルマネージドサービスです。

以下の変更を確認して、canaryスクリプトをカスタマイズできます:

  • 可用性

  • レイテンシー

  • トランザクション

  • リンク切れまたはデットリンク

  • S tep-by-step タスクの完了

  • ページロードエラー

  • UI アセットのロードレイテンシー

  • 複雑なウィザードフロー

  • アプリケーションのチェックアウトフロー

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

Syntheticsテストの設定の詳細については、「Syntheticsを使用してカナリアを作成および管理する」を参照してください。


            X-Rayトレースマップのcanaryノードの例。

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

トレースマップの読み取りおよび操作方法の詳細については、「サービスマップの表示」を参照してください。

X-Ray Analytics コンソールを読み取って操作する方法の詳細については、AWS X-Ray 「分析コンソールの操作」を参照してください。

トレースマップでエラーレポートが増加した Canary を表示する

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

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


                サービスの詳細を含む X-Ray トレースマップの Canary ノードの例。

個々のトレースのトレース詳細マップを使用して、各リクエストを詳細に表示する

レイテンシーが最も多いサービスやエラーの原因となっているサービスを特定するには、トレースマップでトレースを選択してトレースの詳細マップを呼び出します。個々のトレース詳細マップには、1 つのリクエストの end-to-end パスが表示されます。このパスを使用して、起動するサービスを把握し、アップストリームおよびダウンストリームサービスを可視化します。


                X-Ray トレースの詳細マップの Canary ノードの例。

アップストリームおよびダウンストリームサービスで継続的に発生している障害の根本原因を特定する

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

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


                X-Rayトレースマップのcanaryノードの例。

                canaryノードの根本原因の例。

                Canary ノードを示す注釈フィルターの例。

パフォーマンスのボトルネックとトレンドを特定する

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


                Canary ノードを示す注釈フィルターの例。

変更前と変更後で待ち時間およびエラー・障害率を比較する

Canary がキャッチする問題の増加と関連付けるために変更が発生した時間を特定します。X-Ray Analyticsコンソールを使用して、前後の時間範囲を異なるトレースセットとして定義し、応答時間分布に視覚的な差異が生じます。


                Canary ノードを示す注釈フィルターの例。

すべてのAPIとURLに必要なcanaryの受信可能範囲エリアを特定する

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


                Canary ノードを示す注釈フィルターの例。

グループを使用してSyntheticsテストに焦点を合わせる

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

例 グループフィルタ式
"edge(id(name: "www", type: "client::Synthetics"), id(name: "www", type: "AWS::ElasticBeanstalk::Environment"))"

                Elastic Beanstalk www のノードの例。