Application Insights’ta örnekleme

Örnekleme, Azure Application Analizler. Uygulama verilerini istatistiksel olarak doğru bir şekilde analiz ederken telemetri trafiğini, veri maliyetlerini ve depolama maliyetlerini azaltmanın önerilen yolu bu şekildedir. Örnekleme ayrıca Telemetrinizin uygulama Analizler azaltmalarını önlemenize yardımcı olur. Örnekleme filtresi ilgili öğeleri seçer, böylece tanılama araştırmalarını yaparken öğeler arasında gezinebilirsiniz.

Ölçüm sayıları portalda sunulduklarında örneklemeyi dikkate almak için yeniden normalleştirilmiş olur. Bunu yapmak, istatistikler üzerindeki etkiyi en aza indirger.

Kısa özet

  • Üç farklı örnekleme türü vardır: uyarlamalı örnekleme, sabit oranlı örnekleme ve veri alımı örneklemesi.
  • Uyarlamalı örnekleme, Application Analizler ASP.NET ve ASP.NET Core Geliştirme Setlerinin (SDK) en son sürümlerinde varsayılan olarak etkindir. Ayrıca, tarafından Azure İşlevleri.
  • Sabit hızlı örnekleme, ASP.NET, ASP.NET Core, Java (hem aracı hem de SDK) ve Python için Application Analizler SDK'larının son sürümlerinde kullanılabilir.
  • Java'da örnekleme geçersiz kılmaları kullanılabilir ve seçilen bağımlılıklara, isteklere ve durum denetimlere farklı örnekleme oranları uygulamanın gerektir olduğu durumlara faydalıdır. Örneğin tüm önemli hatalar %100'de tutulurken bazı gürültülü bağımlılıkları ayarlamak için örnekleme geçersiz kılmalarını kullanın. Bu, telemetriniz üzerinde daha ince bir denetim düzeyine sahip olan sabit örnekleme biçimidir.
  • Veri alımı örneklemesi, Application Analizler uç noktası üzerinde çalışır. Yalnızca başka örneklemenin geçerli olduğu durumlara uygulanır. SDK telemetri örneğinizi örneklese, alma örnekleme devre dışı bırakılır.
  • Web uygulamaları için, özel olaylar günlüğe kaydedilir ve bir dizi olay birlikte tutulsa veya atılırsa, olayların aynı değere sahip olması OperationId gerekir.
  • Analytics sorguları yazarsanız örneklemeyi dikkate alasınız. Özellikle, kayıtları saymak yerine summarize sum(itemCount) kullanabilirsiniz.
  • Performans ölçümleri ve özel ölçümler de dahil olmak üzere bazı telemetri türleri, örneklemenin etkin olup olmadığına bakılmaksızın her zaman tutulur.

Aşağıdaki tabloda her SDK ve uygulama türü için kullanılabilir örnekleme türleri özetlenmiştir:

Uygulama Analizler SDK'sı Uyarlamalı örnekleme desteği Desteklenen sabit oranlı örnekleme Veri alımı örneklemesi desteklandı
ASP.NET Evet (varsayılan olarak açıktır) Evet Yalnızca başka örneklemenin etkili olup olmadığını
ASP.NET Core Evet (varsayılan olarak açıktır) Evet Yalnızca başka örneklemenin etkili olup olmadığını
Azure İşlevleri Evet (varsayılan olarak açıktır) No Yalnızca başka örneklemenin etkili olup olmadığını
Java Hayır Evet Yalnızca başka örneklemenin etkili olup olmadığını
Node.JS Hayır Evet Yalnızca başka örneklemenin etkili olup olmadığını
Python Hayır Evet Yalnızca başka örneklemenin etkili olup olmadığını
Diğer tüm Hayır Hayır Evet

Not

Bu sayfanın çoğundaki bilgiler, Uygulama Uygulama Ve SDK'lerinin geçerli Analizler geçerlidir. SDK'ların eski sürümleri hakkında bilgi için aşağıdaki bölüme bakın.

Örnekleme türleri

