Sampling i Application InsightsSampling in Application Insights

Sampling är en funktion i Azure Application insikter.Sampling is a feature in Azure Application Insights. Det är det rekommenderade sättet att minska telemetri-trafik, data kostnader och lagrings kostnader, samtidigt som en statistisk korrekt analys av program data bevaras.It is the recommended way to reduce telemetry traffic, data costs, and storage costs, while preserving a statistically correct analysis of application data. Genom att använda sampling kan du också undvika Application Insights begränsning av din telemetri.Sampling also helps you avoid Application Insights throttling your telemetry. Samplings filtret väljer objekt som är relaterade, så att du kan navigera mellan objekt när du gör diagnostiska undersökningar.The sampling filter selects items that are related, so that you can navigate between items when you are doing diagnostic investigations.

När antalet mått visas i portalen, är de omnormaliserade för att ta hänsyn till konto insamlingen.When metric counts are presented in the portal, they are renormalized to take into account sampling. Detta minimerar eventuell påverkan på statistiken.Doing so minimizes any effect on the statistics.

Kort sammanfattningBrief summary

  • Det finns tre olika typer av sampling: anpassningsbar sampling, sampling med fast pris och insamling av inmatningar.There are three different types of sampling: adaptive sampling, fixed-rate sampling, and ingestion sampling.
  • Adaptiv sampling är aktiverat som standard i alla de senaste versionerna av Application Insights ASP.NET och ASP.NET Core Software Development Kits (SDK: er).Adaptive sampling is enabled by default in all the latest versions of the Application Insights ASP.NET and ASP.NET Core Software Development Kits (SDKs). Den används också av Azure Functions.It is also used by Azure Functions.
  • Fast pris sampling är tillgängligt i de senaste versionerna av Application Insights SDK: er för ASP.NET, ASP.NET Core, Java och python.Fixed-rate sampling is available in recent versions of the Application Insights SDKs for ASP.NET, ASP.NET Core, Java, and Python.
  • Provtagnings samplingen fungerar på Application Insights tjänstens slut punkt.Ingestion sampling works on the Application Insights service endpoint. Den gäller endast när ingen annan sampling tillämpas.It only applies when no other sampling is in effect. Om SDK-exemplen för telemetri inaktive ras inmatnings sampling.If the SDK samples your telemetry, ingestion sampling is disabled.
  • För webb program, om du loggar anpassade händelser och måste se till att en uppsättning händelser behålls eller ignoreras tillsammans, måste händelserna ha samma OperationId värde.For web applications, if you log custom events and need to ensure that a set of events is retained or discarded together, the events must have the same OperationId value.
  • Om du skriver analys frågor bör du ta hänsyn till sampling.If you write Analytics queries, you should take account of sampling. I stället för att helt enkelt räkna poster bör du använda summarize sum(itemCount).In particular, instead of simply counting records, you should use summarize sum(itemCount).
  • Vissa typer av telemetri, inklusive prestanda mått och anpassade mått, hålls alltid oavsett om sampling är aktiverat eller inte.Some telemetry types, including performance metrics and custom metrics, are always kept regardless of whether sampling is enabled or not.

I följande tabell sammanfattas de samplings typer som är tillgängliga för varje SDK och typ av program:The following table summarizes the sampling types available for each SDK and type of application:

Application Insights SDKApplication Insights SDK Anpassad sampling stödsAdaptive sampling supported Stöd för fast pris insamlingFixed-rate sampling supported Inmatnings sampling stödsIngestion sampling supported
ASP.NETASP.NET Ja (aktiverat som standard)Yes (on by default) JaYes Endast om ingen annan sampling gällerOnly if no other sampling is in effect
ASP.NET CoreASP.NET Core Ja (aktiverat som standard)Yes (on by default) JaYes Endast om ingen annan sampling gällerOnly if no other sampling is in effect
Azure FunctionsAzure Functions Ja (aktiverat som standard)Yes (on by default) IngaNo Endast om ingen annan sampling gällerOnly if no other sampling is in effect
JavaJava IngaNo JaYes Endast om ingen annan sampling gällerOnly if no other sampling is in effect
PythonPython IngaNo JaYes Endast om ingen annan sampling gällerOnly if no other sampling is in effect
Alla andraAll others IngaNo IngaNo JaYes

Anteckning

Informationen på de flesta av den här sidan gäller för de aktuella versionerna av Application Insights SDK: er.The information on most of this page applies to the current versions of the Application Insights SDKs. Mer information om äldre versioner av SDK: er finns i avsnittet nedan.For information on older versions of the SDKs, see the section below.

Typer av samplingTypes of sampling

Det finns tre olika samplings metoder:There are three different sampling methods:

  • Adaptiv sampling justerar automatiskt hur många telemetri som skickas från SDK: n i ASP.net/ASP.net Core-appen och från Azure Functions.Adaptive sampling automatically adjusts the volume of telemetry sent from the SDK in your ASP.NET/ASP.NET Core app, and from Azure Functions. Det här är standard samplingen när du använder ASP.NET eller ASP.NET Core SDK.This is the default sampling when you use the ASP.NET or ASP.NET Core SDK. Adaptiv sampling är för närvarande endast tillgängligt för ASP.NET på Server sidan och för Azure Functions.Adaptive sampling is currently only available for ASP.NET server-side telemetry, and for Azure Functions.

  • Med fast pris sampling minskar mängden telemetri som skickas från både din ASP.NET eller ASP.net Core eller Java Server och från användarnas webbläsare.Fixed-rate sampling reduces the volume of telemetry sent from both your ASP.NET or ASP.NET Core or Java server and from your users' browsers. Du ställer in priset.You set the rate. Klienten och servern synkroniserar sin sampling så att du i sökningen kan navigera mellan relaterade sidvyer och begär Anden.The client and server will synchronize their sampling so that, in Search, you can navigate between related page views and requests.

  • Provtagnings sampling sker i Application Insights tjänstens slut punkt.Ingestion sampling happens at the Application Insights service endpoint. Den tar bort vissa av Telemetrin som kommer från din app, enligt en samplings frekvens som du anger.It discards some of the telemetry that arrives from your app, at a sampling rate that you set. Det minskar inte telemetri trafik som skickas från din app, men hjälper dig att hålla dig inom din månads kvot.It doesn't reduce telemetry traffic sent from your app, but helps you keep within your monthly quota. Den största fördelen med inmatnings sampling är att du kan ange samplings frekvensen utan att distribuera om appen.The main advantage of ingestion sampling is that you can set the sampling rate without redeploying your app. Provtagnings samplingen fungerar enhetligt för alla servrar och klienter, men gäller inte när någon annan typ av sampling är i drift.Ingestion sampling works uniformly for all servers and clients, but it does not apply when any other types of sampling are in operation.

