OpenTracing は、処理中および処理外の分散トランザクションをトレースするためのオープンスタンダードです。高レベルで、ビジネスフローに関連するメソッドを簡単に実行するため、エンドツーエンドでの測定が可能になります。 

AppDynamics トレーサは、OpenTracing 0.31.0 標準に基づいた実装です。

前提条件

OpenTracer が正常に動作するには、Java エージェントの実行プログラムの戦略を使用します。app-agent-config.xml またはノードプロパティで指定できます。

<!--As part of app-agent.config.xml-->
<property name="async-instrumentation-strategy" value="executor"/>

Or, just specify the following node property in the Controller:

async-instrumentation-strategy = "executor" 
CODE

AppDynamics OpenTracer の取得

依存関係のインストール

OpenTracer jar は、直接アクセスしたり、Maven Central からダウンロードしたり、AppDynamics ポータルからダウンロードしたりできます。ライブラリバージョンは、新しい OpenTracer リリースごとに変更され、基本エージェントのバージョンには完全に関連付けられていません。4.5.13 以降である必要があります。

dependencies {
    compile group: 'com.appdynamics.agent', name: 'opentracer', version: '4.5.13.27526'
}
CODE
 <dependency>
     <groupId>com.appdynamics.agent</groupId>
     <artifactId>opentracer</artifactId>
     <version>4.5.13.27526</version>
</dependency>
CODE
 libraryDependencies += "com.appdynamics.agent" % "opentracer" % "4.5.13.27526"
CODE

トレーサの有効化または無効化

デフォルトでは、接続されると OpenTracer が有効になります。無効にするには 2 つの方法があります。

  • 以下を使用して、プログラムで有効または無効にすることができます。

    AppdynamicsTracerConfiguration.appdTracingConfiguration().setTracingEnabled();
    CODE

    必要に応じて、

  • 起動時に、システムプロパティを指定し、以下を使用して有効または無効にすることができます。

    -Dappdynamics.opentracing.enabled=false
    CODE

トレーサを Lightbend Telemetry に接続する

AppDynamics で検証された最初の OpenTracing の使用例は、Lightbend telemetry(Cinnamon エージェントとも呼ばれる)とともに使用されます。これにより、Akka HTTP 上に構築されているような、Lightbend reactive platform 上に構築されたアプリケーションを介してトランザクションをトレースできます。詳細については、Lightbend マニュアルの特に OpenTracing の統合について参照してください。

Lightbend Telemetry のセットアップ方法についての詳細は、AppDynamics マニュアルの範囲外です。設定に必要な大まかな手順は次のとおりです。

  1. Lightbend telemetry エージェントを設定します。Lightbend の手順については、手順を参照してください。
  2. AppDynamics エージェントにトレースさせる Akka HTTP エンドポイントのトレースを有効にします。Lightbend の手順については、OpenTracing の設定を参照してください。

    cinnamon.opentracing ファイル内のアクティブサンプラーが const-sampler に設定されていることを確認します。(AppDynamics Java エージェントのオーバーヘッド特性が低いのは、サンプル コンフィギュレーション ファイルのコメントを無視しても問題なく、非実稼働でのみ使用する必要があることを示しています)。
  3. AppdynamicsTracerFactory を使用し、カスタム OpenTracing トレーサとして AppDynamics OpenTracing 実装を Lightbend Telemetry に接続します(Lightbend マニュアルの説明のとおり)。サンプルの AppDynamics トレーサファクトリの例を次に示します。

    import com.appdynamics.opentracing.core.AppdynamicsTracerFactory;
    import com.lightbend.cinnamon.opentracing.TracerFactory;
    import io.opentracing.Tracer;
    
    public class AppdynamicsTracerPlugin implements TracerFactory {
        @Override
        public Tracer create() {
            return AppdynamicsTracerFactory.getTracer();
        }
    }
    CODE