Üç farklı örnekleme yöntemi vardır:

  • Uyarlamalı örnekleme, sdk'dan ASP.NET/ASP.NET Core uygulamanıza ve Azure İşlevleri. Bu, ASP.NET veya ASP.NET Core SDK'sı kullanılır. Uyarlamalı örnekleme şu anda yalnızca ASP.NET tarafı telemetri verileri için ve Azure İşlevleri.

  • Sabit hızlı örnekleme, hem ASP.NET hem ASP.NET Core Java sunucunuzdan ve kullanıcı tarayıcılarından gönderilen telemetri hacmini azaltır. Hızı siz ayarlayın. İstemci ve sunucu örneklemelerini eşitler, böylece Arama'da ilgili sayfa görünümleri ve istekler arasında gezinebilirsiniz.

  • Veri alımı örneklemesi Application Analizler uç noktasıyla gerçekleşir. Uygulamanıza gelen telemetrilerden bazılarını sizin ayarlanmış örnekleme hızıyla atar. Uygulamanıza gönderilen telemetri trafiğini azaltmaz, ancak aylık kotanızı tutmanıza yardımcı olur. Veri alımı örneklemenin temel avantajı, örnekleme oranını, uygulamanızı yeniden vermeden ayarlay biliyor olmaktır. Alma örneklemesi tüm sunucular ve istemciler için aynı şekilde çalışır, ancak diğer örnekleme türleri çalışma sırasında geçerli olmaz.

Önemli

Bir telemetri türü için uyarlamalı veya sabit oranlı örnekleme yöntemleri etkinleştirilirse, bu telemetri için alma örneklemesi devre dışı bırakılır. Ancak SDK düzeyinde örneklemenin dışında bırakılan telemetri türleri, portalda ayarlanan hız üzerinden veri alımı örneklemeye tabi tutulacak.

Uyarlamalı örnekleme

Uyarlamalı örnekleme, web sunucusu uygulamanıza gönderilen telemetri hacmini uygulama uç noktasına Analizler etkiler.

İpucu

Uyarlamalı örnekleme, ASP.NET SDK'sı veya ASP.NET Core SDK'sı kullanılırken varsayılan olarak etkinleştirilir ve Azure İşlevleri.

Birim, belirtilen en yüksek trafik oranı içinde tutmak için otomatik olarak ayarlanır ve ayarıyla MaxTelemetryItemsPerSecond denetlenr. Uygulama hata ayıklama veya düşük kullanım nedeniyle gibi düşük miktarda telemetri üretirse, birim altında olduğu sürece öğeler örnekleme işlemcisi tarafından bırakılamaz. MaxTelemetryItemsPerSecond Telemetri hacmi arttıkça örnekleme hızı, hedef bireyi elde etmek için ayarlanır. Ayarlama düzenli aralıklarla yeniden hesaplanır ve giden iletim oranının hareketli ortalamasını temel alan bir ayardır.

Hedef bire ulaşmak için oluşturulan telemetrilerden bazıları atılır. Ancak diğer örnekleme türleri gibi algoritma da ilgili telemetri öğelerini korur. Örneğin, Ara'da telemetri incelerken, belirli bir özel durumla ilgili isteği bulabilirsiniz.

İstek oranı ve özel durum oranı gibi ölçüm sayıları, örnekleme oranını dengelemek için ayarlanır ve ölçüm Gezgini'nde yaklaşık doğru değerleri gösterir.

Uygulama uygulamaları için uyarlamalı ASP.NET yapılandırma

içinde, ApplicationInsights.config düğümde birkaç parametre AdaptiveSamplingTelemetryProcessor ayarlayabilirsiniz. Gösterilen şekiller varsayılan değerlerdir:

  • <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>

    Uyarlamalı algoritmanın her sunucu ana bilgisayar üzerinde toplamayı hedeflemektedir mantıksal işlemlerin hedef oranı. Web uygulaması birçok konakta çalıştırılacaksa, Application Analizler portalında hedef trafik hızınız içinde kalacak şekilde bu Analizler düşürebilirsiniz.

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

    Geçerli telemetri oranının yeniden değerlendirilme aralığı. Değerlendirme, hareketli ortalama olarak gerçekleştirilir. Telemetri ani ani değişimlere karşı sorumlu ise bu aralığı kısaltmak iyi olabilir.

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

    Örnekleme yüzdesi değeri değiştikten sonra daha az veri yakalamak için örnekleme yüzdesini ne kadar kısa sürede düşürmemiz gerekiyor?

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

    Örnekleme yüzdesi değeri değiştikten sonra daha fazla veri yakalamak için örnekleme yüzdesini ne kadar süre sonra artırmamız gerekiyor?

  • <MinSamplingPercentage>0.1</MinSamplingPercentage>

    Örnekleme yüzdesi değişirken ayarlamamız gereken minimum değer nedir?

  • <MaxSamplingPercentage>100.0</MaxSamplingPercentage>

    Örnekleme yüzdesi değişirken ayarlamamız gereken maksimum değer nedir?

  • <MovingAverageRatio>0.25</MovingAverageRatio>

    Bu, hareketli ortalamanın hesaplanmasında en son değere atanacak ağırlığı belirtir. 1'e eşit veya 1'den küçük bir değer kullanın. Daha küçük değerler algoritmanın ani değişikliklere daha az tepki verir.

  • <InitialSamplingPercentage>100</InitialSamplingPercentage>

    Uygulama yeni başlatıldında örnek için telemetri miktarı. Hata ayıklarken bu değeri azaltmayın.

  • <ExcludedTypes>Trace;Exception</ExcludedTypes>

    Örneklemeye tabi olmak istemeyebilirsiniz türlerin noktalı virgülle ayrılmış listesi. Tanınan türler: Dependency , , , , , EventExceptionPageViewRequestTrace . Belirtilen türlerin tüm telemetrisi iletiliyor; Belirtilmemiş türler örnek olarak alınacak.

  • <IncludedTypes>Request;Dependency</IncludedTypes>

    Örneklemeye tabi olmak istediğiniz türlerin noktalı virgülle ayrılmış listesi. Tanınan türler: Dependency , , , , , EventExceptionPageViewRequestTrace . Belirtilen türler örnek olarak alınacak; diğer türlerin tüm telemetri verileri her zaman iletecek.