Viktigt

Om anpassningsbara eller fasta samplings metoder är i drift inaktive ras inmatnings sampling.If adaptive or fixed rate sampling methods are in operation, ingestion sampling is disabled.

Anpassningsbar samplingAdaptive sampling

Adaptiv sampling påverkar hur många telemetri som skickas från din webbapp till Application Insights tjänstens slut punkt.Adaptive sampling affects the volume of telemetry sent from your web server app to the Application Insights service endpoint.

Tips

Adaptiva samplingar är aktiverat som standard när du använder ASP.NET SDK eller ASP.NET Core SDK, och är också aktiverat som standard för Azure Functions.Adaptive sampling is enabled by default when you use the ASP.NET SDK or the ASP.NET Core SDK, and is also enabled by default for Azure Functions.

Volymen justeras automatiskt för att hållas inom en angiven högsta trafik hastighet och styrs via inställningen MaxTelemetryItemsPerSecond.The volume is adjusted automatically to keep within a specified maximum rate of traffic, and is controlled via the setting MaxTelemetryItemsPerSecond. Om programmet genererar en liten mängd telemetri, till exempel vid fel sökning eller på grund av låg användning, kommer objekten inte att släppas av samplings processorn så länge volymen är under MaxTelemetryItemsPerSecond.If the application produces a low amount of telemetry, such as when debugging or due to low usage, items won't be dropped by the sampling processor as long as volume is below MaxTelemetryItemsPerSecond. När mängden telemetri ökar justeras samplings frekvensen så att mål volymen uppnås.As the volume of telemetry increases, the sampling rate is adjusted so as to achieve the target volume. Justeringen omberäknas med jämna mellanrum och baseras på ett glidande medelvärde för utgående överföringshastigheten.The adjustment is recalculated at regular intervals, and is based on a moving average of the outgoing transmission rate.

För att uppnå mål volymen ignoreras en del av den genererade Telemetrin.To achieve the target volume, some of the generated telemetry is discarded. Men som andra typer av sampling behåller algoritmen relaterade telemetri objekt.But like other types of sampling, the algorithm retains related telemetry items. När du till exempel inspekterar Telemetrin i sökningen kommer du att kunna hitta begäran som är relaterad till ett visst undantag.For example, when you're inspecting the telemetry in Search, you'll be able to find the request related to a particular exception.

Mått, till exempel begär ande frekvens och undantags frekvens justeras för att kompensera för samplings frekvensen, så att de visar ungefär rätt värden i Metric Explorer.Metric counts such as request rate and exception rate are adjusted to compensate for the sampling rate, so that they show approximately correct values in Metric Explorer.

Konfigurera adaptiv sampling för ASP.NET-programConfiguring adaptive sampling for ASP.NET applications

Anteckning

Det här avsnittet gäller för ASP.NET-program, inte för att ASP.NET Core program.This section applies to ASP.NET applications, not to ASP.NET Core applications. Läs mer om hur du konfigurerar adaptiv sampling för ASP.NET Core program senare i det här dokumentet.Learn about configuring adaptive sampling for ASP.NET Core applications later in this document.

I ApplicationInsights.configkan du justera flera parametrar i noden AdaptiveSamplingTelemetryProcessor.In ApplicationInsights.config, you can adjust several parameters in the AdaptiveSamplingTelemetryProcessor node. De siffror som visas är standardvärden:The figures shown are the default values:

  • <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>

    Den mål taxa som den anpassningsbara algoritmen syftar på på varje server värd.The target rate that the adaptive algorithm aims for on each server host. Om din webbapp körs på många värdar kan du minska det här värdet så att det ligger kvar i trafik hastigheten på Application Insights portalen.If your web app runs on many hosts, reduce this value so as to remain within your target rate of traffic at the Application Insights portal.

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

    Intervallet då den aktuella takten för telemetri utvärderas igen.The interval at which the current rate of telemetry is reevaluated. Utvärderingen utförs som ett glidande medelvärde.Evaluation is performed as a moving average. Du kanske vill förkorta det här intervallet om din telemetri är ansvarig för plötsliga burst-överföring.You might want to shorten this interval if your telemetry is liable to sudden bursts.

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

    När samplings procentens värde ändras, hur lång tid det tar att minska samplings procenten igen för att samla in mindre data?When sampling percentage value changes, how soon after are we allowed to lower the sampling percentage again to capture less data?

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

    När samplings procentens värde ändras, hur snart vi har tillåtit att öka samplings procenten igen för att samla in mer data?When sampling percentage value changes, how soon after are we allowed to increase the sampling percentage again to capture more data?

  • <MinSamplingPercentage>0.1</MinSamplingPercentage>

    Som samplings procent varierar, vilket är det minsta värde som vi har tillåtelse att ange?As sampling percentage varies, what is the minimum value we're allowed to set?

  • <MaxSamplingPercentage>100.0</MaxSamplingPercentage>

    Som samplings procent varierar, vilket är det högsta tillåtna värdet som vi kan ställa in?As sampling percentage varies, what is the maximum value we're allowed to set?

  • <MovingAverageRatio>0.25</MovingAverageRatio>

    Vid beräkningen av glidande medelvärde anger detta den vikt som ska tilldelas det senaste värdet.In the calculation of the moving average, this specifies the weight that should be assigned to the most recent value. Använd ett värde som är lika med eller mindre än 1.Use a value equal to or less than 1. Lägre värden gör algoritmen mindre aktiv till plötsliga ändringar.Smaller values make the algorithm less reactive to sudden changes.

  • <InitialSamplingPercentage>100</InitialSamplingPercentage>

    Mängden telemetri som ska samplas när appen precis har startats.The amount of telemetry to sample when the app has just started. Minska inte det här värdet när du felsöker.Don't reduce this value while you're debugging.

  • <ExcludedTypes>Trace;Exception</ExcludedTypes>

    En semikolonavgränsad lista med typer som du inte vill ska omfattas av sampling.A semi-colon delimited list of types that you do not want to be subject to sampling. Godkända typer är: Dependency, Event, Exception, PageView, Request, Trace.Recognized types are: Dependency, Event, Exception, PageView, Request, Trace. All telemetri av de angivna typerna överförs. de typer som inte anges kommer att samplas.All telemetry of the specified types is transmitted; the types that are not specified will be sampled.

  • <IncludedTypes>Request;Dependency</IncludedTypes>

    En semikolonavgränsad lista med typer som du vill ska omfattas av sampling.A semi-colon delimited list of types that you do want to subject to sampling. Godkända typer är: Dependency, Event, Exception, PageView, Request, Trace.Recognized types are: Dependency, Event, Exception, PageView, Request, Trace. De angivna typerna kommer att samplas; all telemetri av andra typer skickas alltid.The specified types will be sampled; all telemetry of the other types will always be transmitted.

