AWS DVA デベロッパー X-Rayを簡単にまとめてみた

Elastic Beanstalkのロゴ

デベロッパー アソシエイトの範囲です。X-Rayについて簡単にまとめてみました。

X-ray

本番環境や分散アプリケーションを分散・デバックすることができる。
・リクエスト動作の確認(ユーザーリクエストの追跡・分析を行うことができる)
・アプリケーションの問題と検出 アプリケーションの実行状況について収集して根本的な原因を調べることができる。
・アプリケーションのパフォーマンス向上 ボトルネックを特定できるため、パフォーマンスの向上を望める。
◉APIリクエストを追跡・分析する場合は、X-rayを用いる。

X-rayデーモン

UDPポート2000のトラフィックを読み取り、未加工のセグメントデータを収集して、X-ray APIに中継するアプリケーション。X-ray SDKと連携して動作し、SDKによって送信されたデータがX-Rayサービスに到達できるように設定する。
X-Rayを使用したい場合は、各サービス上でX-Rayデーモンを実行する必要がある。X-Ray SDKと連携しX-Rayサービスに送信する。

X-Rayを使用する際に考慮すること

・サブセグメントを作成して、SDKで作成するリソースの呼び出しを記録する
・メタデータオブジェクト、セグメントに保存する追加尾カスタムデータを設定。
セグメントフィールドのname リクエストを処理したサービスの論理名(アプリ名)
セグメントフィールドのtace-id クライアントリクエストから送信されるすべてのセグメントとサブセグメントに接続する一意の識別子。

X-rayの検索

X-rayはフィルタ式を使用して検索したいトレース情報の結果を絞り込むことができる。
X-rayコンソール・GetTraceSummariesAPI 特定の情報に関連づけられたセグメントを検索できる。

デーモンをECSで検出したい

X-ray SDKにおいて、AWS_XDAY_DAEMON_ADDRESS環境変数を設定する。
X-Ray SDKで提供されるもの ・インターセプター コードに追加することによって受信されたHTTPリクエストをトレースする。 ・クライアントハンドラー アプリケーションが他サービスの呼び出しに使用する、SDKクライアントを計測する ・An HTTP クライアント HTTP ウェブサービス呼び出しを計測する Fargate起動モードを使用したDockerコンテナに対して、X-rayデーモンを実行したい場合は、X-Rayデーモンエージェントをサイドカーコンテナとしてデプロイする必要がある。

ElasticBeantalkとX-Rayを統合するには、ElasticBeantalkコンソールにおいて「X-ray統合」を有効化するか、設定ファイルを使用して、X-rayデーモンを設定する必要ある。

Lambdaの設定画面で、X-rayのトレースを有効にすると、ロールが作成され、Lambdaへのアクセスができるようになる。
xray:PutTraceSegment
xray:PutTelemetryRecord
この2つがロール追加される。
さらにLambda関数内の様々なリクエストを分析したい場合は、X-ray SDKをコードに含める必要がある。

X-ray サービスマップ クライアント側とサーバー側の処理速度をグラフで可視化することができる。

X-ray APIアクション

  • PutTraceSegments X-rayにトレースデータを送信する 
  • GetServiceGraph サービスマップのようなグラフの情報を取得できる
  • GetTraceSummaries トレースのサマリ情報を取得する
  • BatchGetTrace トレースをIDのリストでまとめて取得できる。
  • コメントや要望があれば、下記のツイッターにDMをください。
    Tweets by wallofmind2
    参照
    AWS X-Rayとは(AWS公式)