Uyarlamalı örneklemeyi devre dışı kaldırmak için düğümlerini 'den ApplicationInsights.config kaldırın.

Alternatif: Kodda uyarlamalı örneklemeyi yapılandırma

Dosyada örnekleme parametresini ayarlamak .config yerine program aracılığıyla bu değerleri ayarlayabilirsiniz.

  1. Dosyadan AdaptiveSamplingTelemetryProcessor tüm düğümleri .config kaldırın.

  2. Uyarlamalı örneklemeyi yapılandırmak için aşağıdaki kod parçacığını kullanın:

    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();
    

    (Telemetri işlemcileri hakkında bilgi.)

Ayrıca, her telemetri türü için örnekleme oranını ayrı ayrı ayarlayabilir veya belirli türlerin hiç örneklemeden hariç tutularak da dışarıda tutularak:

// 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");

Uygulama uygulamaları için uyarlamalı ASP.NET Core yapılandırma

Uygulama ApplicationInsights.config yapılandırmaları ASP.NET Core bu nedenle tüm yapılandırmalar kod aracılığıyla yapılır. Uyarlamalı örnekleme tüm uygulama uygulamaları için varsayılan ASP.NET Core etkindir. Örnekleme davranışını devre dışı bırakabilirsiniz veya özelleştirebilirsiniz.

Uyarlamalı örneklemeyi kapatma

Dosyanın içinde kullanılarak yönteminde Application Analizler hizmeti ekleme sırasında varsayılan örnekleme ConfigureServices özelliği ApplicationInsightsServiceOptions devre dışı Startup.cs bırakılabilir:

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

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

    //...
}

Yukarıdaki kod uyarlamalı örneklemeyi devre dışı bırakacak. Daha fazla özelleştirme seçeneğiyle örnekleme eklemek için aşağıdaki adımları izleyin.

Örnekleme ayarlarını yapılandırma

Örnekleme davranışını özelleştirmek için TelemetryProcessorChainBuilder aşağıda gösterildiği gibi uzantısı yöntemlerini kullanın.

Önemli

Örneklemeyi yapılandırmak için bu yöntemi kullanırsanız, çağrılırken özelliğini aiOptions.EnableAdaptiveSampling olarak false ayarlamayı AddApplicationInsightsTelemetry() unutmayın. Bu değişikliği yaptıktan sonra, uyarlamalı örneklemeyi özelleştirmeleriniz yerinde yeniden etkinleştirmek için aşağıdaki kod bloğundaki yönergeleri tam olarak izlemeniz gerekir. Bunun yapilamaması fazla veri alımına neden olabilir. Her zaman örnekleme ayarlarını değiştirerek test edin ve maliyetlerinizi denetlemeye yardımcı olmak için uygun bir günlük veri sınırı ayarlayın.

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();

    // ...
}

Azure İşlevleri için uyarlamalı örneklemeyi yapılandırma

Bu sayfada yer alan yönergeleri izleyerek Azure İşlevleri'da çalışan uygulamalar için uyarlamalı örneklemeyi Azure İşlevleri.

Sabit oranlı örnekleme

Sabit hızlı örnekleme, web sunucunuzdan ve web tarayıcılarından gönderilen trafiği azaltır. Uyarlamalı örneklemeden farklı olarak, telemetri verileri sizin karar verdirerek sabit bir oranda azaltır. Sabit hızlı örnekleme ASP.NET, ASP.NET Core, Java ve Python uygulamalarında kullanılabilir.

