![[18.0.0.1 and later]](../ng_v18001plus.gif)
明示的分散トレース・コードのインスツルメンテーションの有効化
OpenTracing 用にクラスおよびメソッドをインスツルメントするには、@Traced アノテーションを使用します。
このタスクについて
OpenTracing 用にトレースされるクラスまたはメソッドを指定するには、@Traced アノテーションを適用します。
手順
- @Traced アノテーションをクラスまたはメソッドに適用します。
- @Traced アノテーションをクラスに適用すると、アノテーションはそのクラスのすべてのメソッドに適用されます。
- @Traced アノテーションをクラスおよびメソッドに適用した場合、メソッドに適用されるアノテーションが優先されます。アノテーションは、メソッドの先頭でスパンを開始し、メソッドの終わりでスパンを終了します。
- オプション: @Traced アノテーションに引数を適用します。
- value=[true|false]
value=[true] 引数がデフォルトです。
特定のメソッドにアノテーションを付け、それらのメソッドのスパンの作成を無効にするには、@Traced(false) を使用します。@Traced(false) を使用して、特定の JAX-RS エンドポイントのスパン作成を無効にすることもできます。JAX-RS エンドポイント・メソッドに対して @Traced(false) を使用すると、上流の SpanContext は抽出されません。作成するスパンには、アウトバウンド要求に対して自動的に作成される場合でも、注入されたトレーサーによって明示的に作成される場合でも、スパン階層内に上流の親スパンはありません。デフォルトでは、プログラムはすべての JAX-RS エンドポイント・メソッドをトレースします。
- operationName=<Name for the span>
デフォルト値は、二重引用符 ("") です。
operationName 値に二重引用符 ("") が使用されている場合、@Traced アノテーションはデフォルトのオペレーション名を使用します。アノテーションを付けたメソッドが JAX-RS エンドポイントではない場合、メソッドの新規スパンのデフォルトのオペレーション名の値は、 <package name>.<class name>.<method name> です。クラスに operationName 値を指定した場合、独自の operationName 値で明示的にオーバーライドするメソッドがない限り、クラスのすべてのメソッドに対してその operationName 値が使用されます。
以下の例は、@Traced アノテーションのオプションの引数を示します。
@InterceptorBinding @Target({ TYPE, METHOD }) @Retention(RUNTIME) public @interface Traced { @Nonbinding boolean value() default true; @Nonbinding String operationName() default ""; }
- 構成済みトレーサーにアクセスします。
- 基礎にある OpenTracing トレーサー・オブジェクトが構成されたインスタンスを使用します。構成済みトレーサーを Contexts and Dependency Injection (CDI) と共に使用するように MicroProfile 実装を設定します。
- この環境用の特定のアプリケーション用に構成したトレーサー・クラスを注入することによって、構成済みトレーサー・オブジェクトにアクセスします。各アプリケーションは、それぞれ異なる 1 つのトレーサー・インスタンスを受け取ります。
トレーサー・オブジェクトは、ビジネス・メソッド内部でのスパンの作成など、複雑なトレース要件のサポートを可能にします。以下の例は、注入されたトレーサー・クラスを表示します。
@Inject io.opentracing.Tracer configuredTracer;
- 以下の例に示すように、タグ、ログ、およびバゲージをスパンに追加します。
configuredTracer.activeSpan().setTag(...); configuredTracer.activeSpan().log(...); configuredTracer.activeSpan().setBaggage(...);
![[17.0.0.4 and later]](../ng_v17004plus.gif)

ファイル名: twlp_dist_tracing_code_inst.html