AWS X-Ray
開発者ガイド

AWS X-Ray サンプルアプリケーション

受信 HTTP 呼び出し、DynamoDB SDK クライアント、および HTTP クライアントを計測する AWS X-Ray SDK の使用方法を示す AWS X-Ray eb-java-scorekeep のサンプルアプリケーションは、GitHub で入手できます。このサンプルアプリケーションでは、AWS Elastic Beanstalk 機能を使用して DynamoDB テーブルを作成し、Java コードをオンインスタンスでコンパイルして、設定を追加せずに X-Ray デーモンを実行します。


      Scorekeep では、AWS X-Ray SDK を使用して、受信 HTTP 呼び出し、DynamoDB SDK クライアント、および HTTP クライアントを計測する

このサンプルは、AWSLabs にある Scorekeep プロジェクトの計測済みバージョンです。これには、フロントエンドのウェブアプリ、それが呼び出す API、データの保存に使用する DynamoDB テーブルが含まれています。移植しやすくデプロイが簡単なように、コンポーネントはすべて Elastic Beanstalk 環境でホストされます。

フィルタープラグイン、および実装された AWS SDK クライアントを使用した基本的な計測は、プロジェクトの xray-gettingstarted ブランチに表示されます。これは、入門ガイドチュートリアルでデプロイするブランチです。このブランチには基本情報しか含まれていないので、master ブランチと比較すると、基本をすばやく理解できます。

同じアプリケーションで、次のファイルの基本計測も説明します。

アプリケーションの xray ブランチは、HTTPClient注釈SQL クエリカスタムサブセグメント、実装された AWS Lambda 関数、および実装された初期化コードとスクリプトの使用を追加します。このサービスマップは、接続された SQL データベースなしで実行されている xray ブランチを示しています。

ブラウザでのユーザーログインと AWS SDK for JavaScript の使用をサポートするため、xray-cognito ブランチは Amazon Cognito を追加してユーザーの認証と許可をサポートします。また、Amazon Cognito から認証情報を取得すると、ウェブアプリケーションはトレースデータを X-Ray に送信してクライアントの観点からリクエスト情報を記録します。ブラウザクライアントは、サービスマップ上に独自のノードとして表示され、ユーザーが表示しているページの URL やユーザーの ID などの追加情報を記録します。

最後に、xray-worker ブランチは、個別に実行され、Amazon SQS キューの項目を処理する、実装された Python Lambda 関数を追加します。Scorekeep は、ゲームが終了するたびに項目をキューに追加します。CloudWatch イベント によりトリガーされる Lambda ワーカーは、数分ごとにキューから項目を取得し、それらの項目を処理して分析のためにゲームレコードを Amazon S3 に保存します。

すべての機能が有効になっている場合、Scorekeep のサービップマップは次のようになります。

X-Ray でサンプルアプリケーションを使用する手順については、「入門チュートリアル」を参照してください。チュートリアルで説明されている X-Ray SDK for Java の基本的な使用方法に加えて、サンプルでは次の機能の使用方法も説明しています。