Diğer örnekleme teknikleri gibi bu da ilgili öğeleri korur. Ayrıca, istemci ve sunucu örneklemesini, ilgili öğelerin tutularak eşitler. Örneğin Arama'da bir sayfa görünümüne bakarak ilgili sunucu isteklerini bulabilirsiniz.

Bu Ölçüm Gezgini, istek ve özel durum sayıları gibi hızlar, örnekleme oranını telafi etmek için bir faktörle çarpılır ve bu da yaklaşık doğru olur.

ASP.NET uygulamaları için sabit ASP.NET yapılandırma

  1. Uyarlamalı örneklemeyidevre dışı bırakma: içinde düğümü kaldırın veya açıklamaya AdaptiveSamplingTelemetryProcessor alın.

    <TelemetryProcessors>
        <!-- Disabled adaptive sampling:
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
            <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
        </Add>
        -->
    
  2. Sabit hızlı örnekleme modülünü etkinleştirin. Bu kod parçacığını dosyasına ApplicationInsights.config ekleyin:

    <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>
    

    Alternatif olarak, dosyada örnekleme parametresini ayarlamak yerine program ApplicationInsights.config aracılığıyla şu değerleri ayarlayabilirsiniz:

    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();
    

    (Telemetri işlemcileri hakkında bilgi.)

ASP.NET Core uygulamaları için sabit ASP.NET Core yapılandırma

  1. Uyarlamalı örneklemeyidevre dışı bırakma: yönteminde kullanılarak değişiklikler ApplicationInsightsServiceOptions yapabilirsiniz:

    public void ConfigureServices(IServiceCollection services)
    {
        // ...
    
        var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
        aiOptions.EnableAdaptiveSampling = false;
        services.AddApplicationInsightsTelemetry(aiOptions);
    
        //...
    }
    
  2. Sabit hızlı örnekleme modülünü etkinleştirin. Aşağıdaki kod parçacığında Configure gösterildiği gibi yönteminde değişiklikler yapabilirsiniz:

    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();
    
        // ...
    }
    

Java uygulamaları için örnekleme geçersiz kılmalarını ve sabit oranlı örneklemeyi yapılandırma

Varsayılan olarak Java otomatik araçları ve SDK'da örnekleme etkinleştirilmez. Şu anda Java otomatik araçları, örnekleme geçersiz kılmaları ve sabit hız örnekleme desteğine sahip. Uyarlamalı örnekleme Java'da desteklenmiyor.

Java otomatik ölçümlerini yapılandırma

  • Geçersiz kılınan örnekleme oranını geçersiz kılan ve seçilen isteklere ve bağımlılıklara farklı örnekleme oranları uygulayan örnekleme geçersiz kılmalarını yapılandırmak için örnekleme geçersiz kılma kılavuzunu kullanın.
  • Tüm telemetri verileri için geçerli olan sabit hızlı samping'i yapılandırmak için sabit hız örnekleme kılavuzunu kullanın.

Java 2.x SDK'sını yapılandırma

  1. En son Application Analizler Java SDK'sı ile web Analizler indirin ve yapılandırabilirsiniz.

  2. Aşağıdaki kod parçacığını dosyaya ekleyerek sabit hızlı örnekleme modülünü etkinleştirin:

    <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. Etiketin içinde aşağıdaki etiketleri kullanarak belirli telemetri türlerini örneklemeye dahil veya hariç ProcessorFixedRateSamplingTelemetryProcessor tutabilirsiniz:

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

Örneklemeye dahil edilecek veya örneklemeden hariç tutulacak telemetri türleri: Dependency , , , , ve EventExceptionPageViewRequestTrace .

Not

Örnekleme yüzdesi için, N değerinin tamsayı olduğu 100/N'ye yakın bir yüzde seçin. Örnekleme şu anda diğer değerleri desteklemez.

OpenCensus Python uygulamaları için sabit hızlı örneklemeyi yapılandırma

Uygulamalarınızı en son OpenCensus ve Azure İzleyici ile takip.

Not

Sabit oranlı örnekleme, ölçümler için uygun olmayan bir örnekleme yöntemidir. Bu, özel ölçümlerin örneklemenin yapılandırılamayabilecekleri tek telemetri türleri olduğu anlamına gelir. Ölçümlerin aktaranı, izlemesi için tüm telemetri verileri gönderir.

İzleme için sabit oranlı örnekleme

Tracer yapılandırmanız kapsamında bir sampler belirtmelisiniz. Açık bir örnekleyici ProbabilitySampler sağlanıyorsa, varsayılan olarak kullanılır. , ProbabilitySampler varsayılan olarak 1/10000 oranını kullanır, yani her 10000 istekten biri Application Analizler. Örnekleme oranı belirtmek isterseniz aşağıya bakın.

