Pengambilan Sampel di Application Insights

Pengambilan sampel adalah fitur di Azure Application Insights. Ini cara yang disarankan untuk mengurangi lalu lintas telemetri, biaya data, dan biaya penyimpanan, sekaligus menyimpan analisis data aplikasi yang benar secara statistik. Pengambilan sampel juga membantu Anda mencegah Application Insights membatasi telemetri. Filter pengambilan sampel memilih item yang terkait, sehingga Anda dapat menavigasi antar item saat melakukan penyelidikan diagnostik.

Saat jumlah metrik ditampilkan di portal, metrik dinormalisasi ulang untuk mempertimbangkan pengambilan sampel. Hal ini meminimalkan efek pada statistik.

Ringkasan singkat

  • Ada tiga jenis pengambilan sampel yang berbeda: pengambilan sampel adaptif, pengambilan sampel laju tetap, dan pengambilan sampel penyerapan.
  • Pengambilan sampel adaptif diaktifkan secara default di semua versi terbaru Software Development Kit (SDK) ASP.NET dan ASP.NET Core Application Insights. Ini juga digunakan oleh Azure Functions.
  • Pengambilan sampel laju tetap tersedia dalam versi terbaru Application Insights SDK untuk ASP.NET, ASP.NET Core, Java (agen dan SDK), dan Python.
  • Di Java, pengambil alihan pengambilan sampel tersedia, dan berguna ketika Anda perlu menerapkan tingkat pengambilan sampel yang berbeda untuk dependensi, permintaan, pemeriksaan kesehatan yang dipilih. Gunakan pengambil alihan pengambilan sampel untuk menghilangkan beberapa dependensi berisik sementara misalnya semua kesalahan penting tetap pada 100%. Ini adalah bentuk pengambilan sampel tetap yang memberi Anda tingkat kontrol berbutir halus atas telemetri Anda.
  • Pengambilan sampel penyerapan berfungsi pada titik akhir layanan Application Insights. Ini hanya berlaku jika tidak ada pengambilan sampel lain yang berlaku. Jika SDK mengambil sampel telemetri Anda, pengambilan sampel penyerapan akan dinonaktifkan.
  • Untuk aplikasi web, jika Anda mencatat peristiwa kustom dan perlu memastikan serangkaian peristiwa disimpan atau dibuang bersama-sama, peristiwa harus memiliki nilai OperationId yang sama.
  • Jika Anda menulis kueri Analytics, Anda harus mempertimbangkan pengambilan sampel. Secara khusus, Anda harus menggunakan summarize sum(itemCount), bukan hanya menghitung data.
  • Catatan: Beberapa jenis telemetri, termasuk metrik performa dan metrik kustom akan selalu disimpan, terlepas dari apakah pengambilan sampel diaktifkan atau tidak.

Tabel berikut ini meringkas jenis pengambilan sampel yang tersedia untuk setiap SDK dan jenis aplikasi:

Application Insights SDK Pengambilan sampel adaptif didukung Pengambilan sampel laju tetap didukung Pengambilan sampel penyerapan didukung
ASP.NET Ya (aktif secara default) Ya Hanya jika tidak ada pengambilan sampel lain yang berlaku
Inti ASP.NET Ya (aktif secara default) Ya Hanya jika tidak ada pengambilan sampel lain yang berlaku
Azure Functions Ya (aktif secara default) Tidak Hanya jika tidak ada pengambilan sampel lain yang berlaku
Java Tidak Ya Hanya jika tidak ada pengambilan sampel lain yang berlaku
Node.JS Tidak Ya Hanya jika tidak ada pengambilan sampel lain yang berlaku
Python Tidak Ya Hanya jika tidak ada pengambilan sampel lain yang berlaku
Semua lainnya Tidak Tidak Ya

Catatan

Informasi di sebagian besar halaman ini berlaku untuk versi Application Insights SDK saat ini. Untuk informasi tentang versi SDK yang lebih lama, lihat bagian di bawah ini.

Jenis pengambilan sampel

Ada tiga metode pengambilan sampel yang berbeda:

  • Pengambilan sampel adaptif secara otomatis menyesuaikan volume telemetri yang dikirim dari SDK di aplikasi ASP.NET/ASP.NET Core Anda dan dari Azure Functions. Ini pengambilan sampel default saat Anda menggunakan SDK ASP.NET atau ASP.NET Core. Pengambilan sampel adaptif saat ini hanya tersedia untuk telemetri sisi server ASP.NET dan untuk Azure Functions.

  • Pengambilan sampel laju tetap mengurangi volume telemetri yang dikirim dari server ASP.NET, ASP.NET Core, atau Java dan dari browser pengguna Anda. Anda mengatur laju. Klien dan server akan menyinkronkan pengambilan sampel mereka, sehingga di Pencarian Anda, dapat menavigasi antara permintaan dan tampilan halaman terkait.

  • Pengambilan sampel penyerapan berlaku di titik akhir layanan Application Insights. Ini membuang beberapa telemetri yang tiba dari aplikasi Anda, dengan laju pengambilan sampel yang ditetapkan. Ini tidak mengurangi lalu lintas telemetri yang dikirim dari aplikasi Anda, tetapi membantu Anda tetap dalam kuota bulanan. Keuntungan utama dari pengambilan sampel penyerapan adalah Anda dapat mengatur laju pengambilan sampel tanpa menyebarkan ulang aplikasi Anda. Pengambilan sampel penyerapan bekerja secara seragam untuk semua server dan klien, tetapi tidak berlaku saat jenis pengambilan sampel lainnya beroperasi.

Penting

Jika metode pengambilan sampel adaptif atau laju tetap diaktifkan untuk jenis telemetri, pengambilan sampel penyerapan akan dinonaktifkan untuk telemetri tersebut. Akan tetapi, jenis telemetri yang tidak termasuk pengambilan sampel di tingkat SDK akan tetap tunduk pada pengambilan sampel penyerapan dengan laju yang ditetapkan di portal.

Pengambilan sampel adaptif

Pengambilan sampel adaptif mempengaruhi volume telemetri yang dikirim dari aplikasi server web Anda ke titik akhir layanan Application Insights.

