All Products
Search
Document Center

Application Real-Time Monitoring Service:Mode pengambilan sampel jejak (Agent V3.2.8 atau lebih baru)

Last Updated:Aug 05, 2026

Topik ini menjelaskan berbagai mode pengambilan sampel jejak yang didukung oleh ARMS. Anda dapat memilih mode yang sesuai dengan skenario Anda untuk memperoleh data jejak yang dibutuhkan dengan biaya lebih rendah.

Konsep kunci

  • span: Operasi spesifik dalam suatu permintaan, seperti entri panggilan remote atau pemanggilan metode internal.

  • root span: Span pertama dalam suatu jejak.

  • local root span: Span pertama dari segmen jejak dalam satu aplikasi.

  • span context: Informasi yang disebarkan bersama permintaan untuk menghubungkan semua operasi dalam jejak yang sama.

  • head-based sampling: Strategi pengambilan sampel yang hanya dilakukan pada root span. Dalam kebanyakan kasus, metode ini mempertahankan jejak yang lengkap.

  • non-head-based sampling: Strategi pengambilan sampel yang dapat dipicu pada local root span mana pun jika head-based sampling tidak mengambil sampel jejak tersebut. Metode ini biasanya tidak menjamin kelengkapan jejak.

Strategi dan penanda pengambilan sampel

Untuk membantu Anda mengumpulkan data jejak yang lebih bernilai, ARMS menyediakan beberapa strategi pengambilan sampel, termasuk dua strategi head-based sampling dan tiga strategi non-head-based sampling.

Penanda pengambilan sampel

Saat Anda menggunakan protokol EagleEye untuk menyebarkan konteks jejak antar proses, ARMS mencatat apakah jejak tersebut diambil sampelnya. Kunci header permintaan adalah EagleEye-Sampled, dan nilainya dapat berupa:

  • s0: Tidak diambil sampelnya

  • s1: Diambil sampelnya

Pada local root span tempat jejak diambil sampelnya, alasan pengambilan sampel dicatat sebagai atribut span dengan kunci sample.reason. Nilai yang mungkin adalah:

  • s2: minimum sampling for all interfaces

  • s3: custom sampling

  • s4: fixed-rate sampling

  • s5: Dicadangkan

  • s6: adaptive sampling

  • s7: Dicadangkan

  • s8: Basic Edition sampling

  • s9: failed request sampling

  • s10: slow request sampling

  • s11: abnormal call sampling

  • s12: business trace sampling

Strategi head-based sampling

ARMS menyediakan dua strategi head-based sampling: fixed-rate sampling, pendekatan paling umum dalam pelacakan terdistribusi, dan adaptive sampling, alternatif hemat biaya yang dikembangkan oleh ARMS.

Fixed-rate sampling

Strategi ini mengambil sampel jejak pada titik masuk permintaan berdasarkan persentase tertentu. Span yang diambil sampelnya menggunakan strategi ini ditandai dengan atribut sample.reason dan nilainya s4. Pada halaman detail jejak, atribut span mencakup bidang sample.reason; untuk fixed-rate sampling, nilainya adalah s4.

Untuk mengonfigurasi fixed-rate sampling:

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

  2. Di bagian atas halaman Application List, pilih Wilayah tujuan, lalu klik aplikasi target.

    Catatan

    Ikon di kolom Language memiliki arti sebagai berikut:

    Java icon: Aplikasi Java yang terhubung ke Application Monitoring.

    image: Aplikasi Go yang dipantau oleh Application Monitoring.

    image: Aplikasi Python yang dipantau oleh Application Monitoring.

    -: Aplikasi yang terintegrasi dengan Managed Service for OpenTelemetry.

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

  4. Pada bagian Sampling Settings, atur Sampling strategy menjadi Fixed sampling rate. Pada bidang Sample Rate Percentage, masukkan angka. Misalnya, masukkan 10 untuk mengambil sampel 10% dari jejak.

    Catatan

    Perubahan berlaku segera tanpa perlu restart aplikasi. Nilai default adalah 10 untuk aplikasi Java dan Go, serta 100 untuk aplikasi Python. Laju pengambilan sampel yang lebih tinggi mengonsumsi lebih banyak sumber daya sistem, sehingga kami menyarankan Anda mempertahankan nilai default.

  5. Klik Save.