Örnekleme oranını belirtmek için 0,0 ile 1,0 arasında bir örnekleme oranına sahip bir örnekleyici Tracer belirttiğinizden emin olun. Örnekleme oranı 1,0%100'leri temsil eder, yani tüm istekleriniz Application Analizler'a telemetri olarak gönderilir.

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

Günlükler için sabit oranlı örnekleme

İsteğe bağlı bağımsız değişken değiştirerek için AzureLogHandler sabit hız logging_sampling_rate örneklemesi yapılandırabiliyoruz. Bağımsız değişken sağlanmadı ise örnekleme oranı 1,0 olur. Örnekleme oranı 1,0%100'leri temsil eder, yani tüm istekleriniz Application Analizler'a telemetri olarak gönderilir.

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

JavaScript ile web sayfaları için sabit hızlı örnekleme yapılandırma

JavaScript tabanlı web sayfaları, Application Analizler. Telemetri, kullanıcının tarayıcısında çalışan istemci uygulamasından gönderilir ve sayfalar herhangi bir sunucudan barındırabilirsiniz.

Application Analizler için JavaScript tabanlı web sayfalarınızı yapılandırarakApplication Analizler portaldan edinebilirsiniz.

İpucu

JavaScript ASP.NET uygulamalar için kod parçacığı genellikle 'ye _Layout.cshtml gider.

Ölçüm anahtarına samplingPercentage: 10, benzer bir satır eklersiniz:

<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>

Örnekleme yüzdesi için, N değerinin tamsayı olduğu 100/N'ye yakın bir yüzde seçin. Örnekleme şu anda diğer değerleri desteklemez.

Sunucu tarafı ve istemci tarafı örneklemeyi koordine ediyor

İstemci tarafı JavaScript SDK'sı, sunucu tarafı SDK'sı ile birlikte sabit oranlı örneklemeye de dahildir. Araçlı sayfalar yalnızca sunucu tarafı SDK'sı örneklemeye dahil etmek için karar aldığı kullanıcıdan istemci tarafı telemetrisi gönderir. Bu mantık, istemci ve sunucu tarafı uygulamalar genelinde kullanıcı oturumlarının bütünlüğünü korumak için tasarlanmıştır. Sonuç olarak, Application Analizler'daki belirli bir telemetri öğesinden bu kullanıcı veya oturum için diğer tüm telemetri öğelerini bulabilir ve Arama'da ilgili sayfa görünümleri ile istekler arasında gezinebilirsiniz.

İstemciniz ve sunucu tarafı telemetriniz eşgüdümli örnekleri gösterenin:

  • Hem sunucuda hem de istemcide örneklemeyi etkinleştirmiş olduğunu doğrulayın.
  • Hem istemcide hem de sunucuda aynı örnekleme yüzdesini ayar kontrol edin.
  • SDK sürümünün 2.0 veya üzeri olduğundan emin olun.

Veri alımı örneklemesi

Veri alımı örneklemesi web sunucunuzdan, tarayıcılardan ve cihazlardan gelen telemetrinin Uygulama Sunucusu hizmet uç noktasına ulaştığı Analizler çalışır. Uygulamanıza gönderilen telemetri trafiğini azaltmasa da, Application Analizler tarafından işlenen ve elde tutulan (ve ücretlenen) miktarı azaltır.

Bu örnekleme türünü, genellikle aylık kotasının üzerine gidiyorsa ve SDK tabanlı örnekleme türlerinden birini kullanma seçeneğiniz yoksa kullanın.

Kullanım ve tahmini maliyetler sayfasında örnekleme oranını ayarlayın:

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

Diğer örnekleme türleri gibi algoritma da ilgili telemetri öğelerini korur. Örneğin, Ara'da telemetri incelerken, belirli bir özel durumla ilgili isteği bulabilirsiniz. İstek oranı ve özel durum oranı gibi ölçüm sayıları doğru şekilde korunur.

Örnekleme tarafından atılan veri noktaları, Sürekli Dışarı Aktarma Analizler herhangi bir Application Analizler özelliğinde kullanılamaz.

Uyarlamalı veya sabit oranlı örnekleme çalışırken alma örneklemesi çalışmaz. Uyarlamalı örnekleme, ASP.NET SDK'sı veya ASP.NET Core SDK'sı kullanılırken ya da Application Analizler Azure App Service etkinleştirildiğinde veya Durum İzleyicisi. Application Analizler hizmet uç noktası tarafından telemetri alınarak telemetri incelendiğinde ve örnekleme oranının %100'den az olduğu bildiriliyorsa (bu durum telemetri örneklemenin örneklendiğinden emin olunması) ayarlandığı örnekleme hızı yoksayılır.

