🐾

CloudWatch で X-Ray のトレース結果を確認する

2024/07/26に公開

はじめに

AWSのサーバレス構成でDBのデータを取得し、json形式で返却するAPIを作成しました。
その際、各サービスの応答時間を確認するためにAWS X-Rayを利用しましたので、その備忘録です。

構成図

前提

  • API Gateway、Lambda で X-Ray を有効化していること
  • Lambda 内に AWS X-Ray SDK を追記していること

参考:Lambda で X-Ray アクティブトレース有効化と、追加で AWS X-Ray SDK を利用した際に可視化される内容の違いを見比べてみた

CloudWatchでX-Rayのトレース結果を確認する

CloudWatchの[トレース]と[トレースマップ]より、X-Rayでのトレース結果をみることができます。
[トレース]と[トレースマップ]の違いは以下の通りです。

  1. [トレース] ページ
  • 個々のリクエストの詳細な情報を表示します。
  • リクエストの開始時刻、所要時間、エラー情報など、リクエストごとの詳細なデータを確認できます。
  • 特定のリクエストの問題を分析する際に役立ちます。
  1. [トレースマップ] ページ
  • サービス間の関係性や依存関係を視覚化したグラフを表示します。
  • サービスの呼び出し関係、各サービスの所要時間、エラー状況などを俯瞰的に把握できます。
  • システム全体の動作を理解し、パフォーマンスボトルネックを特定するのに役立ちます。

詳細な応答時間を確認する方法

[トレース]の画面下部で各リクエストの「応答時間」やLambdaの「所要時間」を確認できます。

応答時間(Response Time):クライアントがリクエストを送信してから、レスポンスを受け取るまでの時間です。API Gatewayからクライアントへの応答時間を示します。
所要時間(Duration):Lambda関数の実行時間です。API GatewayからLambda関数の呼び出しから、Lambda関数の実行が完了するまでの時間を示します。

Lambdaの初回起動時はコールドスタートの影響をうけるので、初回リクエスト時は処理時間が長くなります。

より詳細なリクエスト毎の詳細なセグメントの所要時間は、トレース結果の [ID] を選択すると以下のように確認ができます。

【補足】
AWS::Lambda:Lambda関数の起点であり、Lambdaサービスによって提供される実行環境を表します。このセグメントにエラーが表示される場合は、Lambda サービスに問題があります。
AWS::Lambda::Function:実際のLambda Functionを表しています。これは、開発者が実装したコードの本体を示しています。このセグメントにエラーが表示される場合、関数に問題があります。

参考:AWS X-Ray を使用した Lambda 関数呼び出しの視覚化

さいごに

X-Rayでのトレース結果の確認方法をみてきました。
X-RayコンソールがCloudWatchに統合され新しいGUIになったそうなのですが、元々のGUIで操作をしたことがなく、新GUIで見たい情報を探したり各項目の違いの確認にととまどったため、記事にしてみました。
どなたかの参考になれば幸いです。

以上、えみり〜でした|ωΦ)ฅ

Discussion