Om du vill stänga av adaptiv sampling tar du bort AdaptiveSamplingTelemetryProcessor Node (ar) från ApplicationInsights.config.To switch off adaptive sampling, remove the AdaptiveSamplingTelemetryProcessor node(s) from ApplicationInsights.config.

Alternativ: Konfigurera adaptiv sampling i kodAlternative: Configure adaptive sampling in code

I stället för att ange parametern sampling i .config-filen kan du konfigurera dessa värden program mässigt.Instead of setting the sampling parameter in the .config file, you can programmatically set these values.

  1. Ta bort alla AdaptiveSamplingTelemetryProcessor-noder från .configs filen.Remove all the AdaptiveSamplingTelemetryProcessor node(s) from the .config file.

  2. Använd följande kodfragment för att konfigurera adaptiv sampling:Use the following snippet to configure adaptive sampling:

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

    (Läs mer om telemetri-processorer.)(Learn about telemetry processors.)

Du kan också justera samplings frekvensen för varje typ av telemetri individuellt, eller så kan du till och med undanta vissa typer från att samplas över huvud taget:You can also adjust the sampling rate for each telemetry type individually, or can even exclude certain types from being sampled at all:

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

Konfigurera adaptiv sampling för ASP.NET Core programConfiguring adaptive sampling for ASP.NET Core applications

Det finns inga ApplicationInsights.config för ASP.NET Core program, så all konfiguration görs via kod.There is no ApplicationInsights.config for ASP.NET Core applications, so all configuration is done via code. Adaptiv sampling är aktiverat som standard för alla ASP.NET Core-program.Adaptive sampling is enabled by default for all ASP.NET Core applications. Du kan inaktivera eller anpassa samplings beteendet.You can disable or customize the sampling behavior.

Stänga av adaptiv samplingTurning off adaptive sampling

Standard samplings funktionen kan inaktive ras när du lägger till Application Insights tjänst i metoden ConfigureServicesmed ApplicationInsightsServiceOptions i Startup.cs-filen:The default sampling feature can be disabled while adding Application Insights service, in the method ConfigureServices, using ApplicationInsightsServiceOptions within the Startup.cs file:

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

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

    //...
}

Koden ovan kommer att inaktivera anpassad sampling.The above code will disable adaptive sampling. Följ stegen nedan för att lägga till sampling med fler anpassnings alternativ.Follow the steps below to add sampling with more customization options.

Konfigurera inställningar för samplingConfigure sampling settings

Använd tilläggs metoder för TelemetryProcessorChainBuilder som visas nedan för att anpassa samplings beteendet.Use extension methods of TelemetryProcessorChainBuilder as shown below to customize sampling behavior.

Viktigt

Om du använder den här metoden för att konfigurera sampling, se till att ange aiOptions.EnableAdaptiveSampling egenskapen som ska false när du anropar AddApplicationInsightsTelemetry().If you use this method to configure sampling, please make sure to set the aiOptions.EnableAdaptiveSampling property to false when calling AddApplicationInsightsTelemetry().

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

    // ...
}

Konfigurera adaptiv sampling för Azure FunctionsConfiguring adaptive sampling for Azure Functions

Följ anvisningarna på den här sidan om du vill konfigurera adaptiv sampling för appar som körs i Azure Functions.Follow instructions from this page to configure adaptive sampling for apps running in Azure Functions.

Sampling med fast prisFixed-rate sampling

Med fast pris sampling minskar trafiken som skickas från webb servern och webbläsare.Fixed-rate sampling reduces the traffic sent from your web server and web browsers. Till skillnad från adaptiv sampling minskar den Telemetrin till en fast pris kontroll.Unlike adaptive sampling, it reduces telemetry at a fixed rate decided by you. Fast pris sampling är tillgängligt för ASP.NET-, ASP.NET Core-, Java-och python-program.Fixed-rate sampling is available for ASP.NET, ASP.NET Core, Java and Python applications.

Precis som andra samplings tekniker behåller detta även relaterade objekt.Like other sampling techniques, this also retains related items. Den synkroniserar också klient-och Server samplingen så att relaterade objekt bevaras, till exempel när du tittar på en sidvy i sökningen kan du hitta dess relaterade server begär Anden.It also synchronizes the client and server sampling so that related items are retained - for example, when you look at a page view in Search, you can find its related server requests.