Uyarı

Portal kutucuğunun üzerinde gösterilen değer, alma örneklemesi için ayar istediğiniz değeri gösterir. Herhangi bir SDK örneklemesi (uyarlamalı veya sabit oranlı örnekleme) devam ediyorsa gerçek örnekleme oranını temsil etmez.

Örnekleme ne zaman kullanımlı?

Genel olarak, çoğu küçük ve orta boyutlu uygulama için örneklemeye ihtiyacınız yok. En yararlı tanılama bilgileri ve en doğru istatistikler, tüm kullanıcı etkinlikleriniz üzerinde veri toplayarak elde edilir.

Örneklemenin temel avantajları:

  • Uygulama Analizler hizmeti, kısa bir süre içinde çok yüksek telemetri verileri gönderdiğinde veri noktalarını ("kısıtlama") düşürmektedir. Örnekleme, uygulamanıza azaltmanın oluşma olasılığını azaltır.
  • Fiyatlandırma katmanınız için veri noktası kotasını tutmak için.
  • Telemetri koleksiyonundan gelen ağ trafiğini azaltmak için.

Hangi örnekleme türünü kullan gerekir?

Aşağıdakiler için veri alımı örneklemesi kullanın:

  • Genellikle aylık telemetri kotanızı kullanırsiniz.
  • Kullanıcılarının web tarayıcılarından çok fazla telemetri elde ediyor.
  • SDK'nın örneklemeyi desteklemeen bir sürümünü (örneğin, 2'den önceki ASP.NET sürümünü kullanıyorsanız.

Aşağıdakiler için sabit oranlı örnekleme kullanın:

  • İstemci ve sunucu arasında eşitlenmiş örnekleme istediğiniz için, Arama'dakiolayları araştırırken, istemci ve sunucu üzerinde sayfa görünümleri ve HTTP istekleri gibi ilgili olaylar arasında gezinebilirsiniz.
  • Uygulamanıza uygun örnekleme yüzdesine güvenebilirsiniz. Doğru ölçümleri elde etmek için yeterince yüksek, ancak fiyatlandırma kotanızı ve azaltma sınırlarını aşan oranın altında olması gerekir.

Uyarlamalı örneklemeyi kullanma:

Diğer örnekleme biçimlerini kullanma koşulları geçerli yoksa uyarlamalı örneklemeyi öneririz. Bu ayar, ASP.NET/ASP.NET Core SDK'da varsayılan olarak etkindir. Belirli bir minimum hıza ulaşıncaya kadar trafiği azaltmaz, bu nedenle düşük kullanımlı sitelerin örneklemesi büyük olasılıkla hiç olmayacaktır.

Örneklemenin çalışıp çalışmadığını öğrenme

Gerçek örnekleme oranını nerede uygulanmış olursa olsun bulmak için aşağıdaki gibi bir Analytics sorgusu kullanın:

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

Herhangi bir tür RetainedPercentage için 100'den küçük olduğunu görüyorsanız, bu telemetri türünün örneklemesi yapılıyor.

Önemli

Uygulama Analizler, örnekleme tekniklerinin herhangi birsinde oturum, ölçüm (özel ölçümler dahil) veya performans sayacı telemetri türleri oluşturmaz. Duyarlık azalması, bu telemetri türleri için yüksek oranda istenmeyen bir durum olarak bu türler her zaman örneklemenin dışında bırakılacaktır.

Örnekleme nasıl çalışır?

Örnekleme algoritması, hangi telemetri öğelerinin bırakılamayacak ve hangilerinin tutnacaklarını karar verir. Örneklemenin SDK tarafından mı yoksa Application Analizler hizmeti tarafından mı Analizler doğrudur. Örnekleme kararı, tüm ilişkili veri noktalarını bozulmadan korumayı ve uygulama veri kümeleriyle bile eyleme değiştirilebilir ve güvenilir Analizler bir tanılama deneyimini sürdürmeyi amaçlaan çeşitli kuralları temel alıyor. Örneğin, uygulamanıza bir örnekte bulunan başarısız bir istek varsa, ek telemetri öğeleri (bu istek için günlüğe kaydedilen özel durum ve izlemeler gibi) korunur. Örnekleme, bunların hepsini bir arada tutar veya birlikte tutar. Sonuç olarak, Application Analizler'da istek ayrıntılarına bakarak isteği her zaman ilişkili telemetri öğeleriyle birlikte göresiniz.

