All Products
Search
Document Center

Application Real-Time Monitoring Service:Analisis log

Last Updated:Mar 12, 2026

Saat sebuah aplikasi melemparkan exception atau berperilaku tidak sesuai harapan, log merupakan jalur tercepat menuju akar permasalahan. Application Real-Time Monitoring Service (ARMS) menghubungkan log aplikasi yang disimpan di Simple Log Service (SLS) dengan ID jejak terdistribusi. Setelah dikonfigurasi, Anda dapat langsung melompat dari jejak ke entri log yang direkam selama permintaan tersebut atau mencari log berdasarkan ID jejak untuk menemukan jalur eksekusi yang tepat.

Penting

Pemantauan Aplikasi menyediakan halaman detail aplikasi baru bagi pengguna yang telah mengaktifkan mode penagihan baru. Untuk informasi selengkapnya, lihat Penagihan (baru). Jika Anda belum mengaktifkan mode penagihan baru, klik Switch to New Version pada halaman Application List untuk mengakses antarmuka baru.

Cara kerja

Setelah Anda mengaitkan Logstore SLS ke aplikasi ARMS, ARMS menyisipkan ID jejak ke dalam log aplikasi melalui framework logging. Setiap entri log diberi tag dengan ID jejak dari permintaan yang menghasilkannya. Hal ini memungkinkan dua alur kerja:

  • Jejak ke log: Buka jejak di Trace Explorer dan lihat semua entri log yang dihasilkan selama permintaan tersebut.

  • Log ke jejak: Cari log berdasarkan ID jejak untuk menemukan jejak terdistribusi dari entri log tertentu.

Catatan

ARMS tidak mengumpulkan log ke dalam Logstore. Konfigurasikan pengumpulan log secara terpisah di SLS. Untuk informasi selengkapnya, lihat Ikhtisar pengumpulan data.

Framework logging yang didukung

Penyisipan ID jejak otomatis berfungsi dengan framework logging Java berikut:

  • log4j

  • log4j2

  • Logback

Jika aplikasi Anda menggunakan framework logging lain, penyisipan otomatis tidak didukung. Lihat Mengambil ID jejak secara manual untuk pendekatan alternatif.

Kapan ID jejak tersedia

Konteks jejak hanya ada pada titik masuk permintaan. Log yang dicetak di luar konteks ini tidak dapat dikaitkan dengan ID jejak.

SkenarioID jejak tersedia?Alasan
Aplikasi menerima permintaan HTTP, menjalankan kueri database, dan mencetak logYaTitik masuk HTTP membuat konteks jejak
Permintaan HTTP memicu tugas asinkron melalui kolam thread untuk menjalankan kueri database dan mencetak log (agen v4.x)Yav4.x menyebarkan konteks jejak di antara thread asinkron
Permintaan HTTP memicu tugas asinkron melalui kolam thread untuk menjalankan kueri database dan mencetak log (agen v3.x)Tidakv3.x tidak menyebarkan konteks jejak di antara thread asinkron
Aplikasi menggunakan kolam thread JDK untuk menjalankan kueri database berkala saat startupTidakTidak ada titik masuk permintaan
Catatan

Periksa nama thread dalam entri log untuk menentukan skenario yang berlaku. Thread Tomcat diawali dengan http-nio- dan thread Dubbo diawali dengan DubboServerHandler-. Log dari thread-thread ini seharusnya memiliki ID jejak.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

Langkah 1: Mengaitkan log bisnis dengan ID jejak

  1. Masuk ke Konsol ARMS. Di panel navigasi kiri, pilih Application Monitoring > Application List.

  2. Pada halaman Application List, pilih wilayah di bilah navigasi atas, lalu klik nama aplikasi.

    Catatan

    Kolom Language menampilkan bahasa yang digunakan setiap aplikasi:

    • Java: Java

    • Go: Go

    • Python: Python

    • Tanda hubung (-): Aplikasi yang dipantau di Managed Service for OpenTelemetry

  3. Di bilah navigasi atas, pilih Configuration > Custom Configurations.

  4. Pada bagian Application log Association configuration, konfigurasikan pengaturan berikut:

    • Atur Log Source ke Log service SLS.

    • Aktifkan Automatically associate business logs with TraceId.

    • Pilih wilayah, proyek, dan Logstore tempat log aplikasi Anda disimpan.

  5. Klik Save.

Langkah 2: Mencari dan menganalisis log

  1. Di bilah navigasi atas, pilih Scenario-based Analysis > Log Analysis.

  2. Masukkan pernyataan kueri di kotak pencarian. Pernyataan kueri terdiri dari pernyataan pencarian dan pernyataan analitik dalam format Pernyataan pencarian|Pernyataan analitik. Untuk detail sintaksis, lihat Sintaksis pencarian dan Fungsi agregat.

  3. Tentukan rentang waktu. Tetapkan waktu mulai dan waktu akhir dalam satuan jam atau hingga detik. Anda juga dapat menetapkan rentang waktu relatif tanpa menentukan waktu mulai atau waktu akhir.

    Catatan

    Hasil kueri mungkin mencakup log yang dihasilkan hingga 1 menit sebelum atau sesudah rentang waktu yang ditentukan.

  4. Klik Search & Analyze untuk melihat hasilnya.

    Log analysis results