I Metrics Explorer multipliceras priser som begäran och undantags antal med en faktor för att kompensera för samplings frekvensen, så att de är ungefär korrekta.In Metrics Explorer, rates such as request and exception counts are multiplied by a factor to compensate for the sampling rate, so that they are approximately correct.

Konfigurera fast priss insamling för ASP.NET-programConfiguring fixed-rate sampling for ASP.NET applications

  1. Inaktivera adaptiv sampling: ta bort eller kommentera AdaptiveSamplingTelemetryProcessor noden i ApplicationInsights.config.Disable adaptive sampling: In ApplicationInsights.config, remove or comment out the AdaptiveSamplingTelemetryProcessor node.

    <TelemetryProcessors>
        <!-- Disabled adaptive sampling:
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
            <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
        </Add>
        -->
    
  2. Aktivera samplings-modulen för fast pris.Enable the fixed-rate sampling module. Lägg till det här kodfragmentet i ApplicationInsights.config:Add this snippet to 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>
    

    I stället för att ställa in parametern sampling i ApplicationInsights.config-filen kan du välja att program mässigt ange följande värden:Alternatively, instead of setting the sampling parameter in the ApplicationInsights.config file, you can programmatically set these values:

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

    (Läs mer om telemetri-processorer.)(Learn about telemetry processors.)

Konfigurera fast pris sampling för ASP.NET Core programConfiguring fixed-rate sampling for ASP.NET Core applications

  1. Inaktivera adaptiv sampling: ändringar kan göras i ConfigureServices-metoden med ApplicationInsightsServiceOptions:Disable adaptive sampling: Changes can be made in the ConfigureServices method, using ApplicationInsightsServiceOptions:

    public void ConfigureServices(IServiceCollection services)
    {
        // ...
    
        var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
        aiOptions.EnableAdaptiveSampling = false;
        services.AddApplicationInsightsTelemetry(aiOptions);
    
        //...
    }
    
  2. Aktivera samplings-modulen för fast pris.Enable the fixed-rate sampling module. Ändringar kan göras i Configure-metoden som visas i följande kodfragment:Changes can be made in the Configure method as shown in the below snippet:

    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 = TelemetryConfiguration.Active.TelemetryProcessorChainBuilder;
    
        // Using fixed rate sampling   
        double fixedSamplingPercentage = 10;
        builder.UseSampling(fixedSamplingPercentage);
    
        builder.Build();
    
        // ...
    }
    

Konfigurera sampling med fast pris för Java-programConfiguring fixed-rate sampling for Java applications

Som standard är ingen sampling aktive rad i Java SDK.By default no sampling is enabled in the Java SDK. För närvarande stöder den bara fast pris sampling.Currently it only supports fixed rate sampling. Anpassad sampling stöds inte i Java SDK.Adaptive sampling is not supported in the Java SDK.

  1. Hämta och konfigurera ditt webb program med de senaste Application Insights Java SDK: n.Download and configure your web application with the latest Application Insights Java SDK.

  2. Aktivera en samplings modell med fast pris genom att lägga till följande kodfragment i ApplicationInsights.xml-filen:Enable the fixed-rate sampling module by adding the following snippet to ApplicationInsights.xml file:

    <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. Du kan inkludera eller exkludera vissa typer av telemetri från sampling med hjälp av följande Taggar i Processor taggens FixedRateSamplingTelemetryProcessor:You can include or exclude specific types of telemetry from sampling using the following tags inside the Processor tag's FixedRateSamplingTelemetryProcessor:

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

De typer av telemetri som kan tas med eller undantas från sampling är: Dependency, Event, Exception, PageView, Requestoch Trace.The telemetry types that can be included or excluded from sampling are: Dependency, Event, Exception, PageView, Request, and Trace.

Anteckning

För samplings procenten väljer du en procents ATS som ligger nära 100/N där N är ett heltal.For the sampling percentage, choose a percentage that is close to 100/N where N is an integer. För närvarande stöder sampling inte andra värden.Currently sampling doesn't support other values.

Konfigurera fast pris sampling för python-program för openräkningConfiguring fixed-rate sampling for OpenCensus Python applications

  1. Instrumentera ditt program med de senaste Azure Monitor exportörerna för openräkning.Instrument your application with the latest OpenCensus Azure Monitor exporters.

Anteckning

Fast Rate-sampling är bara tillgängligt med spårnings export verktyget.Fixed-rate sampling is only available using the trace exporter. Det innebär att inkommande och utgående begär Anden är de enda typerna av telemetri där sampling kan konfigureras.This means incoming and outgoing requests are the only types of telemetry where sampling can be configured.

  1. Du kan ange en sampler som en del av din Tracer-konfiguration.You may specify a sampler as part of your Tracer configuration. Om inget explicit sampler anges används ProbabilitySampler som standard.If no explicit sampler is provided, the ProbabilitySampler will be used by default. ProbabilitySampler skulle använda en hastighet på 1/10000 som standard, vilket innebär att en av varje 10000-begäranden skickas till Application Insights.The ProbabilitySampler would use a rate of 1/10000 by default, meaning one out of every 10000 requests will be sent to Application Insights. Se nedan om du vill ange en samplingsfrekvens.If you want to specify a sampling rate, see below.

Ange samplings frekvensen genom att se till att Tracer anger ett prov med en samplings frekvens på mellan 0,0 och 1,0.To specify the sampling rate, make sure your Tracer specifies a sampler with a sampling rate between 0.0 and 1.0 inclusive. En samplings frekvens på 1,0 representerar 100%, vilket innebär att alla dina begär Anden skickas som telemetri till Application Insights.A sampling rate of 1.0 represents 100%, meaning all of your requests will be sent as telemetry to Application Insights.

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

Konfigurera fast priss insamling för webb sidor med Java ScriptConfiguring fixed-rate sampling for web pages with JavaScript