Tip

Pengambilan sampel adaptif diaktifkan secara default saat Anda menggunakan SDK ASP.NET atau SDK ASP.NET Core, juga diaktifkan secara default untuk Azure Functions.

Volume disesuaikan otomatis agar tetap dalam laju lalu lintas maksimum yang ditentukan, dan dikontrol melalui pengaturan MaxTelemetryItemsPerSecond. Jika aplikasi menghasilkan telemetri dalam jumlah rendah, seperti saat melakukan debug atau karena penggunaan rendah, item tidak akan dihilangkan oleh prosesor pengambilan sampel selama volume berada di bawah MaxTelemetryItemsPerSecond. Saat volume telemetri meningkat, laju pengambilan sampel disesuaikan sehingga dapat mencapai volume target. Penyesuaian dihitung ulang secara berkala, dan didasarkan pada rata-rata pergerakan laju transmisi keluar.

Untuk mencapai volume target, beberapa telemetri yang dihasilkan akan dibuang. Tetapi seperti jenis pengambilan sampel lainnya, algoritmanya mempertahankan item telemetri terkait. Misalnya, saat memeriksa telemetri di Penelusuran, Anda dapat menemukan permintaan terkait pengecualian tertentu.

Jumlah metrik seperti laju permintaan dan laju pengecualian disesuaikan agar mengimbangi laju pengambilan sampel, sehingga menunjukkan nilai di Penjelajah Metrik yang kurang lebih benar.

Mengonfigurasi pengambilan sampel adaptif untuk aplikasi ASP.NET

Catatan

Bagian ini berlaku untuk aplikasi ASP.NET, bukan untuk aplikasi ASP.NET Core. Pelajari tentang mengonfigurasi pengambilan sampel adaptif untuk ASP.NET Core nanti dalam dokumen ini.

Dalam ApplicationInsights.config, Anda dapat menyesuaikan beberapa parameter dalam node AdaptiveSamplingTelemetryProcessor. Angka yang ditampilkan adalah nilai default:

  • <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>

    Tingkat target operasi logis yang hendak dikumpulkan algoritma adaptif pada setiap host server. Jika aplikasi web Anda berjalan di banyak host, kurangi nilai ini agar tetap berada dalam laju target lalu lintas Anda di portal Application Insights.

  • <EvaluationInterval>00:00:15</EvaluationInterval>

    Interval di mana tingkat telemetri saat ini dievaluasi kembali. Evaluasi dilakukan sebagai rata-rata pergerakan. Anda mungkin ingin mempersingkat interval ini jika telemetri Anda bisa meledak secara tiba-tiba.

  • <SamplingPercentageDecreaseTimeout>00:02:00</SamplingPercentageDecreaseTimeout>

    Saat nilai persentase pengambilan sampel berubah, seberapa cepat kami diizinkan menurunkan persentase pengambilan sampel lagi untuk mengambil lebih sedikit data?

  • <SamplingPercentageIncreaseTimeout>00:15:00</SamplingPercentageIncreaseTimeout>

    Saat nilai persentase pengambilan sampel berubah, seberapa cepat kami diizinkan meningkatkan persentase pengambilan sampel lagi untuk mengambil lebih banyak data?

  • <MinSamplingPercentage>0.1</MinSamplingPercentage>

    Karena persentase pengambilan sampel bervariasi, berapa nilai minimum yang boleh kami tetapkan?

  • <MaxSamplingPercentage>100.0</MaxSamplingPercentage>

    Karena persentase pengambilan sampel bervariasi, berapa nilai maksimum boleh kami tetapkan?

  • <MovingAverageRatio>0.25</MovingAverageRatio>

    Dalam perhitungan rata-rata pergerakan, ini menentukan berat yang harus ditetapkan ke nilai terbaru. Gunakan nilai yang sama dengan atau kurang dari 1. Nilai yang lebih kecil membuat algoritma kurang reaktif terhadap perubahan mendadak.

  • <InitialSamplingPercentage>100</InitialSamplingPercentage>

    Jumlah telemetri yang akan diambil sampelnya saat aplikasi baru saja dimulai. Jangan kurangi nilai ini saat Anda sedang melakukan debug.

  • <ExcludedTypes>Trace;Exception</ExcludedTypes>

    Daftar jenis yang dipisahkan dengan titik koma yang tidak ingin Anda ambil sampelnya. Jenis yang dikenali adalah: Dependency, Event, Exception, PageView, Request, Trace. Semua telemetri dari jenis yang ditentukan ditransmisikan; jenis yang belum ditentukan akan diambil sampelnya.

  • <IncludedTypes>Request;Dependency</IncludedTypes>

    Daftar jenis yang dipisahkan dengan titik koma yang ingin Anda ambil sampelnya. Jenis yang dikenali adalah: Dependency, Event, Exception, PageView, Request, Trace. Jenis yang ditentukan akan diambil sampelnya; semua telemetri dari jenis lain akan selalu ditransmisikan.

Untuk mematikan pengambilan sampel adaptif, hapus node AdaptiveSamplingTelemetryProcessor dari ApplicationInsights.config.

Alternatif: Mengonfigurasi pengambilan sampel adaptif dalam kode

Alih-alih mengatur parameter pengambilan sampel dalam file .config, Anda dapat mengatur nilai tersebut secara terprogram.

  1. Hapus semua node AdaptiveSamplingTelemetryProcessor dari file .config.

  2. Gunakan cuplikan berikut untuk mengonfigurasi pengambilan sampel adaptif:

    using Microsoft.ApplicationInsights;
    using Microsoft.ApplicationInsights.Extensibility;
    using Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation;
    using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel;
    
    // ...
    
    var builder = TelemetryConfiguration.Active.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
    // For older versions of the Application Insights SDK, use the following line instead:
    // var builder = TelemetryConfiguration.Active.TelemetryProcessorChainBuilder;
    
    // Enable AdaptiveSampling so as to keep overall telemetry volume to 5 items per second.
    builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond:5);
    
    // If you have other telemetry processors:
    builder.Use((next) => new AnotherProcessor(next));
    
    builder.Build();
    

    (Pelajari tentang prosesor telemetri.)

