すべてのプロダクト
Search
ドキュメントセンター

Application Real-Time Monitoring Service:トレース ID と Java ビジネスログの関連付け

最終更新日:Aug 25, 2026

トレース ID を Java アプリケーションのビジネスログと関連付けることで、問題発生時にトレース ID で関連ログを迅速に検索し、問題の解決を迅速化できます。

前提条件

説明

この機能は、Application Real-Time Monitoring Service (ARMS) の Basic edition ではサポートされていません。

  • エージェントのバージョンが 2.6.1.2 以降であること。詳細については、「Java エージェントの更新」をご参照ください。

  • Simple Log Service (SLS) を使用したログ収集が設定されていること。詳細については、「データ収集の概要」をご参照ください。

背景情報

ARMS は、Mapped Diagnostic Context (MDC) メカニズムを使用してトレース ID とビジネスログを関連付け、Log4j、Log4j2、Logback をサポートしています。

関連付けの有効化

  1. ARMS コンソールにログインします。 左側のナビゲーションウィンドウで、[アプリケーション監視] > [アプリケーションリスト] を選択します。

  2. 上部のメニューバーでリージョンを選択し、対象のアプリケーション名をクリックします。

    説明

    [Language] 列のアイコンは、アプリケーションのプログラミング言語を示します。

    • Java icon:Java

    • image:Go

    • image:Python

    • [-] (ハイフン):Managed Service for OpenTelemetry で監視されているアプリケーション

  3. 上部のメニューバーで、Application Configuration > カスタム設定 を選択します。

  4. カスタム設定 タブの [Application Log Association Configuration] セクションで、[Log Source] を [SLS] に設定します。[Associate Business Logs with trace ID] スイッチをオンにし、SLS プロジェクトのリージョンを選択して、プロジェクトと Logstore をバインドします。

    必要に応じて、[Logs are automatically populated with trace ID] および [Logs are automatically populated with span ID] スイッチをオンにすることもできます。

    [Logs are automatically populated with trace ID] および [Logs are automatically populated with span ID] 機能には、エージェントのバージョンが 4.1.6 以降が必要です。SLS をバインドする際は、[Associated Index] も選択する必要があります。フィールドインデックスまたはフルテキストインデックスのいずれかを指定できます。

    説明
  5. (オプション) トレース ID を手動で関連付けます。

    ビジネスログレイアウトの Pattern 属性に、%X{EagleEye-TraceID} を追加します。SkyWalking プロトコルを使用する場合は、代わりに %X{Skywalking-TraceID} を追加します。ACK OnePilot (ARMS 内製エージェント) を使用してアプリケーションをオンボーディングする場合、トレース ID の形式は %X{EagleEye-TraceID} です。

    スパン ID も関連付ける場合は、%X{span_id} を追加します。

    重要
    • スパン ID の関連付けには、エージェントのバージョン 4.x 以降が必要です。

    • ビジネスコードで {EagleEye-TraceID} を取得する方法については、「ARMS SDK for Java (非推奨)」をご参照ください。

    以下の例は、Log4j、Log4j2、Logback の設定ファイルを変更する方法を示しています。

    • Log4j 設定ファイル log4j.properties の変更例:

      log4j.appender.warn.layout=org.apache.log4j.PatternLayout
      log4j.appender.warn.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}-[%p]-(%C:%L) - traceId:%X{EagleEye-TraceID} - spanId:%X{span_id} - %m%n
    • Log4j2 設定ファイル log4j2.xml の変更例:

      PatternLayout

      <console name="Console" target="SYSTEM_OUT">
          <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
          <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - traceId:%X{EagleEye-TraceID} - spanId:%X{span_id} - %m%n"/>
      </console>

      JsonLayout

      <JsonLayout   complete="false" compact="true" eventEol="true"
                    properties="false" locationInfo="true"
                    includeStacktrace="true" stacktraceAsString="true"
                    objectMessageAsJsonObject="true" >
          <KeyValuePair key="EagleEye-TraceID" value="${ctx:EagleEye-TraceID}" />
          <KeyValuePair key="span_id" value="${ctx:span_id}" />
      </JsonLayout>
    • Logback 設定ファイル logback.xml の変更例:

      PatternLayout

      <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
          <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - traceId:%X{EagleEye-TraceID} - spanId:%X{span_id} - %msg%n</pattern>
      </encoder>

      JsonLayout

      <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
      	<providers>
      		<timestamp/>
      		<threadName/>
      		<logLevel/>
      		<loggerName/>
      		<message/>
      		<callerData/>
      		<stackTrace/>
      		<pattern>
      			<pattern>
      				{
      				"EagleEye-TraceID": "%X{EagleEye-TraceID}",
                                      "span_id": "%X{span_id}"
      				}
      			</pattern>
      		</pattern>
      	</providers>
      </encoder>
  6. アプリケーションを再起動します。

    ビジネスログにトレース ID が表示されれば、関連付けは成功です。出力例:

    2023-02-15 15:03:43-[INFO]-(com.example....HelloController:17) - traceId:ea1e0fe79b16764446      this is an info message
    2023-02-15 15:03:43-[ERROR]-(com.example....HelloController:19) - traceId:ea1e0fe79b16764446    - this is an error message
    2023-02-15 15:03:43-[WARN]-(com.example....HelloController:21) - traceId:ea1e0fe79b16764446      this is a warn message
  7. (オプション) SLS ログ収集を設定して、アプリケーションログを前の手順でバインドしたプロジェクトと Logstore にアップロードします。

    デフォルトでは、ARMS はアプリケーションログを収集しません。