APMトレーサのインスタンス化

アプリケーションにトレース・サポートを追加するには、次のステップを実行します:

ノート

Helidon構成の場合は、これらのステップをスキップし、HelidonでのAPMトレーサの使用を参照してください。
  1. 次を実行して、オープントレースのトレーサおよびAPMトレーサ・クラスをインポートします:

    import io.opentracing.Tracer;
    import com.oracle.apm.tracer.ApmTracer;
  2. APMトレーサはビルダー・スタイルでインスタンス化できます。ApmTracer.Builderのコンストラクタには、tracerNameとserviceNameの2つのパラメータがあります。

    • tracerName: このトレーサの名前。null以外の任意の文字列名にできます。
    • serviceName: このトレーサによってレポートされるサービスの名前。null以外の任意の文字列にできます。
    Tracer tracer = new ApmTracer.Builder(String tracerName, String serviceName)            
            .<configuration methods>            
            .build();

build()メソッドをコールしてAPMトレーサ・インスタンスを作成する前に、構成メソッドを使用してこれを構成できます。一部の構成メソッドは、Javaシステム・プロパティおよび環境変数を設定して構成することもできます。

構成メソッド

メソッド デフォルト 説明 同等のJavaシステム・プロパティ 同等の環境変数
withDataUploadEndpoint(String endpoint)   Oracle APMクラウド通信に必要なAPMデータ・アップロード・エンドポイントを設定します。 com.oracle.apm.agent.data.upload.endpoint com_oracle_apm_agent_data_upload_endpoint
withDataUploadKey(String dataKey)   Oracle APMクラウド通信に必要なAPMデータ・アップロード・キーを設定します。 com.oracle.apm.agent.private.data.key com_oracle_apm_agent_private_data_key

withTag(String key, String value)

withTag(String key, Boolean value)

withTag(String key, Number value)

withTags(Map<String, Object> tags)

  すべてのトレース・スパンに含める静的タグを設定します。    
withLogDirectory(String directory) ./apm-tracer-log すべてのAPMトレーサ・ログが書き込まれるログ・ディレクトリのフル・パスを指定します。これを未設定のままにすると、デフォルトのログ・ディレクトリapm-tracer-logがJVMの作業ディレクトリ内に作成されます。 com.oracle.apm.agent.log.directory com_oracle_apm_agent_log_directory

withProperty(String key, String value)

withProperties(Map<String, String> properties)

 

1つ以上のAPMトレーサ・プロパティを設定します。これにより、APMトレーサの起動時にプログラムによってプロパティを設定できます。すべてのプロパティは、Javaシステム・プロパティまたは環境変数を介して設定することもできます。

キーまたは値がnullの場合、プロパティは無視されます。

   
withMicrosecondAccurateTimestamp(boolean microsecondAccuracy) false これがtrueの場合、すべてのタイムスタンプをマイクロ秒精度に設定します。デフォルトはミリ秒精度です。    
withCollectMetrics(boolean collectMetrics) true

サーバー・メトリックを収集してOCI APMクラウドにレポートするようにAPMトレーサを設定します。デフォルトはtrueです。

ユーザーは、OCI Telemetryからすべての収集済サーバー・メトリックにアクセスできます。

収集されたサーバー・メトリックの詳細は、メトリックの収集を参照してください。

   
withCollectResources(boolean collectResources) true

サーバー・リソースを収集してOCI APMクラウドにレポートするようにAPMトレーサを設定します。

収集されたすべてのリソースは、データ問合せのディメンションとして使用されます。

収集されたサーバー・メトリックの詳細は、メトリックの収集を参照してください。

   
withDaemonChannel(String channel)   APMデーモン・チャネルは、トレーサとデーモン間のソケット接続です。このプロパティ値のフォーマットは、<host>:<port>です。このプロパティが設定された状態でデーモンが起動されると、デーモンはソケット接続を受け入れ、指定されたこのチャネルでデータをリスニングします。これが設定された状態でトレーサが起動されると、データ・アップロード・エンドポイントは無視されます。データはこのソケット・チャネルを使用してのみデーモンに送信されます。 com.oracle.apm.agent.daemon.channel com_oracle_apm_agent_daemon_channel
build()   APMトレーサ・インスタンスをインスタンス化します。    