JavaScript-baserade webb sidor kan konfigureras att använda Application Insights.JavaScript-based web pages can be configured to use Application Insights. Telemetri skickas från klient programmet som körs i användarens webbläsare och sidorna kan hämtas från vilken server som helst.Telemetry is sent from the client application running within the user's browser, and the pages can be hosted from any server.

När du konfigurerar dina JavaScript-baserade webb sidor för Application Insightsändrar du JavaScript-kodfragmentet som du får från Application Insights Portal.When you configure your JavaScript-based web pages for Application Insights, modify the JavaScript snippet that you get from the Application Insights portal.

Tips

I ASP.NET-appar med Java Script ingår vanligt vis kodfragmentet i _Layout.cshtml.In ASP.NET apps with JavaScript included, the snippet typically goes in _Layout.cshtml.

Infoga en rad som samplingPercentage: 10, före Instrumentation-tangenten:Insert a line like samplingPercentage: 10, before the instrumentation key:

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

För samplings procenten väljer du en procents ATS som ligger nära 100/N där N är ett heltal.For the sampling percentage, choose a percentage that is close to 100/N where N is an integer. För närvarande stöder sampling inte andra värden.Currently sampling doesn't support other values.

Koordinera insamling på Server sidan och på klient SidanCoordinating server-side and client-side sampling

JavaScript SDK för klient sidan ingår i fast priss insamling tillsammans med SDK för Server sidan.The client-side JavaScript SDK participates in fixed-rate sampling in conjunction with the server-side SDK. De instrumenterade sidorna skickar endast telemetri på klient sidan från samma användare som SDK för Server sidan gjorde sitt beslut att inkludera i samplingen.The instrumented pages will only send client-side telemetry from the same user for which the server-side SDK made its decision to include in the sampling. Den här logiken är utformad för att upprätthålla integriteten för användarsessioner över klient-och serverbaserade program.This logic is designed to maintain the integrity of user sessions across client- and server-side applications. Som ett resultat av ett visst telemetri-objekt i Application Insights kan du hitta alla andra telemetridata för den här användaren eller sessionen och i Sök kan du navigera mellan relaterade sidvyer och begär Anden.As a result, from any particular telemetry item in Application Insights you can find all other telemetry items for this user or session and in Search, you can navigate between related page views and requests.

Om din klient och telemetri på Server sidan inte visar koordinerade exempel:If your client and server-side telemetry don't show coordinated samples:

  • Kontrol lera att du har aktiverat sampling både på servern och klienten.Verify that you enabled sampling both on the server and client.
  • Kontrol lera att du anger samma samplings procent i både klienten och servern.Check that you set the same sampling percentage in both the client and server.
  • Kontrol lera att SDK-versionen är 2,0 eller högre.Make sure that the SDK version is 2.0 or above.

Inmatnings samplingIngestion sampling

Provtagnings samplingen fungerar vid den punkt där telemetri från din webb server, webbläsare och enheter når Application Insights tjänstens slut punkt.Ingestion sampling operates at the point where the telemetry from your web server, browsers, and devices reaches the Application Insights service endpoint. Även om den inte minskar telemetri trafiken som skickas från din app, minskar den mängden bearbetad och bevaras (och debiteras för) av Application Insights.Although it doesn't reduce the telemetry traffic sent from your app, it does reduce the amount processed and retained (and charged for) by Application Insights.

Använd den här typen av sampling om din app ofta går över sin månads kvot och du inte har möjlighet att använda någon av SDK-baserade typer av sampling.Use this type of sampling if your app often goes over its monthly quota and you don't have the option of using either of the SDK-based types of sampling.

Ange samplings frekvensen på sidan användning och uppskattade kostnader:Set the sampling rate in the Usage and estimated costs page:

Från bladet översikt över program klickar du på Inställningar, kvot, exempel och väljer sedan en samplings frekvens och klickar på Uppdatera.

I likhet med andra typer av sampling behåller algoritmen relaterade telemetri objekt.Like other types of sampling, the algorithm retains related telemetry items. När du till exempel inspekterar Telemetrin i sökningen kommer du att kunna hitta begäran som är relaterad till ett visst undantag.For example, when you're inspecting the telemetry in Search, you'll be able to find the request related to a particular exception. Mått, till exempel begär ande frekvens och undantags frekvens, bevaras korrekt.Metric counts such as request rate and exception rate are correctly retained.

Data punkter som tas bort från sampling är inte tillgängliga i någon Application Insights funktion som kontinuerlig export.Data points that are discarded by sampling are not available in any Application Insights feature such as Continuous Export.

Provtagnings samplingen fungerar inte medan adaptiv eller fast pris sampling är i drift.Ingestion sampling doesn't operate while adaptive or fixed-rate sampling is in operation. Adaptiv sampling är aktiverat som standard när ASP.NET SDK eller ASP.NET Core SDK används, eller när Application Insights har Aktiver ATS i Azure App Service eller med hjälp av statusövervakare.Adaptive sampling is enabled by default when the ASP.NET SDK or the ASP.NET Core SDK is being used, or when Application Insights is enabled in Azure App Service or by using Status Monitor. När telemetri tas emot av Application Insights tjänstens slut punkt, undersöker den Telemetrin och om samplings frekvensen rapporteras vara mindre än 100% (vilket betyder att telemetri samplas), ignoreras den inmatnings samplings frekvens som du har angett.When telemetry is received by the Application Insights service endpoint, it examines the telemetry and if the sampling rate is reported to be less than 100% (which indicates that telemetry is being sampled) then the ingestion sampling rate that you set is ignored.

Varning

Värdet som visas på Portal panelen visar det värde som du angav för inmatnings sampling.The value shown on the portal tile indicates the value that you set for ingestion sampling. Den representerar inte den faktiska samplings frekvensen om någon form av SDK-sampling (anpassningsbar eller fast pris sampling) är i drift.It doesn't represent the actual sampling rate if any sort of SDK sampling (adaptive or fixed-rate sampling) is in operation.

