CloudWatch で X-Ray のトレース結果を確認する
はじめに
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でのトレース結果をみることができます。
[トレース]と[トレースマップ]の違いは以下の通りです。
- [トレース] ページ
- 個々のリクエストの詳細な情報を表示します。
- リクエストの開始時刻、所要時間、エラー情報など、リクエストごとの詳細なデータを確認できます。
- 特定のリクエストの問題を分析する際に役立ちます。
- [トレースマップ] ページ
- サービス間の関係性や依存関係を視覚化したグラフを表示します。
- サービスの呼び出し関係、各サービスの所要時間、エラー状況などを俯瞰的に把握できます。
- システム全体の動作を理解し、パフォーマンスボトルネックを特定するのに役立ちます。
詳細な応答時間を確認する方法
[トレース]の画面下部で各リクエストの「応答時間」や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