Anda juga dapat menyesuaikan laju pengambilan sampel untuk setiap jenis telemetri satu per satu, atau bahkan dapat mengecualikan jenis tertentu agar tidak diambil sampelnya sama sekali:

// The following configures adaptive sampling with 5 items per second, and also excludes Dependency telemetry from being subjected to sampling.
builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond:5, excludedTypes: "Dependency");

Mengonfigurasi pengambilan sampel adaptif untuk aplikasi ASP.NET Core

Tidak ada ApplicationInsights.config untuk ASP.NET Core, sehingga semua konfigurasi dilakukan melalui kode. Pengambilan sampel adaptif diaktifkan secara default untuk semua aplikasi ASP.NET Core. Anda dapat menonaktifkan atau menyesuaikan perilaku pengambilan sampel.

Menonaktifkan pengambilan sampel adaptif

Fitur pengambilan sampel default dapat dinonaktifkan saat menambahkan layanan Application Insights, dalam metode ConfigureServices, menggunakan ApplicationInsightsServiceOptions dalam file Startup.cs:

public void ConfigureServices(IServiceCollection services)
{
    // ...

    var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
    aiOptions.EnableAdaptiveSampling = false;
    services.AddApplicationInsightsTelemetry(aiOptions);

    //...
}

Kode di atas akan menonaktifkan pengambilan sampel adaptif. Ikuti langkah-langkah berikut untuk menambahkan pengambilan sampel dengan opsi penyesuaian lainnya.

Mengonfigurasi pengaturan pengambilan sampel

Gunakan metode ekstensi TelemetryProcessorChainBuilder seperti yang ditunjukkan di bawah ini guna menyesuaikan perilaku pengambilan sampel.

Penting

Jika Anda menggunakan metode ini untuk mengonfigurasi pengambilan sampel, pastikan menetapkan properti aiOptions.EnableAdaptiveSampling ke false saat memanggil AddApplicationInsightsTelemetry(). Setelah melakukan perubahan ini, Anda kemudian perlu mengikuti instruksi di blok kode tepat di bawah ini untuk mengaktifkan kembali pengambilan sampel adaptif dengan penyesuaian Anda di tempat. Gagal melakukannya dapat mengakibatkan konsumsi data berlebih. Selalu uji pengaturan pengambilan sampel pasca perubahan, dan atur batas data harian yang sesuai untuk membantu mengontrol biaya Anda.

using Microsoft.ApplicationInsights.Extensibility

public void Configure(IApplicationBuilder app, IHostingEnvironment env, TelemetryConfiguration configuration)
{
    var builder = configuration.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
    // For older versions of the Application Insights SDK, use the following line instead:
    // var builder = configuration.TelemetryProcessorChainBuilder;

    // Using adaptive sampling
    builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond:5);

    // Alternately, the following configures adaptive sampling with 5 items per second, and also excludes DependencyTelemetry from being subject to sampling.
    // builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond:5, excludedTypes: "Dependency");

    // If you have other telemetry processors:
    builder.Use((next) => new AnotherProcessor(next));
    
    builder.Build();

    // ...
}

Mengonfigurasi pengambilan sampel adaptif untuk Azure Functions

Ikuti instruksi dari halaman ini untuk mengonfigurasi pengambilan sampel adaptif untuk aplikasi yang berjalan di Azure Functions.

Pengambilan sampel laju tetap

Pengambilan sampel laju tetap mengurangi lalu lintas yang dikirim dari server web dan browser web Anda. Tidak seperti pengambilan sampel adaptif, pengambilan sampel ini mengurangi telemetri pada laju tetap yang Anda tetapkan. Pengambilan sampel laju tetap tersedia untuk ASP.NET, ASP.NET Core, Java, dan Python.

Seperti teknik pengambilan sampel lainnya, ini juga menyimpan item terkait. Pengambilan sampel ini juga menyinkronkan klien dan pengambilan sampel server sehingga item terkait disimpan - misalnya, saat melihat tampilan halaman di Pencarian, Anda dapat menemukan permintaan server terkait.

Di Penjelajah Metrik, laju seperti jumlah permintaan dan pengecualian dikalikan dengan faktor untuk mengimbangi laju pengambilan sampel, sehingga kurang lebih benar.

Mengonfigurasi pengambilan sampel laju tetap untuk aplikasi ASP.NET

  1. Nonaktifkan pengambilan sampel adaptif: Dalam ApplicationInsights.config, hapus atau komentari node AdaptiveSamplingTelemetryProcessor.

    <TelemetryProcessors>
        <!-- Disabled adaptive sampling:
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
            <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
        </Add>
        -->
    
  2. Aktifkan modul pengambilan sampel laju tetap. Tambahkan cuplikan ini ke ApplicationInsights.config:

    <TelemetryProcessors>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.SamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
            <!-- Set a percentage close to 100/N where N is an integer. -->
            <!-- E.g. 50 (=100/2), 33.33 (=100/3), 25 (=100/4), 20, 1 (=100/100), 0.1 (=100/1000) -->
            <SamplingPercentage>10</SamplingPercentage>
        </Add>
    </TelemetryProcessors>
    

    Atau, alih-alih mengatur parameter pengambilan sampel dalam file ApplicationInsights.config, Anda dapat mengatur nilai ini secara terprogram:

    using Microsoft.ApplicationInsights.Extensibility;
    using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel;
    
    // ...
    
    var builder = TelemetryConfiguration.Active.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
    // For older versions of the Application Insights SDK, use the following line instead:
    // var builder = TelemetryConfiguration.Active.TelemetryProcessorChainBuilder;
    
    builder.UseSampling(10.0); // percentage
    
    // If you have other telemetry processors:
    builder.Use((next) => new AnotherProcessor(next));
    
    builder.Build();
    

    (Pelajari tentang prosesor telemetri.)