Adaptive sampling

Dalam skenario dunia nyata, traffic dapat sangat bervariasi di berbagai layanan dalam suatu aplikasi. Antarmuka baca sering menerima jauh lebih banyak permintaan daripada antarmuka tulis, tetapi data jejaknya umumnya kurang bernilai. Untuk mencegah fixed-rate sampling mengumpulkan terlalu banyak jejak bertraffic tinggi namun bernilai rendah, ARMS menyediakan strategi adaptive sampling. Strategi ini menggunakan algoritma berbasis frekuensi untuk memilih 1.000 antarmuka teratas berdasarkan volume panggilan. Pengambilan sampel untuk setiap antarmuka ini diisolasi, dengan laju 10 jejak per detik. Antarmuka di luar 1.000 teratas dikelompokkan ke dalam kategori "Other" tunggal, yang berbagi kuota gabungan sebesar 10 jejak per detik. Span yang diambil sampelnya dengan strategi ini ditandai dengan atribut sample.reason dan nilai s6. Setelah mengaktifkan adaptive sampling, Anda dapat melihat sample.reason ini di atribut span, di mana nilai s6 menunjukkan alasan pengambilan sampel ini.

Untuk mengonfigurasi adaptive sampling:

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

  2. Di bagian atas halaman Application List, pilih Wilayah tujuan, lalu klik aplikasi target.

    Catatan

    Ikon di kolom Language memiliki arti sebagai berikut:

    Java icon: Aplikasi Java yang terhubung ke Application Monitoring.

    image: Aplikasi Go yang dipantau oleh Application Monitoring.

    image: Aplikasi Python yang dipantau oleh Application Monitoring.

    -: Aplikasi yang terintegrasi dengan Managed Service for OpenTelemetry.

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

  4. Pada bagian Sampling Settings, atur Sampling strategy menjadi Adaptive Sampling.

    Catatan

    Perubahan berlaku segera tanpa perlu restart aplikasi.

  5. Klik Save.

Strategi non-head-based sampling

Strategi head-based sampling tidak dapat menjamin pengambilan sampel span dengan karakteristik tertentu yang sering kali sangat menarik, seperti span dengan error, latensi tinggi, atau exception, serta span dari antarmuka bertraffic sangat rendah atau antarmuka yang ditentukan secara kustom. Hal ini karena strategi tersebut membuat keputusan pengambilan sampel hanya pada titik awal jejak, sehingga tidak dapat menjamin kelengkapan jejak.

Minimum sampling for all interfaces

Tidak diperlukan konfigurasi. Strategi ini secara otomatis memastikan bahwa setidaknya satu jejak diambil sampelnya untuk setiap antarmuka per menit. Span yang diambil sampelnya dengan cara ini ditandai dengan atribut sample.reason dan nilai s2.

Sampling for failed or slow requests

Penting

Untuk menggunakan strategi pengambilan sampel ini, pastikan fitur Call chain compression di halaman Custom Configurations diaktifkan. Fitur ini diaktifkan secara default.

Suatu jejak diambil sampelnya jika panggilan antarmuka memenuhi salah satu kondisi berikut:

  • Error antarmuka: Untuk antarmuka berbasis HTTP, kode respons bukan 200. Untuk jenis antarmuka lain, metode yang diinstrumentasi melemparkan exception.

  • Exception eksekusi internal: Terjadi exception selama eksekusi internal panggilan antarmuka tetapi tidak disebarkan ke titik masuk instrumentasi framework.

  • Latensi tinggi: Durasi panggilan antarmuka melebihi slow-call threshold antarmuka yang dikonfigurasi di halaman Custom Configurations.

    Catatan

    Jika statistik kuantil juga diaktifkan, aturan pengambilan sampel permintaan lambat juga dipicu jika durasi panggilan melebihi latensi P99 untuk antarmuka tersebut.