Örnekleme kararı, isteğin işlem kimliğini temel alarak, belirli bir işleme ait olan tüm telemetri öğelerinin korundu veya bırakıldı olduğu anlamına gelir. Bir işlem kimliği kümesi olmayan telemetri öğeleri için (http bağlamı olmayan zaman uyumsuz iş parçacıklarından bildirilen telemetri öğeleri gibi) örnekleme yalnızca her türün telemetri öğelerinin yüzdesini yakalar.

Application Analizler hizmeti, telemetri verilerini size geri sunarken, eksik veri noktalarını telafi etmek için ölçümleri toplama zamanında kullanılan örnekleme yüzdesine göre ayarlar. Bu nedenle, Application Analizler telemetri verilerine bakarak, kullanıcılar gerçek sayılara çok yakın olan istatistiksel olarak doğru tahminler görüyor.

Yaklaşık değerin doğruluğu büyük ölçüde yapılandırılmış örnekleme yüzdesine bağlıdır. Ayrıca, çok sayıda kullanıcıdan gelen büyük hacimli genel olarak benzer isteklerin iş kolu olan uygulamalar için doğruluk artar. Öte yandan, önemli bir yükle çalışmayan uygulamalar için örnekleme gerekmez çünkü bu uygulamalar genellikle kotanın içinde kalırken tüm telemetri verilerini gönderebilir ve azaltmadan veri kaybına neden olmaz.

Sık sorulan sorular

ASP.NET ve ASP.NET Core davranış nedir?

  • Yukarıdaki SDK'nın en son sürümlerinden birini kullanıyorsanız Uyarlamalı Örnekleme, saniye başına beş telemetri öğe ile varsayılan olarak etkindir. Varsayılan olarak eklenen iki düğüm vardır ve bunlardan biri örnekleme türünü, diğeri ise türü AdaptiveSamplingTelemetryProcessorEventEvent örneklemenin dışında tut. Bu yapılandırma, SDK'nın telemetri öğelerini türlerden beş telemetri öğeleriyle ve diğer tüm türlerin beş telemetri öğeleriyle sınırlamayı deneyerek diğer telemetri türlerinden ayrı olarak örneklemenin sağlanmış olmasını sağlama anlamına EventEvents gelir. Olaylar genellikle iş telemetrisi için kullanılır ve büyük olasılıkla tanılama telemetri hacimlerinden etkilenmeyecektir.

    Aşağıda, oluşturulan varsayılan ApplicationInsights.config dosya gösterir. Bu ASP.NET Core, aynı varsayılan davranış kodda etkindir. Bu varsayılan davranışı değiştirmek için bu sayfanın önceki bölümündeki örnekleri kullanın.

    <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>
    

Telemetri birden çok kez örnek olabilir mi?

  • Hayır. ÖrneklemeTelemetryProcessors, öğe zaten örnekli ise örnekleme değerlendirmelerinden öğeleri yoksayar. Aynı durum, alma örneklemesi için de geçerlidir. Bu durum, daha önce SDK'da örnek alınan öğelere örnekleme uygulamaz.

Neden basit bir "her telemetri türünün X yüzdesini topla" örneklemesi yapmak mümkün değildir?

  • Bu örnekleme yaklaşımı ölçüm tahminleri için yüksek düzeyde duyarlık sağlasa da, tanılama için kritik öneme sahip olan kullanıcı, oturum ve istek başına tanılama verileri arasında ilişki sağlama becerisini bozacak. Bu nedenle örnekleme, "uygulama kullanıcılarının yüzde X'i için tüm telemetri öğelerini toplama" veya "uygulama isteklerinin yüzde X'i için tüm telemetrileri toplama" gibi ilkelerle daha iyi çalışır. İsteklerle ilişkilendirilen telemetri öğeleri için (arka plan zaman uyumsuz işleme gibi), geri dönüş "her telemetri türü için tüm öğelerin yüzde X'ini toplamaktır."

Örnekleme yüzdesi zaman içinde değişebilir mi?

  • Evet, uyarlamalı örnekleme, o anda gözlemlenen telemetri hacmine göre örnekleme yüzdesini kademeli olarak değiştirir.

Sabit oranlı örnekleme kullanırsanız, uygulamam için en uygun örnekleme yüzdesini nasıl bilirsiniz?

  • Bunun bir yolu uyarlamalı örneklemeyle başlamak, hangi hıza bağlı olduğunu bulmak (yukarıdaki soruya bakın) ve ardından bu oranı kullanarak sabit oranlı örneklemeye geçmektir.

    Aksi takdirde tahminde bulundurarak. Application Analizler'de geçerli telemetri kullanımınızı analiz edin, oluşan tüm azaltmaları gözlemler ve toplanan telemetri hacmini tahmin edin. Bu üç giriş, seçtiğiniz fiyatlandırma katmanıyla birlikte toplanan telemetri hacmini ne kadar azaltmanız gerektirse de önerebilir. Ancak, kullanıcı sayısı artışı veya telemetri hacminde yapılan başka bir geçiş tahmininizi geçersiz hale neden olabilir.