När du ska använda samplingWhen to use sampling

I allmänhet för de flesta små och medel stora program behöver du inte använda sampling.In general, for most small and medium size applications you don't need sampling. Den mest användbara diagnostikinformation och den mest exakta statistiken erhålls genom att samla in data för alla dina användar aktiviteter.The most useful diagnostic information and most accurate statistics are obtained by collecting data on all your user activities.

De största fördelarna med sampling är:The main advantages of sampling are:

  • Application Insights tjänst släpper ("begränsning") data punkter när din app skickar en mycket hög telemetri i ett kort tidsintervall.Application Insights service drops ("throttles") data points when your app sends a very high rate of telemetry in a short time interval. Sampling minskar sannolikheten för att programmet ska se begränsningen.Sampling reduces the likelihood that your application will see throttling occur.
  • För att hålla dig inom kvoten för data punkter för din pris nivå.To keep within the quota of data points for your pricing tier.
  • För att minska nätverks trafiken från insamling av telemetri.To reduce network traffic from the collection of telemetry.

Vilken typ av sampling ska jag använda?Which type of sampling should I use?

Använd inmatnings sampling om:Use ingestion sampling if:

  • Du använder ofta din månads kvot för telemetri.You often use your monthly quota of telemetry.
  • Du får för mycket telemetri från användarnas webbläsare.You're getting too much telemetry from your users' web browsers.
  • Du använder en version av SDK som inte stöder sampling, t. ex. ASP.NET versioner som är äldre än 2.You're using a version of the SDK that doesn't support sampling - for example ASP.NET versions earlier than 2.

Använd sampling med fast pris om:Use fixed-rate sampling if:

  • Du vill ha synkroniserad sampling mellan klienten och servern så att när du undersöker händelser i sökningenkan du navigera mellan relaterade händelser på klienten och servern, till exempel sidvyer och HTTP-begäranden.You want synchronized sampling between client and server so that, when you're investigating events in Search, you can navigate between related events on the client and server, such as page views and HTTP requests.
  • Du är säker på rätt samplings procent för din app.You are confident of the appropriate sampling percentage for your app. Det bör vara tillräckligt högt för att få korrekta mått, men under den hastighet som överskrider din prissättnings kvot och begränsnings gränser.It should be high enough to get accurate metrics, but below the rate that exceeds your pricing quota and the throttling limits.

Använd anpassningsbar sampling:Use adaptive sampling:

Om villkoren för att använda andra former av sampling inte gäller rekommenderar vi anpassad sampling.If the conditions to use the other forms of sampling do not apply, we recommend adaptive sampling. Den här inställningen är aktive rad som standard i ASP.NET/ASP.NET Core SDK.This setting is enabled by default in the ASP.NET/ASP.NET Core SDK. Det minskar inte trafiken förrän en viss minimi hastighet uppnås, därför kommer webbplatser med låg användning troligen inte att samplas över huvud taget.It will not reduce traffic until a certain minimum rate is reached, therefore low-use sites will probably not be sampled at all.

Att veta om sampling är i driftKnowing whether sampling is in operation

Om du vill identifiera den faktiska samplings frekvensen oavsett var den har använts använder du en analys fråga som detta:To discover the actual sampling rate no matter where it has been applied, use an Analytics query such as this:

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

Om du ser att RetainedPercentage för någon typ är mindre än 100 samplas den typen av telemetri.If you see that RetainedPercentage for any type is less than 100, then that type of telemetry is being sampled.

Viktigt

Application Insights inte samplar session, mått (inklusive anpassade mått) eller typer av telemetri för prestanda räknare i någon av samplings teknikerna.Application Insights does not sample session, metrics (including custom metrics), or performance counter telemetry types in any of the sampling techniques. Dessa typer är alltid exkluderade från sampling eftersom en minskning av precisionen kan vara mycket olämplig för dessa typer av telemetri.These types are always excluded from sampling as a reduction in precision can be highly undesirable for these telemetry types.

Så här fungerar samplingHow sampling works

Samplings algoritmen bestämmer vilka telemetri-objekt som ska släppas och vilka som ska behållas.The sampling algorithm decides which telemetry items to drop, and which ones to keep. Detta är sant om sampling görs av SDK eller i Application Insights tjänsten.This is true whether sampling is done by the SDK or in the Application Insights service. Samplings beslutet baseras på flera regler som syftar till att bevara alla samrelaterade data punkter, vilket bibehåller en diagnostisk upplevelse i Application Insights som är åtgärds bara och tillförlitliga, även med en reducerad data uppsättning.The sampling decision is based on several rules that aim to preserve all interrelated data points intact, maintaining a diagnostic experience in Application Insights that is actionable and reliable even with a reduced data set. Om din app till exempel har en misslyckad begäran som ingår i ett exempel, kommer ytterligare telemetri-objekt (till exempel undantag och spår som loggats för denna begäran) att bevaras.For example, if your app has a failed request included in a sample, the additional telemetry items (such as exception and traces logged for this request) will be retained. Provtagningen behåller eller släpper ihop dem tillsammans.Sampling either keeps or drops them all together. När du tittar på förfrågnings informationen i Application Insights kan du alltid se begäran tillsammans med tillhör ande mallobjekt.As a result, when you look at the request details in Application Insights, you can always see the request along with its associated telemetry items.

Samplings beslutet baseras på åtgärds-ID för begäran, vilket innebär att alla telemetridata som tillhör en viss åtgärd antingen bevaras eller tas bort.The sampling decision is based on the operation ID of the request, which means that all telemetry items belonging to a particular operation is either preserved or dropped. För telemetri-objekt som inte har något angivet åtgärds-ID (t. ex. telemetri-objekt som rapporter ATS från asynkrona trådar med ingen HTTP-kontext) fångar bara en procent andel telemetri objekt av varje typ.For the telemetry items that do not have an operation ID set (such as telemetry items reported from asynchronous threads with no HTTP context) sampling simply captures a percentage of telemetry items of each type.