Span yang diambil sampelnya karena alasan-alasan ini ditandai dengan atribut sample.reason, yang diatur menjadi s9 (error antarmuka), s11 (exception internal), atau s10 (latensi tinggi), masing-masing.

Custom sampling

Jika strategi pengambilan sampel lain tidak mengumpulkan semua jejak yang Anda butuhkan, Anda dapat menggunakan custom sampling untuk memastikan antarmuka tertentu selalu diambil sampelnya (laju pengambilan sampel 100%). Anda dapat menentukan antarmuka berdasarkan nama eksaknya, awalan, atau akhiran. Span yang diambil sampelnya dengan strategi ini membawa atribut dengan kunci sample.reason dan nilai s3.

Untuk mengonfigurasi pengambilan sampel kustom:

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

  2. Di bagian atas halaman Application List, pilih Wilayah tujuan, lalu klik aplikasi target.

    Catatan

    Ikon di kolom Language memiliki arti sebagai berikut:

    Java icon: Aplikasi Java yang terhubung ke Application Monitoring.

    image: Aplikasi Go yang dipantau oleh Application Monitoring.

    image: Aplikasi Python yang dipantau oleh Application Monitoring.

    -: Aplikasi yang terintegrasi dengan Managed Service for OpenTelemetry.

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

  4. Pada bagian Sampling Settings, tentukan antarmuka, awalan antarmuka, dan akhiran antarmuka yang ingin Anda ambil sampelnya sepenuhnya.

    Catatan

    Perubahan berlaku segera tanpa perlu restart aplikasi.

  5. Klik Save.

Cara kerja

Pertimbangkan jalur jejak A > B > C. Keputusan akhir untuk melaporkan span untuk panggilan bisnis ditentukan oleh kombinasi strategi pengambilan sampel. Proses keputusan, yang ditunjukkan dalam bagan alir berikut, dijalankan setiap kali permintaan tiba di A, B, dan C. Namun, beberapa langkah dilewati tergantung pada apakah span saat ini merupakan root span atau local root span.

Sampling decision flowchart

Warna dalam bagan alir memiliki arti sebagai berikut:

  • Ungu: Head-based sampling standar. Hanya dipicu pada root span jejak. Dalam contoh A > B > C, strategi ini hanya dipicu di A.

  • Biru: Strategi ini dapat dipicu di node mana pun dalam jejak jika head-based sampling tidak dipicu. Misalnya, jika A memutuskan untuk tidak mengambil sampel permintaan, B mengevaluasi ulang apakah akan mengambil sampelnya berdasarkan strategi custom sampling dan minimum sampling for all interfaces miliknya sendiri. Jika B memutuskan untuk mengambil sampel, penanda pengambilan sampelnya disebarkan ke C. Strategi ini dapat dipicu di A, B, dan C.

  • Hijau: Strategi ini dapat dipicu di node mana pun jika keputusan pengambilan sampel saat ini adalah "jangan ambil sampel", tetapi tidak memengaruhi keputusan pengambilan sampel untuk layanan downstream. Misalnya, jika A memutuskan untuk tidak mengambil sampel permintaan, B mungkin tetap memutuskan untuk mengambil sampelnya berdasarkan strategi sampling for failed or slow requests. Dalam kasus ini, B tidak menyebarkan penanda pengambilan sampel ke C. Strategi ini dapat dipicu di A, B, dan C.

Dokumen terkait

Setelah jejak dikumpulkan, Anda dapat menganalisis data yang tersimpan secara real time dengan menggabungkan berbagai kondisi filter dan dimensi agregasi. Untuk informasi selengkapnya, lihat analisis jejak.