その他のプロパティ

プロパティは、Javaシステム・プロパティまたは環境変数として、あるいはProperty()ビルダー・メソッドとともに使用して設定できます。

Javaシステム・プロパティ 環境変数 デフォルト 説明
com.oracle.apm.agent.daemon.channel com.oracle.apm.agent.daemon.channel   APMデーモン・チャネルは、トレーサとデーモン間のソケット接続です。このプロパティ値のフォーマットは、<host>:<port>です。このプロパティが設定された状態でデーモンが起動されると、デーモンはソケット接続を受け入れ、指定されたこのチャネルでデータをリスニングします。これが設定された状態でトレーサが起動されると、データ・アップロード・エンドポイントは無視されます。データはこのソケット・チャネルを使用してのみデーモンに送信されます。
com.oracle.apm.agent.data.upload.proxy.url com_oracle_apm_agent_data_upload_proxy_url   Oracle APMサーバー接続のプロキシ・サーバーURL。HTTPプロキシのみがサポートされています。
com.oracle.apm.agent.log.filesize.mb com_oracle_apm_agent_log_filesize_mb 20mb ログ・ファイル・サイズ。このプロパティを使用してログ・ファイル・サイズを指定できます。デフォルト値は"20"です。つまり、1つのログ・ファイルのファイル・サイズは20MBになります。
com.oracle.apm.agent.log.rotation.files.count com_oracle_apm_agent_log_rotation_files_count 2 ロールオーバー・メカニズムを使用してログを格納するために作成できるファイルの数。例: このプロパティの値として"2"を指定した場合、ログはファイル・サイズ制限に達するまで最初のファイルに格納されます。ファイル・サイズ制限に達すると、新しいファイルが作成され、ログの格納が続行されます。2番目のファイルのファイル・サイズ制限に達すると、最初のファイルが削除されて、最初のファイルへのロギングが開始されます。ファイルには数字の接尾辞を付加した適切な名前が付けられます。たとえば、ApmTracer.logおよびApmTracer1.logなどです。デフォルト値は"2"です。つまり、2つのファイルがログの格納に使用されます。
com.oracle.apm.agent.logging.level com_oracle_apm_agent_logging_level INFO 設定できるログ・レベルは、ApmTracer.logに書き込まれるエントリが少ない順に、SEVERE、WARNING、INFO、DEBUGです。
com.oracle.apm.agent.tracer.propagation.type com_oracle_apm_agent_tracer_propagation_type B3

APMトレーサは、HTTPコール全体にわたるスパンどうしを接続するために、HTTPヘッダーを追加および読み取ります。これを達成するために、様々なタイプの伝播ヘッダー・フォーマットを使用できます。また、ZipkinやJaegerなどの他のタイプのトレーサも使用している場合は、これらが連携して動作できるように、この設定を調整する必要があることがあります。

  • B3: Zipkinトレーサで使用されるデフォルトのフォーマット。APMトレーサは、デフォルトでこれを使用します。

  • Header names: X-B3-TraceId, X-B3-SpanId, X-B3-ParentSpanId, X-B3-Sampled.

    単一ヘッダー・ケース(b3)は現在サポートされていません。

  • Jaeger: Jaegerトレーサで使用されるデフォルトのフォーマット。ヘッダー名: uber-trace-id

  • APM: APMトレーサで使用される古いフォーマット。ヘッダー名: X-ORACLE-APM-SPAN-ID、X-ORACLE-APM-TRACE-ID

  • W3C: W3Cからのトレース・コンテキスト・フォーマット。ヘッダー名: traceparent、tracestate