När du presenterar telemetri tillbaka till dig justerar Application Insights-tjänsten måtten efter samma samplings procent som användes vid tidpunkten för samlingen, för att kompensera för de data punkter som saknas.When presenting telemetry back to you, the Application Insights service adjusts the metrics by the same sampling percentage that was used at the time of collection, to compensate for the missing data points. När du tittar på Telemetrin i Application Insights, ser användarna då statistiskt korrekta uppskattningar som är mycket nära de reella talen.Hence, when looking at the telemetry in Application Insights, the users are seeing statistically correct approximations that are very close to the real numbers.

Noggrannheten i uppskattningen beror i stor utsträckning på den konfigurerade samplings procenten.The accuracy of the approximation largely depends on the configured sampling percentage. Dessutom ökar noggrannheten för program som hanterar en stor mängd av allmänt förekommande liknande förfrågningar från många användare.Also, the accuracy increases for applications that handle a large volume of generally similar requests from lots of users. För program som inte fungerar med en betydande belastning behövs dock inte samplingen eftersom dessa program normalt kan skicka all telemetri samtidigt som de ligger inom kvoten, utan att orsaka data förlust från begränsning.On the other hand, for applications that don't work with a significant load, sampling is not needed as these applications can usually send all their telemetry while staying within the quota, without causing data loss from throttling.

Vanliga frågorFrequently asked questions

Vad är standard samplings beteendet i ASP.NET och ASP.NET Core SDK: er?What is the default sampling behavior in the ASP.NET and ASP.NET Core SDKs?

  • Om du använder någon av de senaste versionerna av ovanstående SDK, aktive ras adaptiv sampling som standard med fem telemetri objekt per sekund.If you are using one of the latest versions of the above SDK, Adaptive Sampling is enabled by default with five telemetry items per second. Det finns två AdaptiveSamplingTelemetryProcessor-noder som läggs till som standard och en innehåller Event typ i sampling, medan den andra utesluter Event typen från sampling.There are two AdaptiveSamplingTelemetryProcessor nodes added by default, and one includes the Event type in sampling, while the other excludes the Event type from sampling. Den här konfigurationen innebär att SDK försöker begränsa telemetri-objekt till fem telemetridata av Event typer och fem telemetridata av alla andra typer, vilket säkerställer att Events samplas separat från andra typer av telemetri.This configuration means that the SDK will try to limit telemetry items to five telemetry items of Event types, and five telemetry items of all other types combined, thereby ensuring that Events are sampled separately from other telemetry types. Händelser används vanligt vis för affärstelemetri, och de mest sannolika bör inte påverkas av diagnostiska telemetri volymer.Events are typically used for business telemetry, and most likely should not be affected by diagnostic telemetry volumes.

    Följande visar standard ApplicationInsights.config-filen som skapas.The following shows the default ApplicationInsights.config file generated. I ASP.NET Core är samma standard beteende aktive rad i kod.In ASP.NET Core, the same default behavior is enabled in code. Använd exemplen i det tidigare avsnittet av den här sidan för att ändra det här standard beteendet.Use the examples in the earlier section of this page to change this default behavior.

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

Kan telemetri samplas mer än en gång?Can telemetry be sampled more than once?

  • Nej.No. SamplingTelemetryProcessors ignorerar objekt från samplings överväganden om objektet redan har testats.SamplingTelemetryProcessors ignore items from sampling considerations if the item is already sampled. Samma sak gäller för insamlings sampling, som inte använder sampling för de objekt som redan har tagits med i själva SDK: n.The same is true for ingestion sampling as well, which won't apply sampling to those items already sampled in the SDK itself.

Varför är det inte att sampla en enkel "samla in X procent av varje typ av telemetri"?Why isn't sampling a simple "collect X percent of each telemetry type"?

  • Även om den här samplings metoden ger en hög precisions nivå i mått approximationer skulle det brytas möjligheten att korrelera diagnostikdata per användare, session och begäran, vilket är kritiskt för diagnostik.While this sampling approach would provide with a high level of precision in metric approximations, it would break the ability to correlate diagnostic data per user, session, and request, which is critical for diagnostics. Därför fungerar samplingen bättre med principer som "samla in alla telemetridata för X procent av App-användare" eller "samla in all telemetri för X procent av app-begäranden".Therefore, sampling works better with policies like "collect all telemetry items for X percent of app users", or "collect all telemetry for X percent of app requests". För telemetri-objekten som inte är associerade med begär Anden (till exempel bakgrunds asynkron bearbetning) är återställningen till "samla in X procent av alla objekt för varje typ av telemetri".For the telemetry items not associated with the requests (such as background asynchronous processing), the fallback is to "collect X percent of all items for each telemetry type."

Kan samplings procent förändringen över tid?Can the sampling percentage change over time?

  • Ja, anpassningsbar sampling ändrar gradvis samplings procent baserat på den aktuella observerade volymen för Telemetrin.Yes, adaptive sampling gradually changes the sampling percentage, based on the currently observed volume of the telemetry.

Hur vet jag vilken samplings procent som fungerar bäst för min app om jag använder sampling med fast pris.If I use fixed-rate sampling, how do I know which sampling percentage will work the best for my app?

  • Ett sätt är att börja med anpassningsbara samplingar, ta reda på vilken taxa den har påbörjat (se ovanstående fråga) och växla sedan till fast pris sampling med denna hastighet.One way is to start with adaptive sampling, find out what rate it settles on (see the above question), and then switch to fixed-rate sampling using that rate.

    Annars måste du gissa.Otherwise, you have to guess. Analysera den aktuella telemetri användningen i Application Insights, Observera eventuella begränsningar som inträffar och beräkna volymen för den insamlade telemetri.Analyze your current telemetry usage in Application Insights, observe any throttling that is occurring, and estimate the volume of the collected telemetry. Dessa tre indata, tillsammans med den valda pris nivån, föreslår hur mycket du kanske vill minska mängden insamlad telemetri.These three inputs, together with your selected pricing tier, suggest how much you might want to reduce the volume of the collected telemetry. En ökning av antalet användare eller någon annan Skift i volymen av telemetri kan dock ogiltig förklara beräkningen.However, an increase in the number of your users or some other shift in the volume of telemetry might invalidate your estimate.