Mengonfigurasi pengambilan sampel laju tetap untuk aplikasi ASP.NET Core

  1. Nonaktifkan pengambilan sampel adaptif: Perubahan dapat dilakukan dalam metode ConfigureServices, menggunakan ApplicationInsightsServiceOptions:

    public void ConfigureServices(IServiceCollection services)
    {
        // ...
    
        var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
        aiOptions.EnableAdaptiveSampling = false;
        services.AddApplicationInsightsTelemetry(aiOptions);
    
        //...
    }
    
  2. Aktifkan modul pengambilan sampel laju tetap. Perubahan dapat dilakukan dalam metode Configure seperti yang ditunjukkan pada cuplikan di bawah ini:

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        var configuration = app.ApplicationServices.GetService<TelemetryConfiguration>();
    
        var builder = configuration.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
        // For older versions of the Application Insights SDK, use the following line instead:
        // var builder = configuration.TelemetryProcessorChainBuilder;
    
        // Using fixed rate sampling
        double fixedSamplingPercentage = 10;
        builder.UseSampling(fixedSamplingPercentage);
    
        builder.Build();
    
        // ...
    }
    

Mengonfigurasi pengambil alihan pengambilan sampel dan pengambilan sampel tingkat tetap untuk aplikasi Java

Secara default tidak ada pengambilan sampel yang diaktifkan di instrumentasi otomatis Java dan SDK. Saat ini instrumentasi otomatis Java, pengambil alihan pengambilan sampel dan pengambilan sampel tingkat tetap didukung. Pengambilan sampel adaptif tidak didukung di Java.

Mengonfigurasi instrumentasi otomatis Java

  • Untuk mengonfigurasi penggantian pengambilan sampel yang menggantikan rasio pengambilan sampel default dan menerapkan rasio pengambilan sampel yang berbeda untuk permintaan dan dependensi yang dipilih, gunakan panduan penggantian pengambilan sampel.
  • Untuk mengonfigurasi pengambilan sampel tarif tetap yang berlaku untuk semua telemetri Anda, gunakan panduan pengambilan sampel tarif tetap.

Mengonfigurasi SDK Java 2.x

  1. Unduh dan konfigurasikan aplikasi web Anda dengan Application Insights Java SDK terbaru.

  2. Aktifkan modul pengambilan sampel laju tetap dengan menambahkan cuplikan berikut ke file ApplicationInsights.xml:

    <TelemetryProcessors>
        <BuiltInProcessors>
            <Processor type="FixedRateSamplingTelemetryProcessor">
                <!-- Set a percentage close to 100/N where N is an integer. -->
                <!-- E.g. 50 (=100/2), 33.33 (=100/3), 25 (=100/4), 20, 1 (=100/100), 0.1 (=100/1000) -->
                <Add name="SamplingPercentage" value="50" />
            </Processor>
        </BuiltInProcessors>
    </TelemetryProcessors>
    
  3. Anda dapat menyertakan atau mengecualikan jenis telemetri tertentu dari pengambilan sampel menggunakan tag berikut di dalam FixedRateSamplingTelemetryProcessor tag Processor:

    <ExcludedTypes>
        <ExcludedType>Request</ExcludedType>
    </ExcludedTypes>
    
    <IncludedTypes>
        <IncludedType>Exception</IncludedType>
    </IncludedTypes>
    

Jenis telemetri yang dapat disertakan atau dikecualikan dari pengambilan sampel adalah: Dependency, Event, Exception, PageView, Request, dan Trace.

Catatan

Untuk persentase pengambilan sampel, pilih persentase yang mendekati 100/N di mana N adalah bilangan bulat. Saat ini pengambilan sampel tidak mendukung nilai lain.

Mengonfigurasi pengambilan sampel laju tetap untuk aplikasi OpenCensus Python

Lengkapi aplikasi Anda dengan eksportir OpenCensus Azure Monitor terbaru.

Catatan

Pengambilan sampel laju tetap tidak tersedia untuk eksportir metrik. Ini berarti metrik kustom adalah satu-satunya jenis telemetri tempat pengambilan sampel TIDAK dapat dikonfigurasi. Eksportir metrik akan mengirimkan semua telemetri yang dilacaknya.

Pengambilan sampel laju tetap untuk pelacakan

Anda dapat menentukan sampler sebagai bagian konfigurasi Tracer Anda. Jika tidak ada pembuat sampel eksplisit yang disediakan, ProbabilitySampler akan digunakan secara default. ProbabilitySampler akan menggunakan tarif 1/10000 secara default, yang berarti satu dari setiap 10000 permintaan akan dikirim ke Application Insights. Jika Anda ingin menentukan laju pengambilan contoh, lihat di bawah ini.

Untuk menentukan laju pengambilan sampel, pastikan Tracer menentukan pembuat sampel dengan laju pengambilan sampel antara 0,0 dan 1,0 inklusif. Laju pengambilan sampel 1,0 mewakili 100%, yang berarti semua permintaan Anda akan dikirim sebagai telemetri ke Application Insights.

tracer = Tracer(
    exporter=AzureExporter(
        instrumentation_key='00000000-0000-0000-0000-000000000000',
    ),
    sampler=ProbabilitySampler(1.0),
)

Pengambilan sampel laju tetap untuk log

Anda dapat mengonfigurasi pengambilan sampel laju tetap untuk AzureLogHandler dengan mengubah argumen opsional logging_sampling_rate. Jika tidak ada argumen yang disertakan, laju pengambilan sampel 1,0 akan digunakan. Laju pengambilan sampel 1,0 mewakili 100%, yang berarti semua permintaan Anda akan dikirim sebagai telemetri ke Application Insights.

handler = AzureLogHandler(
    instrumentation_key='00000000-0000-0000-0000-000000000000',
    logging_sampling_rate=0.5,
)

Mengonfigurasi pengambilan sampel laju tetap untuk halaman web dengan JavaScript

Halaman web berbasis JavaScript dapat dikonfigurasi untuk menggunakan Application Insights. Telemetri dikirim dari aplikasi klien yang berjalan di browser pengguna, dan halaman dapat di-hosting dari server mana pun.

Saat mengonfigurasi halaman web berbasis JavaScript untuk Application Insights, ubah cuplikan JavaScript yang Anda dapatkan dari portal Application Insights.

Tip

Di Aplikasi ASP.NET aplikasi yang menyertakan JavaScript, cuplikan biasanya terletak di _Layout.cshtml.