Örnekleme yüzdesini çok düşük olacak şekilde yapılandırarak ne olur?

  • Aşırı düşük örnekleme yüzdeleri aşırı agresif örneklemeye neden olur ve Application Analizler veri hacmini azaltmak için verilerin görselleştirmesini dengelemeye çalışmalarında tahminlerin doğruluğunu azaltır. Ayrıca, sık başarısız olan veya yavaş olan bazı isteklerin örneklemesi çıkarılana kadar tanılama deneyiminiz olumsuz etkilenene neden olabilir.

Örnekleme yüzdesini çok yüksek olacak şekilde yapılandırarak ne olur?

  • Çok yüksek bir örnekleme yüzdesinin yapılandırılması (yeterince agresif olmaması) toplanan telemetri hacminde yetersiz azalmaya neden olur. Yine de azaltmayla ilgili telemetri veri kaybıyla karşı karşınız olabilir ve Uygulama Analizler fazla kullanımın maliyeti planlanandan daha yüksek olabilir.

Örneklemeyi hangi platformlarda kullanabilirim?

  • SDK örnekleme gerçekleştiremezse, veri alımı örneklemesi belirli bir birimin üzerindeki telemetri verileri için otomatik olarak oluşabilir. Bu yapılandırma, örneğin ASP.NET SDK'sı veya Java SDK'sı eski bir sürümünü kullanıyorsanız çalışır.
  • Geçerli ASP.NET veya ASP.NET Core (Azure'da veya kendi sunucunuzda barındırılan) kullanıyorsanız, varsayılan olarak uyarlamalı örnekleme alırsınız, ancak yukarıda açıklandığı gibi sabit hıza geçebilirsiniz. Sabit hızlı örnekleme ile tarayıcı SDK'sı örnekle ilgili olaylarla otomatik olarak eşitlenir.
  • Geçerli Java aracıyı kullanıyorsanız sabit hız örneklemeyi açmak için applicationinsights.json yapılandırabilirsiniz (Java SDK için, yapılandırma). ApplicationInsights.xml Örnekleme varsayılan olarak kapalıdır. Sabit hızlı örnekleme ile tarayıcı SDK'sı ve sunucu örnekle ilgili olaylarla otomatik olarak eşitlenir.

Her zaman görmek istediğim bazı nadir olaylar vardır. Örnekleme modülünü nasıl geçmiş bir şekilde alabilirim?

  • Bunu gerçekleştirmenin en iyi yolu, aşağıda gösterildiği gibi, korunmayı istediğiniz telemetri öğesinde 100 olarak ayarlayan özel bir telemetryınitializer yazmaktır. Başlatıcılar telemetri işlemcilerinin (örnekleme dahil) önce çalıştırılmasının garanti edilir. Bu, tüm örnekleme tekniklerinin bu öğeyi herhangi bir örnekleme ile yoksaymasını sağlar. özel telemetri başlatıcıları ASP.NET sdk, ASP.NET Core sdk, JavaScript SDK ve Java sdk ' da kullanılabilir. örneğin, ASP.NET SDK kullanarak bir telemetri başlatıcısı yapılandırabilirsiniz:

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

Eski SDK sürümleri

uyarlamalı örnekleme, ASP.NET v 2.0.0-beta3 ve üzeri, Microsoft. applicationınsights. aspnetcore SDK v 2.2.0-beta1 ve üzeri için Application Insights SDK için kullanılabilir ve varsayılan olarak etkindir.

sabit fiyat örnekleme, 2.0.0 ve Java SDK 'sı sürüm 2.0.1 ve sonraki sürümlerin ASP.NET sürümlerindeki SDK 'nin bir özelliğidir.

ASP.NET sdk 'nın v 2.5.0-beta2 ve ASP.NET Core sdk 'nın v 2.2.0-beta3 ' inden önce, örnekleme kararı "kullanıcı" (yani, en tipik web uygulamaları) tanımlayan uygulamalar için kullanıcı kimliğinin karmasını temel alır. Kullanıcıları tanımlamayan uygulama türleri (örneğin, Web Hizmetleri) için örnekleme kararı isteğin işlem KIMLIĞINE dayalıdır. ASP.NET ve ASP.NET Core sdk 'larının son sürümleri, örnekleme kararının işlem kimliğini kullanır.

Sonraki adımlar