• /
  • ログイン

JavaエージェントのAPI注記を使用してインストゥルメントする

New RelicのJavaエージェントは、カスタムインストゥルメンテーション向けに複数のオプションを提供しています。こうしたオプションの1つとして、JavaエージェントAPIの@Traceアノテーションをご利用のアプリケーションコードに追加できます。このドキュメントでは、アノテーションの利用方法を解説しています。

重要

アノテーションを利用するには、ソースコードを修正する必要があります。ソースコードの修正を希望しないか、これができない場合は、カスタムインストゥルメンテーションを参照してその他のインストゥルメンテーションオプションを見つけてください。

エージェントをアノテーション用に設定する

デフォルトでは、構成設定enable_custom_tracingのJavaエージェントがtrueに設定されています。これは、@Traceアノテーションを機能させる上で必須の設定です。この設定は、デフォルトではnewrelic.yml含まれていません

この設定を、ご利用の設定ファイルに取り入れる必要があるのは、@Traceアノテーションを完全に無効にしたい場合のみとなります。これを行うには、ご利用のnewrelic.ymlcommonスタンザでenable_custom_tracing: false(最初にスペース2つ)を設定します。

カスタムトレースを検出するには:

  1. 必ず、classpathにnewrelic-api.jarが表示されることを確認してください。

  2. ご利用のコードに@Traceアノテーションを追加します。インストゥルメントしたいメソッドを含む各クラスにおいて、以下をコールします:

    import com.newrelic.api.agent.Trace;
  3. 各ターゲットメソッドに@Traceアノテーションを配置します。

ヒント

annotation com.newrelic.api.agent.Traceは、newrelic-api.jarにあります。

新規トランザクションを作成する

トランザクションが表示されず、新規トランザクションを開始したい場合は、@Traceアノテーションにdispatcher=trueを含めます:

@Trace (dispatcher=true)
public void run() {
// background task
}

トランザクショントレースに詳細を追加する

トランザクショントレースにインストゥルメントされていない時間のブロックが大量にあり、トレース内により多くのメソッドを含めたい場合は、パラメーター無しで@Traceアノテーションを使用できます:

@Trace
protected void methodWithinTransaction() {
// work
}

トランザクションをWebリクエストに変換する

JavaエージェントAPIコールで、バックグラウンドタスクレポートをWebブラウザトランザクションとして行うには:@Trace(dispatcher=true)のアノテーションを注釈されたメソッドで、以下をコールします:

NewRelic.setRequestAndResponse(Request request, Response response)

この引数は、RequestおよびResponseインターフェースをnewrelic-api.jarで実装したものです。

重要

RequestおよびResponseオブジェクトが既に存在している場合でも、このAPIコールを追加する必要があります。

独自の@Traceアノテーションクラスを定義する

独自の@Traceアノテーションクラスを定義した場合、newrelic-api.jarとの依存関係はありません。クラスを定義するには:

package com.test;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Trace {
public static final String NULL = "";
String metricName() default NULL;
boolean dispatcher() default false;
String tracerFactoryName() default NULL;
}

次に、エージェントを設定して、このアノテーションをnewrelic.ymlcommonセクションで使用できるようにします:

class_transformer:
trace_annotation_class_name: com.test.Trace

@Traceのプロパティ

@Traceアノテーションは、以下のプロパティに対応しています。

さらなるAPI関数

JavaエージェントAPIとその関数の詳細については、JavaエージェントAPI入門をご覧ください。

その他のヘルプ

さらに支援が必要な場合は、これらのサポートと学習リソースを確認してください:

問題を作成するこのページを編集する
Copyright © 2020 New Relic Inc.