Sisipkan garis seperti samplingPercentage: 10, sebelum kunci instrumentasi:

<script>
    var appInsights = // ... 
    ({ 
      // Value must be 100/N where N is an integer.
      // Valid examples: 50, 25, 20, 10, 5, 1, 0.1, ...
      samplingPercentage: 10, 

      instrumentationKey: ...
    }); 

    window.appInsights = appInsights; 
    appInsights.trackPageView(); 
</script>

Catatan

Pada tanggal 31 Maret 2025, dukungan untuk penyerapan kunci instrumentasi akan berakhir. Penyerapan kunci instrumentasi akan terus berfungsi, tetapi kami tidak akan lagi memberikan pembaruan atau dukungan untuk fitur tersebut. Transisi ke string koneksi untuk memanfaatkan kemampuan baru.

Untuk persentase pengambilan sampel, pilih persentase yang mendekati 100/N di mana N adalah bilangan bulat. Saat ini pengambilan sampel tidak mendukung nilai lain.

Mengoordinasikan pengambilan sampel sisi server dan sisi klien

SDK JavaScript sisi klien berpartisipasi dalam pengambilan sampel laju tetap bersama dengan SDK sisi server. Halaman berinstrumen hanya akan mengirim telemetri sisi klien dari pengguna yang sama dengan SDK sisi server membuat keputusannya untuk disertakan dalam pengambilan sampel. Logika ini dirancang untuk menjaga integritas sesi pengguna di seluruh aplikasi sisi klien dan sisi server. Akibatnya, dari item telemetri tertentu di Application Insights, Anda dapat menemukan semua item telemetri lainnya untuk pengguna atau sesi ini, dan di Pencarian Anda dapat menavigasi antara tampilan dan permintaan halaman terkait.

Jika telemetri sisi server dan klien Anda tidak menampilkan sampel terkoordinasi:

  • Pastikan Anda mengaktifkan pengambilan sampel baik di server maupun klien.
  • Pastikan Anda menetapkan persentase pengambilan sampel yang sama di klien dan server.
  • Pastikan versi SDK adalah 2.0 atau di atasnya.

Pengambilan sampel penyerapan

Pengambilan sampel penyerapan beroperasi pada titik tempat telemetri dari server web, browser, dan perangkat Anda mencapai titik akhir layanan Application Insights. Meskipun tidak mengurangi lalu lintas telemetri yang dikirim dari aplikasi Anda, hal ini mengurangi jumlah yang diproses dan disimpan (dan dikenai biaya) oleh Application Insights.

Gunakan jenis pengambilan sampel ini jika aplikasi Anda sering melebihi kuota bulanannya dan Anda tidak memiliki opsi untuk menggunakan salah satu jenis pengambilan sampel berbasis SDK.

Tetapkan laju pengambilan sampel di halaman Penggunaan dan estimasi biaya:

From the application's Overview blade, click Settings, Quota, Samples, then select a sampling rate, and click Update.

Seperti jenis pengambilan sampel lainnya, algoritmanya mempertahankan item telemetri terkait. Misalnya, saat memeriksa telemetri di Penelusuran, Anda dapat menemukan permintaan terkait pengecualian tertentu. Jumlah metrik seperti laju permintaan dan laju pengecualian disimpan dengan benar.

Titik data yang dibuang dengan pengambilan sampel tidak tersedia di fitur Application Insights seperti Ekspor Berkelanjutan.

Pengambilan sampel penyerapan tidak beroperasi saat pengambilan sampel adaptif atau laju tetap sedang beroperasi. Pengambilan sampel adaptif diaktifkan secara default saat SDK ASP.NET atau SDK ASP.NET Core sedang digunakan, atau saat Application Insights diaktifkan di Azure App Service atau dengan menggunakan Status Monitor. Saat telemetri diterima oleh titik akhir layanan Application Insights, titik akhir tersebut akan memeriksa telemetri dan jika laju pengambilan sampel dilaporkan kurang dari 100% (yang menunjukkan bahwa telemetri sedang dibuat sampelnya) maka laju pengambilan sampel penyerapan yang ditetapkan diabaikan.

Peringatan

Nilai yang ditampilkan di petak portal menunjukkan nilai yang Anda tetapkan untuk pengambilan sampel penyerapan. Ini tidak mewakili laju pengambilan sampel aktual jika ada pengambilan sampel SDK (pengambilan sampel adaptif atau laju tetap) sedang beroperasi.

Kapan harus menggunakan pengambilan sampel

Secara umum, untuk sebagian besar aplikasi berukuran kecil dan sedang Anda tidak perlu melakukan pengambilan sampel. Informasi diagnostik yang paling berguna dan statistik paling akurat dapat diperoleh dengan mengumpulkan data tentang semua aktivitas pengguna Anda.

Keuntungan utama pengambilan sampel adalah:

  • Layanan Application Insights menghilangkan ("pembatasan") titik data saat aplikasi Anda mengirim tingkat telemetri dengan laju yang sangat tinggi dalam jarak waktu yang singkat. Pengambilan sampel mengurangi kemungkinan aplikasi Anda akan mengalami pembatasan.
  • Agar tetap dalam kuota titik data untuk tingkat harga Anda.
  • Untuk mengurangi lalu lintas jaringan dari kumpulan telemetri.

Jenis pengambilan sampel mana yang harus digunakan?

Gunakan pengambilan sampel penyerapan jika:

  • Anda sering menggunakan kuota telemetri bulanan.
  • Anda mendapatkan terlalu banyak telemetri dari browser web pengguna.
  • Anda menggunakan versi SDK yang tidak mendukung pengambilan sampel - misalnya versi ASP.NET lebih lama dari 2.

Gunakan pengambilan sampel laju tetap jika:

  • Anda ingin menyinkronkan pengambilan sampel antara klien dan server, sehingga saat menyelidiki peristiwa di Pencarian, Anda dapat menavigasi antara peristiwa terkait pada klien dan server, seperti tampilan halaman dan permintaan HTTP.
  • Anda yakin dengan persentase pengambilan sampel yang sesuai untuk aplikasi Anda. Seharusnya cukup tinggi untuk mendapatkan metrik yang akurat, tetapi di bawah tarif yang melebihi kuota harga Anda dan batas pembatasan.