Vad händer om jag konfigurerar samplings procenten så att den är för låg?What happens if I configure the sampling percentage to be too low?

  • Alltför låg andel samplings procent ger över aggressiva samplingar och minskar noggrannheten i de ungefärliger som Application Insights försöker kompensera visualiseringen för data volymens minskning.Excessively low sampling percentages cause over-aggressive sampling, and reduce the accuracy of the approximations when Application Insights attempts to compensate the visualization of the data for the data volume reduction. Den diagnostiska upplevelsen kan också påverkas negativt, eftersom vissa av de misslyckade eller långsamma begär Anden kan samplas ut.Also your diagnostic experience might be negatively impacted, as some of the infrequently failing or slow requests may be sampled out.

Vad händer om jag konfigurerar samplings procenten så att den är för hög?What happens if I configure the sampling percentage to be too high?

  • Om du konfigurerar för högt en samplings procent (inte tillräckligt aggressiv) resulterar det i otillräcklig minskning av den insamlade telemetri-volymen.Configuring too high a sampling percentage (not aggressive enough) results in an insufficient reduction in the volume of the collected telemetry. Du kan fortfarande uppleva telemetri data förlust relaterat till begränsning, och kostnaden för att använda Application Insights kan vara högre än vad du har planerat på grund av överutnyttjade avgifter.You may still experience telemetry data loss related to throttling, and the cost of using Application Insights might be higher than you planned due to overage charges.

På vilka plattformar kan jag använda sampling?On what platforms can I use sampling?

  • Provtagnings sampling kan ske automatiskt för en telemetri över en viss volym, om SDK: n inte utför sampling.Ingestion sampling can occur automatically for any telemetry above a certain volume, if the SDK is not performing sampling. Den här konfigurationen fungerar, till exempel om du använder en äldre version av ASP.NET SDK eller Java SDK.This configuration would work, for example, if you are using an older version of the ASP.NET SDK or Java SDK.
  • Om du använder den aktuella ASP.NET eller ASP.NET Core SDK: er (som finns i Azure eller på din egen server) får du anpassningsbara samplingar som standard, men du kan växla till fast pris enligt beskrivningen ovan.If you're using the current ASP.NET or ASP.NET Core SDKs (hosted either in Azure or on your own server), you get adaptive sampling by default, but you can switch to fixed-rate as described above. Med fast Rate-sampling synkroniserar webbläsarens SDK automatiskt till exempel relaterade händelser.With fixed-rate sampling, the browser SDK automatically synchronizes to sample related events.
  • Om du använder den aktuella Java SDK kan du konfigurera ApplicationInsights.xml att aktivera fast priss insamling.If you're using the current Java SDK, you can configure ApplicationInsights.xml to turn on fixed-rate sampling. Sampling är inaktive rad som standard.Sampling is turned off by default. Med fast Rate-sampling, synkroniserar webbläsarens SDK och servern automatiskt exempel på relaterade händelser.With fixed-rate sampling, the browser SDK and the server automatically synchronize to sample related events.

Det finns vissa sällsynta händelser som jag alltid vill se. Hur kan jag få dem förbi samplings modulen?There are certain rare events I always want to see. How can I get them past the sampling module?

  • Det bästa sättet att åstadkomma detta är att skriva en anpassad TelemetryInitializer, som anger SamplingPercentage till 100 på det telemetridata som du vill ha kvar, som du ser nedan.The best way to achieve this is to write a custom TelemetryInitializer, which sets the SamplingPercentage to 100 on the telemetry item you want retained, as shown below. Eftersom initierare är garanterat att köras före telemetri-processorer (inklusive sampling) ser detta till att alla samplings tekniker kommer att ignorera det här objektet från alla exempel på att tänka på.As initializers are guaranteed to be run before telemetry processors (including sampling), this ensures that all sampling techniques will ignore this item from any sampling considerations.

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

Äldre SDK-versionerOlder SDK versions

Adaptiv sampling är tillgängligt för Application Insights SDK för ASP.NET v 2.0.0-beta3 och senare, Microsoft. ApplicationInsights. AspNetCore SDK v 2.2.0-beta1 och senare, och är aktiverat som standard.Adaptive sampling is available for the Application Insights SDK for ASP.NET v2.0.0-beta3 and later, Microsoft.ApplicationInsights.AspNetCore SDK v2.2.0-beta1 and later, and is enabled by default.

Sampling med fast pris är en funktion i SDK i ASP.NET-versioner från 2.0.0 och Java SDK version 2.0.1 och senare.Fixed-rate sampling is a feature of the SDK in ASP.NET versions from 2.0.0 and Java SDK version 2.0.1 and onwards.

Före v-2.5.0-beta2 av ASP.NET SDK och v 2.2.0-beta3 för ASP.NET Core SDK baserades samplings beslutet på hashen för användar-ID: t för program som definierar "användare" (det vill säga de flesta vanliga webb program).Prior to v2.5.0-beta2 of the ASP.NET SDK, and v2.2.0-beta3 of ASP.NET Core SDK, the sampling decision was based on the hash of the user ID for applications that define "user" (that is, most typical web applications). För de typer av program som inte definierade användare (t. ex. webb tjänster) var samplings beslutet baserat på åtgärds-ID för begäran.For the types of applications that didn't define users (such as web services) the sampling decision was based on the operation ID of the request. De senaste versionerna av ASP.NET och ASP.NET Core SDK: er använder åtgärds-ID: t för samplings beslutet.Recent versions of the ASP.NET and ASP.NET Core SDKs use the operation ID for the sampling decision.

Nästa stegNext steps