このページでは、Java サーバレストレーサの要件、ダウンロード手順、およびインストゥルメンテーションの概要について説明します。
はじめる前に
セットアップが次の要件を満たしていることを確認します。
- Java で実装されている既存の AWS Lambda 関数
- AWS Lambda 向けアクティブサーバレス APM のサブスクリプション
- AppDynamics SaaS コントローラ 4.5.11 以降
インストゥルメンテーションの概要
AWS Lambda 向けサーバレス APM のインストゥルメンテーションは、次の 3 つのステップで構成されます。
- Java サーバレストレーサでの依存関係の宣言
- インストゥルメンテーション方式の選択
- 自動トレーサ インストゥルメンテーション
- 手動トレーサ インストゥルメンテーション
- サーバレス トレーサ インストゥルメンテーションの確認
Java サーバレストレーサでの依存関係の宣言
AppDynamics は、トレーサライブラリの形式でサーバレス APM 機能を提供します。
次のような Apache Maven または Gradle を使用して、Java サーバレストレーサでのプロジェクトの依存関係を表現します。
<dependency>
<groupId>com.appdynamics</groupId>
<artifactId>lambda-tracer</artifactId>
<version>20.03.1391</version>
</dependency>
JAVA
dependencies {
compile group: 'com.appdynamics', name: 'lambda-tracer', version: '20.03.1391'
}
JAVA
Apache Maven または Gradle を使用しない場合は、AppDynamics に連絡して、サーバレストレーサ JAR ファイルを入手してください。
インストゥルメンテーション オプション
トレーサをインストゥルメント化します。
自動トレーサ インストゥルメンテーション
関数が RequestStreamHandler
インターフェイスを使用している場合は、自動的にトレーサをインストゥルメント化できます。
自動インストゥルメンテーションで、関数はトレーサの設定を継承します。自動インストゥルメンテーションは、トレーサを次の操作が実行できるように事前に設定します。
トランザクションの作成、開始、停止
- 相関ヘッダーの検索
- トランザクションエラーの報告
RequestStreamHandler
および RequestHandler
は、AWS によって提供される事前定義されたハンドラです。AWS のマニュアルを参照してください。
手動トレーサ インストゥルメンテーション
手動トレーサ インストゥルメンテーションでは、メソッド AppDynamics.getTracer(context)
は、関数のエントリポイントメソッドの開始時にトレーサをインスタンス化します。次の場合は、手動でトレーサをインストゥルメント化します。
手動トレーサ インストゥルメンテーションを使用するには、次の操作を実行する必要があります。
- トレーサのインスタンス化
- トランザクションの作成、開始、停止
- 相関ヘッダーの検索
- トランザクションエラーの報告
Java の AWS Lambda コンテキストオブジェクトcontext,
は AWS によって提供されます。AWS のマニュアルを参照してください。
トレーサの同期化
両方のインストゥルメンテーション オプションについて、トレーサへのアクセスを同期する必要があります。
自動インストゥルメンテーションでは、getTransaction()
メソッドによって返されるトランザクション オブジェクトを同期する必要があります。
手動インストゥルメンテーションでは、getTracer()
メソッドによって返されるトレーサオブジェクトを同期する必要があります。トレーサのマルチスレッド使用には、手動のトレーサ インストゥルメンテーションが必要です。
これらのマニュアルで使用されている Amazon Web サービス、AWS ロゴ、AWS、およびその他の AWS マークは、米国およびその他の国における Amazon.com, Inc. またはその関連会社の商標です。