Gunakan pengambilan sampel adaptif:

Jika syarat untuk menggunakan bentuk pengambilan sampel lainnya tidak berlaku, sebaiknya lakukan pengambilan sampel adaptif. Pengaturan ini diaktifkan secara default dalam SDK ASP.NET/ASP.NET Core. Ini tidak akan mengurangi lalu lintas sampai laju minimum tertentu tercapai, oleh karena itu situs yang jarang digunakan mungkin tidak akan diambil sampelnya sama sekali.

Mengetahui apakah pengambilan sampel sedang beroperasi

Untuk menemukan laju pengambilan sampel aktual, di mana pun penerapannya, gunakan Kueri analitik seperti ini:

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.

Penting

Application Insights tidak mengambil sampel sesi, metrik (termasuk metrik kustom), atau jenis telemetri penghitung kinerja dalam salah satu teknik pengambilan sampel. Jenis-jenis ini selalu dikecualikan dari pengambilan sampel karena pengurangan presisi bisa saja sangat tidak diinginkan untuk jenis telemetri ini.

Cara kerja pengambilan sampel

Algoritma pengambilan sampel menentukan item telemetri mana yang harus dihilangkan atau disimpan. Ini berlaku untuk pengambilan sampel yang dilakukan oleh SDK atau dalam layanan Application Insights. Keputusan pengambilan sampel didasarkan pada beberapa aturan yang bertujuan untuk menjaga semua titik data yang saling terkait secara utuh, mempertahankan pengalaman diagnostik dalam Application Insights yang dapat ditindaklanjuti dan diandalkan bahkan dengan kumpulan data yang berkurang. Misalnya, jika aplikasi Anda memiliki permintaan gagal yang disertakan dalam sampel, item telemetri tambahan (seperti pengecualian dan jejak yang dicatat untuk permintaan ini) akan disimpan. Pengambilan sampel akan menyimpan atau menghilangkannya semua bersama-sama. Akibatnya, saat Anda melihat detail permintaan di Application Insights, Anda dapat melihat permintaan bersama dengan item telemetri terkait kapan saja.

Keputusan pengambilan sampel didasarkan pada ID operasi permintaan, yang artinya semua item telemetri milik operasi tertentu disimpan atau dihilangkan. Untuk item telemetri yang tidak memiliki set ID operasi (seperti item telemetri yang dilaporkan dari thread asinkron tanpa konteks HTTP) pengambilan sampel hanya mengambil persentase item telemetri dari setiap jenis.

Saat mengembalikan telemetri kepada Anda, layanan Application Insights menyesuaikan metrik dengan persentase pengambilan sampel yang sama yang digunakan pada saat pengumpulan, agar mengimbangi titik data yang hilang. Oleh karena itu, saat melihat telemetri dalam Application Insights, pengguna melihat perkiraan yang benar secara statistik yang sangat mendekati bilangan nyata.

Akurasi perkiraan sangat tergantung pada persentase pengambilan sampel yang dikonfigurasi. Selain itu, akurasi meningkat untuk aplikasi yang menangani sejumlah besar permintaan yang umumnya serupa dari banyak pengguna. Di sisi lain, untuk aplikasi yang tidak berfungsi dengan beban yang signifikan, pengambilan sampel tidak diperlukan karena aplikasi ini biasanya dapat mengirim semua telemetri saat tetap dalam kuota, tanpa menyebabkan kehilangan data dari pembatasan.

Akurasi kueri log dan tingkat sampel yang tinggi

Saat aplikasi ditingkatkan skalanya, aplikasi mungkin memproses lusinan, ratusan, atau ribuan item pekerjaan per detik. Mencatat peristiwa untuk masing-masing dari item pekerjaan memerlukan sumber daya atau biaya yang banyak. Application Insights menggunakan pengambilan sampel untuk beradaptasi dengan pertumbuhan volume telemetri secara fleksibel dan untuk mengontrol penggunaan sumber daya dan biaya.

Namun, pengambilan sampel dapat mempengaruhi akurasi hasil kueri yang diperoleh dari telemetri sampel. Misalnya, 25 pengguna berbeda membuat satu permintaan ke aplikasi web dan masing-masing permintaan tersebut menghasilkan 1 Catatan telemetri permintaan, 1 Catatan telemetri dependensi, 1 Catatan telemetri pesan jejak, dan 1 Catatan telemetri pengecualian. Hal ini menambahkan hingga total 100 catatan telemetri mentah yang ditampilkan pada gambar di bawah.

Sample rate at 0 percent and the itemCount is 1Laju Sampel 0% 25 Permintaan (itemCount=1) 25 Dependensi (itemCount=1) 25 Jejak (itemCount=1) 25 Pengecualian (itemCount=1)

Jika SDK Application Insights tidak perlu membatasi telemetri, aplikasi akan mengirimkan 100 catatan ke titik akhir penyerapan. Ini setara dengan laju sampel 0%. SDK akan mengemas semua catatan telemetri ke dalam payload JSON dan mengirimkannya ke layanan penyerapan. Setiap satu dari 100 catatan telemetri tersebut akan memiliki bidang itemCount yang diatur ke 1, karena kita tidak perlu membuang catatan apa pun untuk pengambilan sampel dan setiap catatan telemetri tunggal mewakili jumlah 1. Menjalankan kueri sum(itemCount) untuk telemetri permintaan akan mengembalikan 25, yang cocok dengan 25 permintaan dan merupakan 25% dari 100 catatan telemetri yang dihasilkan oleh aplikasi web.

Saat SDK melakukan pembatasan telemetri melalui pengambilan sampel, itemCount kurang mewakili jumlah catatan telemetri yang disimpan. Misalnya, jika keputusan dibuat untuk menyimpan 1% dari semua catatan dan laju sampel adalah 99% untuk 100 catatan telemetri dalam contoh di atas. Hal ini berarti hanya satu catatan dari semua item yang akan disimpan. Untuk menggambarkannya, jika SDK memilih salah satu catatan telemetri permintaan, SDK harus menghapus semua 99 catatan lainnya (24 permintaan, 25 dependensi, 25 jejak, 25 pengecualian). Meskipun hanya 1 catatan yang disimpan, SDK mengatur bidang itemCount untuk permintaan sebagai 100. Ini karena satu catatan yang diserap mewakili 100 total catatan telemetri yang dijalankan dalam aplikasi web.

