Asosiasikan ID jejak dengan log bisnis aplikasi Java Anda agar dapat dengan cepat menemukan log yang relevan berdasarkan ID jejak saat terjadi masalah dan mempercepat penyelesaiannya.
Prasyarat
Fitur ini tidak didukung dalam edisi Basic Application Real-Time Monitoring Service (ARMS).
Agen harus versi 2.6.1.2 atau lebih baru. Untuk informasi selengkapnya, lihat Perbarui agen Java.
Pengumpulan log dikonfigurasi menggunakan Simple Log Service (SLS). Untuk informasi selengkapnya, lihat Ikhtisar pengumpulan data.
Informasi latar belakang
ARMS mengasosiasikan ID jejak dengan log bisnis menggunakan mekanisme Mapped Diagnostic Context (MDC) dan mendukung Log4j, Log4j2, serta Logback.
Aktifkan asosiasi
-
Masuk ke Konsol ARMS. Di panel navigasi kiri, pilih .
Pilih wilayah di bilah navigasi atas, lalu klik aplikasi tersebut.
CatatanIkon pada kolom Language menunjukkan bahasa pemrograman aplikasi:
: Java
: Go
: Python- (Tanda hubung): aplikasi yang dipantau di Managed Service for OpenTelemetry
Di bilah navigasi atas, pilih .
Di tab Custom Configurations, pada bagian Application Log Association Configuration, atur Log Source menjadi SLS. Aktifkan sakelar Associate Business Logs with trace ID, pilih wilayah proyek SLS Anda, lalu bind proyek dan Logstore tersebut.
Anda juga dapat mengaktifkan sakelar Logs are automatically populated with trace ID dan Logs are automatically populated with span ID sesuai kebutuhan.
Fitur Logs are automatically populated with trace ID dan Logs are automatically populated with span ID memerlukan agen versi 4.1.6 atau lebih baru. Saat melakukan bind ke SLS, Anda juga harus memilih Associated Index. Anda dapat menentukan indeks bidang atau indeks teks penuh.
CatatanSetelah mengaktifkan sakelar ini, ID jejak akan secara otomatis ditambahkan ke log bisnis Anda sehingga Anda dapat melewatkan konfigurasi manual pada Langkah 5.
Jika ingin mengidentifikasi exception bisnis, lihat Pecahkan masalah exception bisnis menggunakan jejak dan analisis log.
(Opsional) Asosiasikan ID jejak secara manual.
Pada atribut
Patterntata letak log bisnis Anda, tambahkan%X{EagleEye-TraceID}. Jika menggunakan protokol SkyWalking, tambahkan%X{Skywalking-TraceID}sebagai gantinya. Jika Anda onboard aplikasi menggunakan ACK OnePilot (agen internal ARMS), format ID jejak adalah%X{EagleEye-TraceID}.Untuk juga mengasosiasikan ID rentang, tambahkan
%X{span_id}.PentingAsosiasi ID rentang memerlukan agen versi 4.x atau lebih baru.
Untuk mengetahui cara mendapatkan
{EagleEye-TraceID}dalam kode bisnis Anda, lihat ARMS SDK untuk Java (Tidak Direkomendasikan).
Contoh berikut menunjukkan cara memodifikasi file konfigurasi untuk Log4j, Log4j2, dan Logback:
Contoh modifikasi file konfigurasi 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%nContoh modifikasi file konfigurasi 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>Contoh modifikasi file konfigurasi 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>
Restart aplikasi Anda.
Jika ID jejak muncul dalam log bisnis Anda, asosiasi telah berhasil. Contoh output:
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(Opsional) Konfigurasikan pengumpulan log SLS untuk mengunggah log aplikasi ke proyek dan Logstore yang telah Anda bind pada langkah sebelumnya.
Secara default, ARMS tidak mengumpulkan log aplikasi.