X-Rayを使用した CloudWatchの合成カナリアのデバッグ - AWS X-Ray

X-Rayを使用した CloudWatchの合成カナリアのデバッグ

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

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

  • 可用性

  • レイテンシー

  • トランザクション

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

  • タスクのステップごとの完了

  • ページロードエラー

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

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

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

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

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

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

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

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

X-Rey Analyticsコンソールの読み方および操作方法の詳細については、「AWS X-Ray Analyticsコンソールの操作」を参照してください。

トレースマップでエラーレポートが増加した canary を検証する

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

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

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

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

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

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 のノードの例。