Sample rate at 99 percent and the itemCount is 100 visualizedSample rate at 99 percent and the itemCount is 100 in percentagesLaju Sampel 99% 1 Permintaan (itemCount=100) 0 Dependensi 0 Jejak 0 Pengecualian

Satu peringatan untuk contoh ini adalah bahwa sampel SDK App Insights berdasarkan ID operasi, yang berarti bahwa operation_Id dipilih dan semua telemetri untuk operasi tunggal tersebut diserap dan disimpan (bukan catatan individual acak). Hal ini juga dapat mengakibatkan fluktuasi berdasarkan jumlah telemetri operasi aplikasi. Jika satu operasi memiliki jumlah catatan yang lebih tinggi dan operasi tersebut diambil sampelnya, operasi akan muncul sebagai lonjakan dalam laju sampel yang disesuaikan. Misalnya jika satu operasi menghasilkan 4000 catatan telemetri dan operasi lainnya hanya menghasilkan 1 sampai 3 catatan telemetri. Pengambilan sampel berdasarkan operation_Id dilakukan untuk mengaktifkan tampilan menyeluruh untuk operasi yang gagal. Semua telemetri untuk operasi dapat ditinjau, termasuk detail pengecualian, untuk mendiagnosis kesalahan kode aplikasi secara tepat.

Peringatan

Integritas tampilan end-to-end operasi terdistribusi dapat terpengaruh jika ada aplikasi dalam operasi terdistribusi yang telah mengaktifkan pengambilan sampel. Keputusan pengambilan sampel yang berbeda dibuat oleh setiap aplikasi dalam operasi terdistribusi, sehingga telemetri untuk satu ID Operasi dapat disimpan oleh satu aplikasi sementara aplikasi lain dapat memutuskan untuk tidak mengambil sampel telemetri untuk ID Operasi yang sama.

Karena laju pengambilan sampel meningkat, akurasi kueri berbasis log berkurang dan biasanya meningkat. Hal ini hanya memengaruhi akurasi kueri berbasis log saat pengambilan sampel diaktifkan dan laju sampel berada dalam kisaran yang lebih tinggi (~ 60%). Dampaknya bervariasi berdasarkan jenis telemetri, jumlah telemetri per operasi serta faktor lainnya.

Untuk mengatasi masalah yang disebabkan oleh pengambilan sampel metrik yang telah digabungkan sebelumnya digunakan di SDK. Detail tambahan tentang metrik ini, berbasis log dan digabungkan sebelumnya, dapat dirujuk di Azure Application Insights - Azure Monitor | Microsoft Docs. Properti yang relevan dari data yang dicatat diidentifikasi dan statistik diekstrak sebelum pengambilan sampel terjadi. Untuk menghindari masalah sumber daya dan biaya, metrik digabungkan. Data agregat yang dihasilkan diwakili oleh hanya beberapa item telemetri metrik per menit, bukan ribuan item telemetri peristiwa yang berpotensi. Metrik ini menghitung 25 permintaan dari contoh dan mengirim metrik ke akun MDM yang melaporkan “aplikasi web ini memproses 25 permintaan”, tetapi catatan telemetri permintaan yang dikirim akan memiliki itemCount dari 100. Metrik yang telah digabungkan sebelumnya ini melaporkan jumlah yang benar dan dapat diandalkan saat pengambilan sampel memengaruhi hasil kueri berbasis log. Metrik ini dapat dilihat di panel Metrik dari portal Application Insights.

Tanya jawab umum

Apa perilaku pengambilan sampel default yang ada dalam SDK ASP.NET dan ASP.NET Core?

  • Jika Anda menggunakan salah satu versi terbaru dari SDK di atas, Pengambilan Sampel Adaptif akan diaktifkan secara default dengan lima item telemetri per detik. Ada dua node AdaptiveSamplingTelemetryProcessor yang ditambahkan secara default, dan salah satunya menyertakan jenis Event dalam pengambilan sampel, sementara yang lain mengecualikan jenis Event dari pengambilan sampel. Konfigurasi ini menandakan bahwa SDK akan mencoba membatasi item telemetri pada lima item telemetri dari jenis Event, dan lima item telemetri dari semua jenis lain yang digabungkan, sehingga memastikan Events diambil sampelnya secara terpisah dari jenis telemetri lainnya. Peristiwa biasanya digunakan untuk telemetri bisnis, dan kemungkinan besar tidak boleh dipengaruhi oleh volume telemetri diagnostik.

    Berikut ini menampilkan file ApplicationInsights.config default yang dibuat. Di ASP.NET Core, perilaku default yang sama diaktifkan dalam kode. Gunakan contoh di bagian sebelumnya pada halaman ini untuk mengubah perilaku default ini.

    <TelemetryProcessors>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
            <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
            <ExcludedTypes>Event</ExcludedTypes>
        </Add>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
            <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
            <IncludedTypes>Event</IncludedTypes>
        </Add>
    </TelemetryProcessors>
    

Bisakah telemetri diambil sampel lebih dari sekali?

  • Nomor. SamplingTelemetryProcessors mengabaikan item dari pertimbangan pengambilan sampel jika item ini sudah diambil sampelnya. Hal yang sama berlaku untuk pengambilan sampel penyerapan juga, yang tidak akan menerapkan pengambilan sampel untuk item yang sudah diambil sampelnya dalam SDK-nya sendiri.

Mengapa tidak mengambil sampel "mengumpulkan X persen dari setiap jenis telemetri" sederhana?

  • Meskipun pendekatan pengambilan sampel ini akan memberikan tingkat presisi yang tinggi dalam perkiraan metrik, ini akan menghentikan kemampuan menghubungkan data diagnostik setiap pengguna, sesi, dan permintaan, yang sangat penting untuk diagnostik. Oleh karena itu, pengambilan sampel bekerja lebih baik dengan kebijakan seperti "mengumpulkan semua item telemetri untuk X persen pengguna aplikasi", atau "mengumpulkan semua telemetri untuk X persen permintaan aplikasi". Untuk item telemetri yang tidak terkait dengan permintaan (seperti pemrosesan asinkron latar belakang), fallback-nya adalah untuk "mengumpulkan X persen semua item untuk setiap jenis telemetri."