Mengambil ID jejak secara manual

Jika penyisipan ID jejak otomatis tidak berfungsi dengan framework logging Anda, ambil ID jejak secara pemrograman menggunakan ARMS SDK untuk Java dan sertakan dalam pesan log Anda:

Span span = Tracer.builder().getSpan();   // Tidak ada span baru yang dibuat.
String traceId = span.getTraceId();

logger.warn("traceId={} this is your log message", traceId);

FAQ

Mengapa ID jejak tidak muncul di log saya setelah saya memperbarui konfigurasi XML?

Pertama, verifikasi bahwa log telah sampai ke Logstore SLS Anda dan bahwa proyek serta Logstore yang benar dipilih di bawah Application log Association configuration di Konsol ARMS.

Jika log ada di SLS tetapi ID jejak tidak muncul, akar permasalahannya bergantung pada cakupan masalah tersebut.

Semua log tidak memiliki ID jejak

Periksa penyebab berikut secara berurutan (yang paling umum terlebih dahulu):

  1. Agen ARMS tidak dipasang. Pastikan metrik aplikasi ditampilkan secara normal di Konsol ARMS.

  2. Agen atau plug-in dinonaktifkan. Buka halaman detail aplikasi dan periksa bagian Probe switch settings pada tab Custom Configurations. Pastikan sakelar utama dan plug-in terkait (misalnya, plug-in Tomcat) diaktifkan.

  3. Framework server Anda tidak didukung. Kontainer web, framework RPC, framework tugas terjadwal, atau framework pesan yang tidak didukung mencegah penyisipan ID jejak. Lihat Komponen dan framework Java yang didukung ARMS untuk daftar kompatibilitas lengkap.

  4. Framework logging Anda tidak didukung. Hanya log4j, log4j2, dan Logback yang didukung. Modifikasi mendalam terhadap framework ini juga dapat mengganggu penyisipan.

  5. Konfigurasi XML log mengandung kesalahan. Untuk mengisolasi masalah ini:

    • Pada agen v4.1.6 atau yang lebih baru, aktifkan pengisian ID jejak otomatis. Jika ID jejak muncul, masalahnya ada pada konfigurasi XML Anda.

    • Gunakan ARMS SDK untuk mengambil ID jejak secara manual (lihat Mengambil ID jejak secara manual). Jika ID jejak dikembalikan, konfigurasi XML adalah penyebabnya.

    • Jika kedua pendekatan tersebut tidak berhasil, kirim tiket.

Beberapa log tidak memiliki ID jejak

Konteks jejak hanya ada pada titik masuk permintaan—antarmuka HTTP, antarmuka RPC, tugas terjadwal, dan konsumsi pesan. Log yang dicetak di luar konteks ini (misalnya, selama operasi latar belakang umum) tidak dapat dikaitkan dengan ID jejak. Lihat Kapan ID jejak tersedia untuk penjelasan rinci.

Jika skenario tersebut tidak menjelaskan masalah Anda, kirim tiket.

Mengapa log kosong saat saya melihatnya dari Trace Explorer?

  1. Periksa apakah semua log untuk aplikasi tidak memiliki ID jejak. Jika ya, lihat FAQ sebelumnya.

  2. Jika hanya antarmuka tertentu yang tidak memiliki log, kemungkinan antarmuka tersebut tidak menghasilkan output log secara internal.

  3. Jika kedua penjelasan tersebut tidak berlaku, kirim tiket.

Mengapa Logstore tidak memiliki log setelah saya mengaitkannya ke proyek?

ARMS tidak mengumpulkan log ke dalam Logstore untuk Anda. Konfigurasikan pengumpulan log aplikasi secara terpisah di SLS dengan mengikuti dokumentasi SLS.

Mengapa log aplikasi gagal dikaitkan dengan ID jejak sedangkan log bisnis berhasil?

Agen v3.x memiliki masalah yang diketahui dalam instrumentasi Spring Cloud Gateway. Tingkatkan ke agen v4.x untuk mengatasi masalah ini.

Mengapa log dalam tugas asinkron gagal dikaitkan dengan ID jejak setelah saya membungkusnya dengan TraceCallable.wrap()?

Tingkatkan ke agen v4.x. Agen v4.x menyebarkan konteks jejak di antara thread asinkron secara otomatis, tanpa perubahan kode yang diperlukan.

Mengapa pengaitan ID jejak gagal setelah saya mengaktifkan pengisian ID jejak otomatis?