Bagikan melalui


Pengambilan sampel di Azure Monitor Application Insights dengan OpenTelemetry

Application Insights mencakup sampler kustom dan terintegrasi dengan OpenTelemetry untuk mengurangi volume telemetri, menurunkan biaya, dan menyimpan data diagnostik yang Anda pedulikan.

Penting

Untuk informasi tentang pengambilan sampel saat menggunakan Application Insights Classic API Software Development Kits (SDK), lihat Pengambilan Sampel API Klasik.

Prasyarat

Sebelum melanjutkan, pastikan Anda memiliki:

Mengapa pengambilan sampel penting

Pengambilan sampel sangat penting untuk aplikasi yang menghasilkan telemetri dalam jumlah besar. Tanpa pengambilan sampel, penyerapan data yang berlebihan dapat meningkatkan biaya penyimpanan dan pemrosesan, dan menyebabkan Application Insights membatasi telemetri. Pengambilan sampel yang efektif menyimpan cukup data untuk diagnostik yang bermakna saat mengontrol biaya.

Pengambilan sampel tidak diaktifkan secara default di distro OpenTelemetry Application Insights. Anda harus secara eksplisit mengaktifkan dan mengonfigurasi pengambilan sampel untuk mengelola volume telemetri Anda.

Nota

Jika Anda melihat biaya tak terduga atau biaya tinggi di Application Insights, panduan ini dapat membantu. Ini mencakup penyebab umum seperti volume telemetri tinggi, lonjakan penyerapan data, dan pengambilan sampel yang salah dikonfigurasi. Ini sangat berguna jika Anda mengatasi masalah yang terkait dengan lonjakan biaya, volume telemetri, pengambilan sampel yang tidak berfungsi, batas data, ingesti tinggi, atau penagihan yang tidak terduga. Untuk memulai, lihat Memecahkan masalah penyerapan data tinggi di Application Insights.

Pengambil Sampel Kustom untuk Application Insights

Distro berbasis OpenTelemetry Azure Monitor menyertakan sampler kustom.

  • Application Insights bergantung pada sampler ini untuk menunjukkan kepada Anda jejak lengkap dan menghindari jejak yang tidak lengkap.
  • Metrik Langsung dan SDK API klasik Application Insights memerlukan sampler ini untuk kompatibilitas.

Opsi pengambilan sampel

Application Insights mendukung dua strategi pengambilan sampel:

  • Laju tetap (persentase): Tetapkan rasio pengambilan sampel antara 0 dan 1.

    Contoh: 0.1 mengirim sekitar 10% jejak ke Azure Monitor.

  • Laju terbatas: Atur jumlah maksimum jejak per detik.

    Contoh: 0.5 ≈ satu jejak setiap dua detik; 5.0 = lima jejak per detik.

Fitur pengambilan sampel berbasis jejak opsional untuk log tersedia untuk bahasa yang didukung, yang menghapus log yang terkait dengan jejak yang tidak disampel. Fitur ini aktif secara default jika pengambilan sampel diaktifkan.

Untuk mengonfigurasi pengambilan sampel, lihat Mengaktifkan Pengambilan Sampel di Application Insights dengan OpenTelemetry.

Manfaat sampler khusus

  • Mengurangi jejak yang rusak dan membantu memberikan keputusan pengambilan sampel yang konsisten
  • Mempertahankan kompatibilitas dengan Metrik Langsung dan dapat digunakan bersama SDK klasik

Untuk informasi selengkapnya dan kasus tepi pengambilan sampel, lihat Tanya Jawab Umum.

Panduan pengambilan sampel umum

Gunakan panduan umum berikut jika Anda tidak yakin harus memulai dari mana.

Pengambilan sampel penyerapan adalah alternatif ketika kontrol pada tingkat sumber tidak dimungkinkan. Ini menghilangkan data di titik penyerapan Azure Monitor dan tidak menawarkan kontrol atas jejak dan rentang mana yang dipertahankan. Ini meningkatkan kemungkinan mengalami jejak yang rusak.

Skenario di mana itu adalah satu-satunya pilihan yang layak atau paling praktis meliputi:

  • Anda tidak dapat mengubah kode sumber aplikasi.
  • Anda perlu mengurangi volume telemetri segera tanpa menyebarkan ulang aplikasi.
  • Anda menerima telemetri dari beberapa sumber dengan konfigurasi pengambilan sampel yang tidak konsisten atau tidak diketahui.

Untuk mengonfigurasi pengambilan sampel masukan:

  1. Pergi ke Application Insights>Penggunaan dan perkiraan biaya.
  2. Pilih Pengambilan Sampel Data.
  3. Pilih persentase data yang akan dipertahankan.

Validasi pengambilan sampel diaktifkan

Gunakan kueri Analitik Log untuk menemukan laju pengambilan sampel.

union requests,dependencies,pageViews,browserTimings,exceptions,traces
| where timestamp > ago(1d)
| summarize RetainedPercentage = 100/avg(itemCount) by bin(timestamp, 1h), itemType

Jika Anda melihat bahwa RetainedPercentage untuk jenis apa pun kurang dari 100, jenis telemetri tersebut sedang digunakan sebagai sampel.

Mengatur batas harian

Atur batas harian untuk mencegah biaya tak terduga. Batas ini menghentikan penyerapan telemetri ketika mencapai ambang batas.

Gunakan tutup ini sebagai kontrol terakhir, bukan pengganti pengambilan sampel. Peningkatan volume data yang tiba-tiba dapat memicu batas, menciptakan kesenjangan dalam telemetri hingga direset keesokan harinya.

Untuk mengonfigurasi batas, lihat Mengatur batas harian untuk Azure Monitor.

Langkah selanjutnya