Apakah persentase pengambilan sampel bisa berubah dari waktu ke waktu?

  • Ya, pengambilan sampel adaptif mengubah persentase pengambilan sampel secara bertahap, berdasarkan volume telemetri yang saat ini diamati.

Jika saya menggunakan pengambilan sampel laju tetap, bagaimana cara mengetahui persentase pengambilan sampel mana yang akan berfungsi paling baik untuk aplikasi saya?

  • Salah satu caranya adalah dengan mulai melakukan pengambilan sampel adaptif, mencari tahu laju apa yang diselesaikannya (lihat pertanyaan di atas), lalu beralih ke pengambilan sampel laju tetap menggunakan laju itu.

    Jika tidak, Anda harus menebak. Analisis penggunaan telemetri Anda saat ini di Application Insights, amati setiap pembatasan yang terjadi, dan perkirakan volume telemetri yang dikumpulkan. Ketiga input ini, bersama dengan tingkat harga yang Anda pilih, menyarankan seberapa banyak Anda mungkin ingin mengurangi volume telemetri yang dikumpulkan. Akan tetapi, peningkatan jumlah pengguna Anda atau beberapa pergeseran lain dalam volume telemetri mungkin membuat perkiraan Anda tidak valid.

Apa yang terjadi jika saya mengonfigurasi persentase pengambilan sampel menjadi terlalu rendah?

  • Persentase pengambilan sampel yang terlalu rendah menyebabkan pengambilan sampel yang terlalu agresif, dan mengurangi akurasi perkiraan saat Application Insights berusaha mengimbangi visualisasi data untuk pengurangan volume data. Selain itu, pengalaman diagnostik Anda mungkin terkena dampak negatif, karena beberapa permintaan yang jarang gagal atau lambat dapat diambil sampelnya.

Apa yang terjadi jika saya mengonfigurasi persentase pengambilan sampel menjadi terlalu tinggi?

  • Mengonfigurasi persentase pengambilan sampel yang terlalu tinggi (tidak cukup agresif) mengakibatkan pengurangan yang tidak mencukupi pada volume telemetri yang dikumpulkan. Anda mungkin tetap mengalami kehilangan data telemetri terkait dengan pembatasan, dan biaya penggunaan Application Insights mungkin lebih tinggi dari yang direncanakan karena biaya kelebihan.

Di platform apa saya dapat menggunakan pengambilan sampel?

  • Pengambilan sampel penyerapan dapat berlaku secara otomatis untuk setiap telemetri di atas volume tertentu, jika SDK tidak melakukan pengambilan sampel. Konfigurasi ini akan berfungsi, misalnya jika Anda menggunakan versi SDK ASP.NET atau Java SDK yang lebih lama.
  • Jika Anda menggunakan SDK ASP.NET Core atau ASP.NET saat ini (di-hosting di Azure ataupun di server Anda sendiri), Anda mendapatkan pengambilan sampel adaptif secara default, tetapi dapat beralih ke laju tetap seperti yang dijelaskan di atas. Dengan pengambilan sampel laju tetap, SDK browser secara otomatis disinkronkan ke sampel peristiwa terkait.
  • Jika Anda menggunakan agen Java saat ini, Anda dapat mengonfigurasi applicationinsights.json (untuk Java SDK, konfigurasi ApplicationInsights.xml) guna mengaktifkan pengambilan sampel laju tetap. Pengambilan sampel dinonaktifkan secara default. Dengan pengambilan sampel laju tetap, SDK browser akan disinkronkan otomatis ke sampel peristiwa terkait.

Ada peristiwa langka tertentu yang selalu ingin saya lihat. Bagaimana saya bisa melewati modul pengambilan sampel?

  • Cara terbaik untuk mencapai ini adalah menulis TelemetryInitializer kustom, yang menetapkan SamplingPercentage ke 100 pada item telemetri yang ingin Anda simpan, seperti yang ditunjukkan di bawah ini. Karena inisialisasi dijamin akan dijalankan sebelum prosesor telemetri (termasuk pengambilan sampel), ini memastikan bahwa semua teknik pengambilan sampel akan mengabaikan item ini dari pertimbangan pengambilan sampel mana pun. Inisialisasi telemetri kustom tersedia dalam SDK ASP.NET, SDK ASP.NET Core, SDK JavaScript, dan SDK Java. Misalnya, Anda dapat mengonfigurasi inisialisasi telemetri menggunakan SDK ASP.NET:

    public class MyTelemetryInitializer : ITelemetryInitializer
    {
        public void Initialize(ITelemetry telemetry)
        {
            if(somecondition)
            {
                ((ISupportSampling)telemetry).SamplingPercentage = 100;
            }
        }
    }
    

Versi SDK yang lebih lama

Pengambilan sampel adaptif tersedia untuk Application Insights SDK untuk ASP.NET v2.0.0-beta3 dan yang lebih baru, SDK Microsoft.ApplicationInsights.AspNetCore v2.2.0-beta1 dan yang lebih baru, dan diaktifkan secara default.

Pengambilan sampel laju tetap adalah fitur SDK dalam versi ASP.NET dari 2.0.0 dan SDK Java versi 2.0.1 dan seterusnya.

Sebelum v2.5.0-beta2 dari SDK ASP.NET, dan v2.2.0-beta3 dari SDK ASP.NET Core, keputusan pengambilan sampel didasarkan pada hash ID pengguna untuk aplikasi yang menentukan "pengguna" (yaitu, sebagian besar aplikasi web umum). Untuk jenis aplikasi yang tidak menentukan pengguna (seperti layanan web), keputusan pengambilan sampel didasarkan pada ID operasi permintaan. Versi terbaru SDK ASP.NET dan ASP.NET Core menggunakan ID operasi untuk keputusan pengambilan sampel.

Langkah berikutnya