Freigeben über


Erstellen von Stichproben in Application Insights

Stichprobenentnahme ist eine Funktion in Application Insights. Dies ist die empfohlene Methode, um den Telemetrieverkehr, die Datenkosten und die Speicherkosten zu reduzieren und gleichzeitig eine statistisch korrekte Analyse der Anwendungsdaten zu erhalten. Die Stichprobenerstellung hilft auch, eine Drosselung der Telemetriedaten durch Application Insights zu vermeiden. Der Stichprobenfilter wählt verwandte Elemente aus, sodass Sie bei diagnostischen Untersuchungen zwischen Elementen navigieren können.

Bei der Anzeige im Portal werden die Metrikergebnisse zur Berücksichtigung der Stichprobenerstellung renormalisiert. Dadurch werden die Auswirkungen auf die Statistiken minimiert.

Hinweis

Achtung

Wir empfehlen die Azure Monitor OpenTelemetry Distro für neue Anwendungen oder Kunden, um Azure Monitor Application Insights zu betreiben. Die Azure Monitor OpenTelemetry Distro bietet eine ähnliche Funktionalität und Benutzererfahrung wie das Application Insights SDK. Es ist möglich, mithilfe der Migrationsleitfäden für .NET, Node.js und Python vom Application Insights SDK zu migrieren, wir arbeiten jedoch an der Integration zusätzlicher Funktionen für die Abwärtskompatibilität.

Ein Screenshot der Konfigurationsoptionen für die Stichprobenentnahme.

Kurze Zusammenfassung

  • Es gibt drei verschiedene Arten der Stichprobenerstellung: adaptive Stichprobenerstellung, Stichprobenerstellung mit festem Prozentsatz und Erfassungs-Stichprobenerstellung.
  • Die adaptive Stichprobenerstellung ist in allen aktuellen Versionen der Application Insights ASP.NET und ASP.NET Core Software Development Kits (SDKs) und in Azure Functions standardmäßig aktiviert.
  • Stichprobenentnahme mit fester Häufigkeit ist in den neuesten Versionen der Application Insights SDKs für ASP.NET, ASP.NET Core, Java (sowohl Agent als auch SDK) und Python verfügbar.
  • In Java sind Sampling-Überschreibungen verfügbar und nützlich, wenn Sie unterschiedliche Sampling-Raten auf ausgewählte Abhängigkeiten, Anforderungen und Zustandsprüfungen anwenden müssen. Verwenden Sie Sampling-Overrides, um einige verrauschte Abhängigkeiten auszublenden, während beispielsweise alle wichtigen Fehler bei 100 % gehalten werden. Dieses Verhalten ist eine Form der festen Abtastung, die Ihnen eine feinkörnige Kontrolle über Ihre Telemetrie gibt.
  • Die Erfassungs-Stichprobenerstellung wird auf dem Application Insights-Dienstendpunkt vorgenommen. Sie wird nur angewendet, wenn keine andere Stichprobenerstellung aktiv ist. Wenn das SDK Stichproben Ihrer Telemetriedaten erstellt, ist die Erfassungs-Stichprobenerstellung deaktiviert.
  • Wenn Sie im Fall von Webanwendungen benutzerdefinierte Ereignisse protokollieren und dabei sicherstellen müssen, dass eine Gruppe von Ereignissen gemeinsam beibehalten oder verworfen wird, müssen die Ereignisse den gleichen Wert für OperationId aufweisen.
  • Wenn Sie Analytics-Abfragen schreiben, sollten Sie die Stichprobenerstellung berücksichtigen. Insbesondere sollten Sie nicht einfach nur Datensätze zählen, sondern stattdessen summarize sum(itemCount)verwenden.
  • Einige Telemetrietypen, einschließlich Leistungsmetriken und benutzerdefinierten Metriken, werden immer beibehalten, unabhängig davon, ob die Stichprobenerstellung aktiviert ist.

In der folgenden Tabelle sind die für die jeweiligen SDKs und Anwendungstypen verfügbaren Arten der Stichprobenerstellung zusammengefasst:

Application Insights SDK Adaptive Stichprobenerstellung unterstützt Stichprobenerstellung mit festem Prozentsatz unterstützt Erfassungs-Stichprobenerstellung unterstützt
ASP.NET Ja (standardmäßig aktiviert) Ja Nur wenn keine andere Stichprobenerstellung aktiv ist
ASP.NET Core Ja (standardmäßig aktiviert) Ja Nur wenn keine andere Stichprobenerstellung aktiv ist
Azure-Funktionen Ja (standardmäßig aktiviert) Nein Nur wenn keine andere Stichprobenerstellung aktiv ist
Java Nein Ja Nur wenn keine andere Stichprobenerstellung aktiv ist
JavaScript Nein Ja Nur wenn keine andere Stichprobenerstellung aktiv ist
Node.JS Nein Ja Nur wenn keine andere Stichprobenerstellung aktiv ist
Python Nein Ja Nur wenn keine andere Stichprobenerstellung aktiv ist
Alle anderen Nein Nein Ja

Hinweis

  • Der Java Application Agent 3.4.0 und höher verwendet beim Senden von Telemetriedaten an Application Insights standardmäßig Sampling mit Ratenbegrenzung. Weitere Informationen finden Sie unter Sampling mit Ratenbegrenzung.
  • Der Großteil der Informationen auf dieser Seite bezieht sich auf die aktuellen Versionen der Application Insights SDKs. Informationen zu älteren Versionen der SDKs finden Sie unter Ältere SDK-Versionen.

Verwendungsbereiche für die Stichprobenerstellung

Für die meisten kleinen und mittelgroßen Anwendungen ist im Allgemeinen keine Stichprobenerstellung erforderlich. Die nützlichsten Diagnoseinformationen und präzisesten Statistiken werden abgerufen, indem Sie Daten zu sämtlichen Benutzeraktivitäten erfassen.

Die Hauptvorteile von Stichproben sind:

  • Der Application Insights-Dienst senkt („drosselt“) Datenpunkte, wenn Ihre App in kurzen Abständen eine große Menge an Telemetriedaten sendet. Durch die Stichprobenerstellung verringert sich die Wahrscheinlichkeit, dass bei Ihrer Anwendung eine Drosselung auftritt.
  • Sie können das Kontingent an Datenpunkten besser einhalten, das für Ihren Tarif vorgesehen ist.
  • Der Netzwerk-Datenverkehr, der durch die Erfassung von Telemetriedaten verursacht wird, wird reduziert.

Funktionsweise der Stichprobenerstellung

Der Algorithmus für die Stichprobenentnahme entscheidet, welche Telemetriedatenelemente er beibehält oder ablegt, unabhängig davon, ob das SDK oder der Application Insights-Dienst die Stichprobenentnahme durchführt. Er folgt Regeln, um alle miteinander verbundenen Datenpunkte intakt zu halten, um sicherzustellen, dass Application Insights eine umsetzbare und zuverlässige Diagnoseerfahrung bietet, selbst mit weniger Daten. Wenn eine Stichprobe beispielsweise eine fehlgeschlagene Anforderung enthält, behält er alle zugehörigen Telemetriedatenelemente wie Ausnahmen und Ablaufverfolgungen bei. Auf diese Weise sehen Sie beim Anzeigen von Anforderungsdetails in Application Insights immer die Anforderung und die zugehörigen Telemetriedaten.

Die Entscheidung zur Stichprobenerstellung basiert auf der Vorgangs-ID der Anforderung, d. h. alle Telemetrieelemente, die zu einem bestimmten Vorgang gehören, werden entweder beibehalten oder gelöscht. Für Telemetrieelemente, für die keine Vorgangs-ID festgelegt wurde (z. B. Telemetrieelemente aus asynchronen Threads ohne HTTP-Kontext), wird bei der Stichprobenerstellung einfach ein Prozentsatz der Telemetrieelemente jedes Typs erfasst.

Wenn Ihnen die Telemetriedaten angezeigt werden, passt der Application Insights-Dienst die Metriken basierend auf dem Prozentsatz der Stichprobenerstellung an, der bei der Erfassung der Daten verwendet wurde. Auf diese Weise werden die fehlenden Datenpunkte kompensiert. Bei Betrachtung der Telemetriedaten in Application Insights werden folglich statistisch korrekte Annäherungen angezeigt, die den reellen Zahlen nahe kommen.

Die Genauigkeit der Annäherung hängt weitgehend vom konfigurierten Prozentsatz für die Stichprobenerstellung ab. Zudem steigt die Genauigkeit bei Anwendungen, die eine große Anzahl ähnliche Anforderungen von einer großen Anzahl von Benutzern verarbeiten. Andererseits ist bei Anwendungen mit geringer Last keine Stichprobenerstellung erforderlich, da diese Anwendungen üblicherweise sämtliche Telemetriedaten senden können, ohne dass dabei das jeweilige Kontingent überschritten wird oder es durch die Drosselung zu Datenverlust kommt.

Arten der Stichprobenerstellung

Es gibt drei verschiedene Methoden der Stichprobenerstellung:

  • Die adaptive Stichprobenerstellung passt die Menge an Telemetriedaten, die vom SDK in Ihrer ASP.NET-/ASP.NET Core-App und von Azure Functions gesendet wird, automatisch an. Dies ist die Standardstichprobenentnahme bei Verwendung des ASP.NET- oder ASP.NET Core-SDKs. Die adaptive Stichprobenerstellung ist derzeit nur für serverseitige Telemetriedaten von ASP.NET/ASP.NET Core und für Azure Functions verfügbar.

  • Die Stichprobenerstellung mit festem Prozentsatz reduziert die Menge an Telemetriedaten, die von Ihrem ASP.NET-, ASP.NET Core- oder Java-Server und von den Browsern Ihrer Benutzer gesendet wird. Sie legen den Prozentsatz fest. Client und Server synchronisieren ihre Stichprobenentnahme, sodass Sie in Cognitive Search zwischen den verwandten Seitenansichten und Seitenanforderungen navigieren können.

  • Die Erfassungs-Stichprobenerstellung erfolgt auf dem Application Insights-Dienstendpunkt. Bei dieser Methode werden einige Telemetriedaten, die von Ihrer App eingehen, mit der von Ihnen angegebenen Stichprobenerstellungsrate verworfen. Die Methode verringert zwar nicht den von Ihrer App gesendeten Telemetriedatenverkehr, trägt aber zur Einhaltung Ihres monatlichen Kontingents bei. Der Hauptvorteil der Erfassungs-Stichprobenerstellung ist, dass die Stichprobenrate ohne erneute Bereitstellung Ihrer App festgelegt werden kann. Die Erfassungsstichprobe funktioniert einheitlich für alle Server und Clients, gilt jedoch nicht, wenn andere Stichprobenarten in Betrieb sind.

Wichtig

Während die Methode der adaptiven Stichprobenerstellung oder der Stichprobenerstellung mit festem Prozentsatz für einen Telemetrietyp aktiviert ist, wird die Erfassungs-Stichprobenerstellung für diesen Telemetrietyp deaktiviert. Telemetrietypen, die von der Stichprobenerstellung auf SDK-Ebene ausgeschlossen sind, unterliegen jedoch weiterhin der Erfassungs-Stichprobenerstellung mit dem im Portal festgelegten Satz.

Adaptive Stichprobenerstellung

Die adaptive Stichprobenermittlung wirkt sich auf die Menge der Telemetriedaten aus, die von Ihrer Webserver-App an den Application Insights-Dienstendpunkt gesendet werden.

Tipp

Die adaptive Stichprobenerstellung ist bei Verwendung des ASP.NET SDK oder ASP.NET Core SDK und auch für Azure Functions standardmäßig aktiviert.

Das Volumen passt sich automatisch an, um innerhalb des MaxTelemetryItemsPerSecond-Ratenlimits zu bleiben. Wenn die Anwendung wenig Telemetriedaten generiert, z. B. während des Debuggens oder bei geringem Verbrauch, werden Elemente nicht abgelegt, solange das Volumen unter MaxTelemetryItemsPerSecond bleibt. Wenn das Telemetriedatenvolumen steigt, passt er die Rate der Stichprobenentnahme an, um das Zielvolumen zu erreichen. Diese Anpassung, die in regelmäßigen Intervallen neu berechnet wird, basiert auf dem gleitenden Durchschnitt der ausgehenden Übertragungsrate.

Um die Zielmenge zu erreichen, werden einige der generierten Telemetriedaten verworfen. Aber wie bei den anderen Methoden für die Stichprobenerstellung behält der Algorithmus zugehörige Telemetrieelemente bei. So sind Sie beispielsweise in der Lage, bei der Untersuchung der Telemetriedaten in Cognitive Search die zu einer bestimmten Ausnahme gehörende Anforderung zu ermitteln.

Metrikzahlen wie Anforderungsrate und Ausnahmerate werden angepasst, um die Stichprobenrate zu kompensieren, sodass sie ungefähre Werte im Metrik-Explorer anzeigen.

Konfigurieren der adaptiven Stichprobenerstellung für ASP.NET-Anwendungen

Hinweis

Dieser Abschnitt gilt für ASP.NET-Anwendungen, jedoch nicht für ASP.NET Core-Anwendungen. Informationen zum Konfigurieren der adaptiven Stichprobenerstellung für ASP.NET Core-Anwendungen finden Sie weiter unten in diesem Dokument.

In ApplicationInsights.config können Sie verschiedene Parameter im AdaptiveSamplingTelemetryProcessor-Knoten anpassen. Die folgenden Zahlen veranschaulichen die Standardwerte:

  • <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>

    Der Zielprozentsatz von logischen Vorgängen, den der Adaptionsalgorithmus auf jedem einzelnen Serverhost zu erreichen versucht. Wenn Ihre Web-App auf mehreren Hosts ausgeführt wird, reduzieren Sie diesen Wert, damit Sie innerhalb des Zielprozentsatzes für den Datenverkehr im Application Insights-Portal bleiben.

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

    Das Intervall, in dem die aktuelle Telemetrierate erneut ausgewertet wird. Die Auswertung wird als gleitender Durchschnitt ausgeführt. Wenn bei Ihrer Telemetrie plötzliche Spitzen auftreten, sollten Sie dieses Intervall verkürzen.

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

    Wenn sich der Prozentwert der Stichprobenentnahme ändert, bestimmt er, wie schnell wir den Prozentsatz der Stichprobenentnahme wieder reduzieren können, um weniger Daten aufzuzeichnen.

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

    Wenn sich der Prozentwert der Stichprobenentnahme ändert, gibt er vor, wie schnell wir den Prozentsatz der Stichprobenentnahme wieder erhöhen können, um mehr Daten aufzuzeichnen.

  • <MinSamplingPercentage>0.1</MinSamplingPercentage>

    Gibt den minimal zulässigen Wert an, der bei variierendem Stichproben-Prozentsatz festgelegt werden darf.

  • <MaxSamplingPercentage>100.0</MaxSamplingPercentage>

    Gibt den maximal zulässigen Wert an, der bei variierendem Stichproben-Prozentsatz festgelegt werden darf.

  • <MovingAverageRatio>0.25</MovingAverageRatio>

    Bei der Berechnung des gleitenden Durchschnitts gibt dieser Wert das Gewicht an, das dem jüngsten Wert zugewiesen werden soll. Verwenden Sie einen Wert kleiner oder gleich 1. Bei einem kleineren Wert reagiert der Algorithmus langsamer auf plötzliche Veränderungen.

  • <InitialSamplingPercentage>100</InitialSamplingPercentage>

    Die Menge der Telemetriedaten für eine Stichprobe, wenn die App startet. Reduzieren Sie diesen Wert nicht, solange Sie debuggen.

  • <ExcludedTypes>type;type</ExcludedTypes>

    Eine durch Semikolons getrennte Liste von Typen, die nicht dem Sampling unterzogen werden sollen. Anerkannte Typen sind: Dependency, Event, Exception, PageView, Request, Trace. Alle Telemetriedaten der angegebenen Typen werden übertragen. Für die nicht angegebenen Typen werden Stichproben erstellt.

  • <IncludedTypes>type;type</IncludedTypes>

    Eine durch Semikolons getrennte Liste von Typen, für die Stichproben erstellt werden sollen. Anerkannte Typen sind: Dependency, Event, Exception, PageView, Request, Trace. Für die angegebenen Typen werden Stichproben erstellt. Alle Telemetriedaten der anderen Typen werden immer übertragen.

Entfernen Sie zum Deaktivieren der adaptiven Stichprobenerstellung den bzw. die Knoten AdaptiveSamplingTelemetryProcessor aus ApplicationInsights.config.

Alternative: Konfigurieren der adaptiven Stichprobenerstellung im Code

Anstatt den Stichprobenerstellungsparameter in der .config-Datei festzulegen, können Sie die Werte auch programmgesteuert festlegen.

  1. Entfernen Sie alle Knoten AdaptiveSamplingTelemetryProcessor aus der .config-Datei.

  2. Verwenden Sie den folgenden Codeausschnitt, um die adaptive Stichprobenerstellung zu konfigurieren:

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

    (Informieren Sie sich über Telemetrieprozessoren.)

Sie können die Stichprobenhäufigkeit auch für jeden Telemetrietyp einzeln anpassen oder sogar bestimmte Typen von der Stichprobenerstellung ausschließen:

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

Konfigurieren der adaptiven Stichprobenerstellung für ASP.NET Core-Anwendungen

ASP.NET Core-Anwendungen können im Code oder über die Datei appsettings.json konfiguriert werden. Weitere Informationen finden Sie unter Konfiguration in ASP.NET Core.

Die adaptive Stichprobenerstellung ist standardmäßig für alle ASP.NET Core-Anwendungen aktiviert. Sie können das Verhalten für die Stichprobenentnahme aktivieren oder anpassen.

Deaktivieren der adaptiven Stichprobenerstellung

Die standardmäßige Stichprobenentnahmefunktion kann beim Hinzufügen des Application Insights-Diensts deaktiviert werden.

Fügen Sie ApplicationInsightsServiceOptions hinter der WebApplication.CreateBuilder()-Methode in der Program.cs-Datei hinzu.

var builder = WebApplication.CreateBuilder(args);

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

var app = builder.Build();

Mit dem Code oben wird die adaptive Stichprobenerstellung deaktiviert. Führen Sie die folgenden Schritte aus, um die Stichprobenentnahme mit weiteren Anpassungsoptionen hinzuzufügen.

Konfigurieren von Einstellungen für die Stichprobenerstellung

Verwenden Sie die folgenden Erweiterungsmethoden von TelemetryProcessorChainBuilder zum Anpassen des Verhaltens der Stichprobenentnahme.

Wichtig

Wenn Sie diese Methode zum Konfigurieren der Stichprobenerstellung verwenden, vergewissern Sie sich, dass die Eigenschaft aiOptions.EnableAdaptiveSampling beim Aufrufen von AddApplicationInsightsTelemetry() auf false festgelegt ist. Nachdem Sie diese Änderung vorgenommen haben, müssen Sie die Anweisungen im folgenden Codeblock genau befolgen, um die adaptive Stichprobenerstellung mit Ihren Anpassungen erneut zu aktivieren. Andernfalls kann es zu einer übermäßigen Datenerfassung kommen. Testen Sie nach Änderungen immer die Einstellungen für die Stichprobenerstellung, und legen Sie eine entsprechende tägliche Datenobergrenze fest, um Ihre Kosten zu kontrollieren.

using Microsoft.ApplicationInsights.AspNetCore.Extensions;
using Microsoft.ApplicationInsights.Extensibility;

var builder = WebApplication.CreateBuilder(args);

builder.Services.Configure<TelemetryConfiguration>(telemetryConfiguration =>
{
   var telemetryProcessorChainBuilder = telemetryConfiguration.DefaultTelemetrySink.TelemetryProcessorChainBuilder;

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

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

   telemetryProcessorChainBuilder.Build();
});

builder.Services.AddApplicationInsightsTelemetry(new ApplicationInsightsServiceOptions
{
   EnableAdaptiveSampling = false,
});

var app = builder.Build();

Sie können weitere Einstellungen für die Stichprobenentnahme mithilfe der SamplingPercentageEstimatorSettings-Klasse anpassen:

using Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation;

telemetryProcessorChainBuilder.UseAdaptiveSampling(new SamplingPercentageEstimatorSettings
{
     MinSamplingPercentage = 0.01,
     MaxSamplingPercentage = 100,
     MaxTelemetryItemsPerSecond = 5
 }, null, excludedTypes: "Dependency"); 

Konfigurieren der adaptiven Stichprobenerstellung für Azure Functions

Folgen Sie den Anweisungen auf dieser Seite, um die adaptive Stichprobenerstellung für Apps zu konfigurieren, die in Azure Functions ausgeführt werden.

Stichprobenerstellung mit festem Prozentsatz

Bei der Stichprobenerstellung mit festem Prozentsatz wird der Datenverkehr verringert, der von Ihren Webservern und Webbrowsern gesendet wird. Im Gegensatz zur adaptiven Stichprobenerstellung werden die Telemetriedaten nach einem von Ihnen festgelegten Prozentsatz verringert. Die Stichprobenerstellung mit festem Prozentsatz ist für ASP.NET-, ASP.NET Core-, Java- und Python-Anwendungen verfügbar.

Wie bei anderen Techniken behält es auch verwandte Elemente bei. Es synchronisiert auch das Client- und Server-Sampling, sodass zugehörige Elemente beibehalten werden. Wenn Sie sich beispielsweise einen Seitenaufruf in der Suche ansehen, können Sie die zugehörigen Serveranforderungen finden.

In Metrik-Explorer werden Raten wie Anzahl von Anforderungen und Ausnahmen mit einem Faktor multipliziert, um die Stichprobenrate zu kompensieren, damit sie so genau wie möglich sind.

Konfigurieren der Stichprobenerstellung mit festem Prozentsatz für ASP.NET-Anwendungen

  1. Deaktivieren der adaptiven Stichprobenerstellung: Entfernen Sie in ApplicationInsights.config den Knoten AdaptiveSamplingTelemetryProcessor, oder kommentieren Sie ihn aus.

    <TelemetryProcessors>
        <!-- Disabled adaptive sampling:
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
            <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
        </Add>
        -->
    
  2. Aktivieren Sie das Modul für die Stichprobenerstellung mit festem Prozentsatz. Fügen Sie in ApplicationInsights.config den folgenden Codeausschnitt hinzu:

    In diesem Beispiel ist SamplingPercentage 20, sodass von 20 % aller Elemente eine Stichprobe erstellt wird. Werte im Metrik-Explorer werden zum Ausgleich mit (100/20) = 5 multipliziert.

    <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>20</SamplingPercentage>
        </Add>
    </TelemetryProcessors>
    

    Anstatt den Stichprobenerstellungsparameter in der ApplicationInsights.config-Datei festzulegen, können Sie die Werte auch programmgesteuert festlegen:

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

    (Informieren Sie sich über Telemetrieprozessoren.)

Konfigurieren der Stichprobenerstellung mit festem Prozentsatz für ASP.NET Core-Anwendungen

  1. Deaktivieren der adaptiven Stichprobenerstellung

    Änderungen können hinter der WebApplication.CreateBuilder()-Methode mittels ApplicationInsightsServiceOptions vorgenommen werden:

    var builder = WebApplication.CreateBuilder(args);
    
    var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
    aiOptions.EnableAdaptiveSampling = false;
    builder.Services.AddApplicationInsightsTelemetry(aiOptions);
    
    var app = builder.Build();
    
  2. Aktivieren des Moduls für die Stichprobenentnahme mit fester Häufigkeit

    Änderungen können hinter der WebApplication.CreateBuilder()-Methode vorgenommen werden:

    var builder = WebApplication.CreateBuilder(args);
    
    builder.Services.Configure<TelemetryConfiguration>(telemetryConfiguration =>
    {
        var builder = telemetryConfiguration.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
    
        // Using fixed rate sampling
        double fixedSamplingPercentage = 10;
        builder.UseSampling(fixedSamplingPercentage);
        builder.Build();
    });
    
    builder.Services.AddApplicationInsightsTelemetry(new ApplicationInsightsServiceOptions
    {
        EnableAdaptiveSampling = false,
    });
    
    var app = builder.Build(); 
    

Konfigurieren der Außerkraftsetzung beim Sampling und des Samplings mit fester Rate für Java-Anwendungen

Standardmäßig ist bei der automatischen Java-Instrumentierung und im Java SDK kein Sampling aktiviert. Derzeit werden die automatische Java-Instrumentierung, die Außerkraftsetzung des Samplings und das Sampling mit fester Rate unterstützt. Adaptives Sampling wird in Java nicht unterstützt.

Konfigurieren der automatischen Java-Instrumentierung

Hinweis

Für den Prozentsatz der Stichprobenerstellung wählen Sie einen Prozentsatz, der sich als Bruch darstellen lässt (100/N, wobei N eine Ganzzahl ist). Andere Werte werden bei der Stichprobenerstellung gegenwärtig nicht unterstützt.

Konfigurieren der Stichprobenerstellung mit festem Prozentsatz für OpenCensus Python-Anwendungen

Instrumentieren Sie Ihre Anwendung mit der neuesten Version von OpenCensus Azure Monitor Exporters.

Hinweis

Die Stichprobenentnahme mit festem Prozentsatz ist für das Exportprogramm für Metriken nicht verfügbar. Das bedeutet, dass benutzerdefinierte Metriken die einzigen Arten von Telemetriedaten sind, bei denen eine Stichprobenentnahme NICHT konfiguriert werden kann. Das Exportprogramm für Metriken sendet alle Telemetriedaten, die es nachverfolgt.

Stichprobenentnahme mit festem Prozentsatz für die Ablaufverfolgung

Sie können als Teil Ihrer Tracer-Konfiguration ein sampler angeben. Wenn keine explizite Stichprobe angegeben wird, wird der ProbabilitySampler standardmäßig verwendet. Der ProbabilitySampler würde standardmäßig eine Rate von 1/10000 verwenden, was bedeutet, dass eine von 10 000 Anforderungen an Application Insights gesendet wird. Wenn Sie eine Rate für die Stichprobenentnahme angeben möchten, lesen Sie die folgenden Details.

Stellen Sie zum Angeben der Stichprobenhäufigkeit sicher, dass über Ihren Tracer ein Sampler mit einer Stichprobenhäufigkeit zwischen 0,0 und 1,0 (einschließlich) angegeben wird. Eine Rate für die Stichprobenentnahme von 1,0 steht für 100 %, was bedeutet, dass Ihre gesamten Anforderungen als Telemetriedaten an Application Insights gesendet werden.

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

Stichprobenentnahme mit festem Prozentsatz für Protokolle

Sie können die Stichprobenentnahme mit festem Prozentsatz für AzureLogHandler konfigurieren, indem Sie das optionale Argument logging_sampling_rate ändern. Wenn kein Argument angegeben wird, wird eine Rate für die Stichprobenentnahme von 1,0 verwendet. Eine Rate für die Stichprobenentnahme von 1,0 steht für 100 %, was bedeutet, dass Ihre gesamten Anforderungen als Telemetriedaten an Application Insights gesendet werden.

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

Konfigurieren der Stichprobenerstellung mit festem Prozentsatz für Webseiten mit JavaScript

JavaScript-basierte Webseiten können für die Verwendung von Application Insights konfiguriert werden. Telemetriedaten werden von der Clientanwendung gesendet, die im Browser des Benutzers ausgeführt wird, und die Seiten können von jedem beliebigen Server gehostet werden.

Ändern Sie beim Konfigurieren Ihrer JavaScript-basierten Webseiten für Application Insights den JavaScript-Codeausschnitt, den Sie vom Application Insights-Portal erhalten.

Tipp

Bei ASP.NET-Apps mit enthaltenem JavaScript wird der Codeausschnitt normalerweise in _Layout.cshtml eingefügt.

Fügen Sie vor dem Instrumentierungsschlüssel eine Zeile wie samplingPercentage: 10, ein:

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

Hinweis

Am 31. März 2025 wird der Support für die auf Instrumentierungsschlüsseln basierende Erfassung eingestellt. Die Erfassung von Instrumentierungsschlüsseln funktioniert zwar weiterhin, wir stellen jedoch keine Updates und keinen Support mehr für das Feature bereit. Wechseln Sie zu Verbindungszeichenfolgen, damit Sie neue Funktionen nutzen können.

Für den Prozentsatz der Stichprobenerstellung wählen Sie einen Prozentsatz, der sich als Bruch darstellen lässt (100/N, wobei N eine Ganzzahl ist). Andere Werte werden bei der Stichprobenerstellung gegenwärtig nicht unterstützt.

Koordinieren der serverseitigen und clientseitigen Stichprobenerstellung

Das clientseitige JavaScript-SDK nimmt mit dem serverseitigen SDK an Stichproben mit fester Rate teil. Die instrumentierten Seiten senden clientseitige Telemetriedaten nur vom gleichen Benutzer, für den das serverseitige SDK die Entscheidung zum Einschließen in die Stichprobenentnahme getroffen hat. Mithilfe dieser Logik wird die Integrität der Benutzersitzungen für client- und serverseitige Anwendungen sichergestellt. So können Sie für ein bestimmtes Telemetrieelement in Application Insights nach allen anderen Telemetrieelementen für den jeweiligen Benutzer oder die jeweilige Sitzung suchen. Außerdem können Sie in Search zwischen den verwandten Seitenaufrufen und Anforderungen navigieren.

Falls Ihre client- und serverseitigen Telemetriedaten keine koordinierten Stichproben aufweisen:

  • Überprüfen Sie, ob Sie die Stichprobenerstellung sowohl auf dem Server als auch auf dem Client aktiviert haben.
  • Stellen Sie sicher, dass Sie auf Client und Server denselben Prozentsatz für die Stichprobenerstellung festgelegt haben.
  • Stellen Sie sicher, dass die SDK-Version 2.0 oder höher ist.

Erfassungs-Stichprobenerstellung

Die Erfassungs-Stichprobenerstellung erfolgt an dem Punkt, an dem die Telemetriedaten von Ihren Webservern, Browsern und Geräten beim Application Insights-Dienstendpunkt eingehen. Diese Methode führt nicht zu einer Verringerung der Telemetriedaten, die von Ihrer App gesendet werden, sie verringert jedoch die Datenmenge, die von Application Insights verarbeitet und beibehalten (und somit in Rechnung gestellt) wird.

Verwenden Sie diese Art der Stichprobenerstellung, wenn Ihre App häufig das monatliche Kontingent überschreitet und Sie keine der SDK-basierten Formen der Stichprobenerstellung verwenden können.

Legen Sie die Samplingrate auf der Seite „Nutzung und geschätzte Kosten“ fest:

Wählen Sie im Bereich „Übersicht“ der Anwendung „Einstellungen“, „Kontingent“, „Stichproben“, wählen Sie dann eine Stichprobenhäufigkeit aus, und klicken Sie auf „Aktualisieren“.

Wie bei den anderen Methoden für die Stichprobenerstellung behält der Algorithmus zugehörige Telemetrieelemente bei. So sind Sie beispielsweise in der Lage, bei der Untersuchung der Telemetriedaten in Cognitive Search die zu einer bestimmten Ausnahme gehörende Anforderung zu ermitteln. Metrikwerte wie z. B. die Anforderungs- und Ausnahmerate werden korrekt beibehalten.

Durch die Stichprobenentnahme werden bestimmte Datenpunkte verworfen, sodass sie in allen Application Insights-Features wie dem fortlaufenden Export nicht verfügbar sind.

Die Erfassungs-Stichprobenerstellung funktioniert nicht zusammen mit adaptiven Stichprobenentnahmen oder solchen mit fester Rate. Die adaptive Stichprobenerstellung wird automatisch mit dem ASP.NET-SDK, dem ASP.NET Core-SDK, in Azure App Service oder mit dem Application Insights-Agent aktiviert. Wenn der Application Insights-Dienstendpunkt Telemetriedaten empfängt und eine Rate für die Stichprobenentnahme unter 100 % erkennt (was auf aktive Stichprobenentnahme hindeutet), ignoriert er jede festgelegte Rate für die Erfassungs-Stichprobenerstellung.

Warnung

Der auf der Portalkachel angezeigte Wert gibt den Wert an, den Sie für die Erfassungs-Stichprobenerstellung festgelegt haben. Er steht nicht für die tatsächliche Stichprobenhäufigkeit, wenn eine beliebige Art von SDK-Stichprobenerstellung (adaptiv oder mit festem Prozentsatz) ausgeführt wird.

Welche Art der Stichprobenerstellung sollte ich verwenden?

Verwenden Sie die Erfassungs-Stichprobenerstellung in folgenden Fällen:

  • Sie nutzen häufig Ihr monatliches Kontingent an Telemetriedaten.
  • Sie empfangen zu viele Telemetriedaten von den Webbrowsern Ihrer Benutzer.
  • Sie verwenden eine SDK-Version, die keine Stichprobenentnahme unterstützt – beispielsweise ASP.NET-Versionen vor 2.0.

Verwenden Sie die Stichprobenerstellung mit festem Prozentsatz unter folgenden Bedingungen:

  • Sie benötigen eine synchronisiertes Stichprobenentnahme zwischen Client und Server, um zwischen verwandten Ereignissen zu navigieren. Beispiel: Seitenansichten und HTTP-Anforderungen in Cognitive Search beim Untersuchen von Ereignissen.
  • Sie sind sich sicher, welcher Stichproben-Prozentsatz für Ihre App angemessen ist. Er sollte hoch genug sein, um genaue Metriken zu erhalten, aber so tief liegen, dass Sie Ihr Tarifkontingent und die Drosselungslimits einhalten.

Verwendung der adaptiven Stichprobenerstellung:

Wenn die Bedingungen für die Verwendung der anderen Stichprobenerstellungsarten nicht erfüllt sind, empfiehlt sich die Verwendung der adaptiven Stichprobenerstellung. Diese Einstellung ist im ASP.NET/ASP.NET Core SDK standardmäßig aktiviert. Der Datenverkehr wird erst ab einer bestimmten Mindestrate verringert. Daher werden bei wenig genutzte Websites wahrscheinlich gar keine Stichproben erstellt.

Erkennen, ob die Stichprobenerstellung ausgeführt wird

Verwenden Sie eine Analytics-Abfrage, um die Rate für die Stichprobenentnahme zu finden.

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

Wenn Sie sehen, dass RetainedPercentage für einen beliebigen Typ kleiner als 100 ist, werden für diesen Telemetrietyp Stichproben erstellt.

Wichtig

Application Insights erstellt bei keiner Methode der Stichprobenerstellung Stichproben für die Telemetrietypen „Sitzung“, „Metriken“ (einschließlich benutzerdefinierter Metriken) und „Leistungsindikatoren“. Diese Telemetrietypen sind immer von der Stichprobenerstellung ausgeschlossen, da eine Reduzierung der Genauigkeit bei ihnen nicht wünschenswert ist.

Protokollabfragegenauigkeit und hohe Abtastrate

Wenn die Anwendung hochskaliert wird, kann sie Dutzende, Hunderte oder Tausende von Arbeitselementen pro Sekunde verarbeiten. Die Protokollierung eines Ereignisses für jedes von ihnen ist weder ressourcen- noch kosteneffektiv. Für Application Insights werden Stichproben entnommen, um sich flexibel an das wachsende Telemetrievolumen anzupassen und die Ressourcennutzung und -kosten zu kontrollieren.

Warnung

Die End-to-End-Ansichtsintegrität eines verteilten Vorgangs kann beeinträchtigt werden, wenn für eine Anwendung im verteilten Vorgang die Stichprobenentnahme aktiviert wird. Von jeder Anwendung in einem verteilten Vorgang werden unterschiedliche Entscheidungen zur Stichprobenentnahme getroffen. Daher werden Telemetriedaten für eine Vorgangs-ID möglicherweise von einer Anwendung gespeichert, während andere Anwendungen u. U festlegen, dass für die Telemetriedaten mit derselben Vorgangs-ID keine Stichprobenentnahme erfolgt.

Mit steigenden Raten für die Stichprobenentnahme sinkt die Genauigkeit protokollbasierter Abfragen, und sie werden aufgebläht. Dies wirkt sich nur auf die Genauigkeit protokollbasierter Abfragen aus, wenn die Stichprobenentnahme aktiviert ist und die Stichprobenraten in einem höheren Bereich (~ 60 %) befinden. Die Auswirkungen variieren je nach Telemetriedatentypen, Telemetriedatenanzahl pro Vorgang und anderen Faktoren.

SDKs verwenden voraggregierte Metriken, um Probleme zu lösen, die durch die Stichprobenentnahme verursacht werden. Weitere Informationen zu diesen Metriken finden Sie unter Azure Application Insights – Azure Monitor | Microsoft-Dokumentation. Die SDKs identifizieren relevante Eigenschaften protokollierter Daten und extrahieren Statistiken vor der Stichprobenentnahme. Um den Ressourceneinsatz und die Kosten zu minimieren, werden Metriken aggregiert. Dieser Prozess führt zu einigen wenigen Metrik-Telemetriedatenelementen pro Minute und nicht zu Tausenden von Ereignis-Telemetriedatenelementen. Diese Metriken können z. B. „diese Web-App verarbeitete 25 Anforderungen“ an das MDM-Konto melden, mit einem itemCount von 100 im gesendeten Anforderungsdatensatz der Telemetriedaten. Diese voraggregierten Metriken stellen genaue Zahlen bereit und sind auch dann zuverlässig, wenn sich die Stichprobenentnahme auf protokollbasierte Abfrageergebnisse auswirkt. Sie können sie im Bereich „Metriken“ des Application Insights-Portals anzeigen.

Häufig gestellte Fragen

Beeinflusst das Sampling die Alarmierungsgenauigkeit?

  • Ja. Warnmeldungen können nur bei Stichprobendaten ausgelöst werden. Eine aggressive Filterung kann dazu führen, dass Warnungen nicht wie erwartet ausgelöst werden.

Hinweis

Stichproben werden nicht auf Metriken angewendet, aber Metriken können aus Stichprobendaten abgeleitet werden. Auf diese Weise kann das Sampling die Genauigkeit der Alarmierung indirekt beeinflussen.

Was ist das Standardverhalten für die Stichprobenerstellung im ASP.NET SDK und ASP.NET Core SDK?

  • Wenn Sie eine der aktuellen Versionen des obigen SDK verwenden, ist die adaptive Stichprobenerstellung standardmäßig mit fünf Telemetriedatenelementen pro Sekunde aktiviert. Standardmäßig fügt das System zwei AdaptiveSamplingTelemetryProcessor-Knoten hinzu: einer enthält den Event-Typ bei der Stichprobenentnahme, während der andere ihn ausschließt. Diese Konfiguration beschränkt Telemetriedaten auf fünf Event-Typenelemente und fünf Elemente aller anderen Typen kombiniert, wobei sichergestellt wird, dass Stichproben für Events getrennt von anderen Telemetriedatentypen erstellt werden.

Verwenden Sie die Beispiele weiter oben auf dieser Seite, um das Standardverhalten zu ändern.

Können mehrmals Stichproben für Telemetrieelemente erstellt werden?

  • Nein. „SamplingTelemetryProcessors“ ignorieren Elemente, wenn bereits eine Stichprobe für sie erstellt wurde. Dies gilt auch für die Erfassungs-Stichprobenerstellung, welche keine Stichproben für diejenigen Elemente erstellt, für die bereits im SDK eine Stichprobe erstellt wurde.

Weshalb erfolgt die Stichprobenerstellung nicht einfach nach dem Prinzip „X Prozent jedes Telemetrietyps erfassen“?

  • Diese Methode der Stichprobenerstellung würde bei metrischen Annäherungen eine hohe Genauigkeit bieten, die für Diagnosen entscheidende Korrelation der Diagnosedaten für einzelne Benutzer, Sitzungen und Anforderungen wäre jedoch nicht möglich. Aus diesem Grund funktioniert die Stichprobenentnahme besser mit Richtlinien wie „alle Telemetriedatenelemente für X Prozent der App-Benutzer erfassen“ oder „alle Telemetriedaten für X Prozent der App-Anforderungen erfassen“. Für Telemetrieelemente, die nicht mit den Anforderungen verknüpft sind (z. B. die asynchrone Hintergrundverarbeitung), wird auf den Ansatz „X Prozent aller Elemente für jeden Telemetrietyp erfassen“ zurückgegriffen.

Kann der Prozentsatz für die Stichprobenerstellung im Verlauf der Zeit geändert werden?

  • Ja, bei der adaptiven Stichprobenerstellung wird der Stichproben-Prozentsatz langsam auf Basis des aktuell beobachteten Telemetrievolumens verändert.

Wie kann ich bei einer Stichprobenentnahme mit fester Rate wissen, welcher Prozentsatz für die Stichprobenentnahme für meine App am besten funktioniert?

  • Eine Möglichkeit ist, mit der adaptiven Stichprobenerstellung zu beginnen, herauszufinden, bei welchem Wert sie sich einstellt (siehe die oben gestellt Frage), und dann mit diesem Wert zur Stichprobenerstellung mit festem Prozentsatz zu wechseln.

    Andernfalls müssen Sie raten. Analysieren Sie Ihre aktuelle Nutzung der Telemetriedaten in Application Insights, beobachten Sie ggf. auftretende Drosselungen, und schätzen Sie den Umfang der erfassten Telemetriedaten. In Kombination mit Ihrem ausgewählten Tarif geben diese drei Faktoren Auskunft darüber, um wie viel Sie die Menge der erfassten Telemetriedaten gegebenenfalls reduzieren sollten. Allerdings kann eine Zunahme der Benutzeranzahl oder eine andere Verschiebung in der Menge der Telemetriedaten Ihre Schätzung ungültig werden lassen.

Was geschieht, wenn ich einen zu geringen Prozentsatz für die Stichprobenerstellung konfiguriere?

  • Zu geringe Prozentsätze für die Stichprobenerstellung führen zu einer übermäßige Stichprobenerstellung und wirken sich negativ auf die Genauigkeit der Annäherungen aus, wenn Application Insights versucht, die Visualisierung der Daten für die reduzierte Datenmenge auszugleichen. Ihre Diagnoseerfahrung kann auch negativ betroffen sein, da einige der selten fehlschlagenden oder langsamen Anforderungen aus der Stichprobe ausgeschlossen werden können.

Was geschieht, wenn ich einen zu hohen Prozentsatz für die Stichprobenerstellung konfiguriere?

  • Wenn Sie einen zu hohen Prozentsatz für die Stichprobenerstellung konfigurieren (keine ausreichende Stichprobenerstellung), führt dies zu einer nicht ausreichenden Reduzierung der Menge an erfassten Telemetriedaten. Trotzdem kann es im Zusammenhang mit der Drosselung zum Verlust von Telemetriedaten kommen, und die Kosten für die Nutzung von Application Insights könnten aufgrund von Überschreitungsgebühren höher als von Ihnen geplant sein.

Was geschieht, wenn ich sowohl die Einstellungen „IncludedTypes“ als auch „ExcludedTypes“ konfiguriert habe?

  • Es ist am besten, wenn Sie in Ihrer Konfiguration nicht sowohl ExcludedTypes als auch IncludedTypes einstellen, um Konflikte zu vermeiden und klare Einstellungen für die Telemetrieerfassung sicherzustellen.
  • Telemetrietypen, die unter ExcludedTypes aufgelistet werden, werden ausgeschlossen, selbst wenn sie auch unter den IncludedTypes-Einstellungen festgelegt sind. ExcludedTypes hat Vorrang vor IncludedTypes.

Auf welchen Plattformen kann ich die Stichprobenerstellung verwenden?

  • Die Erfassungs-Stichprobenerstellung kann automatisch für alle Telemetriedaten oberhalb eines bestimmten Volumens auftreten, wenn das SDK keine Stichprobenentnahme durchführt. Diese Konfiguration würde z. B. funktionieren, wenn Sie eine ältere Version des ASP.NET-SDKs oder des Java-SDKs verwenden.
  • Bei Verwendung des aktuellen ASP.NET-SDKs oder des ASP.NET Core-SDKs (gehostet entweder in Azure oder auf Ihrem eigenen Server) erhalten Sie standardmäßig die adaptive Stichprobenerstellung, aber Sie können wie vorgängig beschrieben zur Stichprobenentnahme mit fester Rate wechseln. Bei Stichprobenerstellung mit festem Prozentsatz wird das Browser-SDK automatisch mit stichprobenbezogenen Ereignissen synchronisiert.
  • Bei Verwendung des aktuellen Java-Agents können Sie applicationinsights.json konfigurieren, um die Stichprobenerstellung mit festem Prozentsatz zu aktivieren. (Für das Java SDK muss ApplicationInsights.xml konfiguriert werden.) Stichprobenerstellung ist standardmäßig deaktiviert. Bei Stichprobenerstellung mit festem Prozentsatz werden das Browser-SDK und der Server automatisch mit stichprobenbezogenen Ereignissen synchronisiert.

Es gibt einige seltene Ereignisse, die ich immer untersuchen möchte. Wie kann ich sie erhalten, ohne das Stichprobenmodul zu durchlaufen?

  • Die beste Möglichkeit, bestimmte Ereignisse immer anzuzeigen, besteht darin, einen benutzerdefinierten TelemetryInitializer zu schreiben, der den SamplingPercentage auf 100 für das Telemetriedatenelement festlegt, das Sie beibehalten möchten, wie im folgenden Beispiel gezeigt. Initialisierer werden garantiert vor Telemetriedatenprozessoren (einschließlich Stichprobenentnahme) ausgeführt, sodass sichergestellt ist, dass alle Verfahren zur Stichprobenentnahme dieses Element bei jeglichen Überlegungen zur Stichprobenentnahme ignorieren. Benutzerdefinierte Telemetrieinitialisierer sind im ASP.NET SDK, im ASP.NET Core SDK, im JavaScript SDK und im Java SDK verfügbar. Sie können beispielsweise einen Telemetrieinitialisierer mithilfe des ASP.NET SDK konfigurieren:

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

Ältere SDK-Versionen

Die adaptive Stichprobenerstellung ist für das Application Insights SDK für ASP.NET v2.0.0-beta3 und höher sowie für das Microsoft.ApplicationInsights.AspNetCore SDK v2.2.0-beta1 und höher verfügbar und standardmäßig aktiviert.

Die Stichprobenerstellung mit festem Prozentsatz ist ein Feature im ASP.NET SDK ab Version 2.0.0 und Java SDK ab Version 2.0.1.

Vor v2.5.0-beta2 des ASP.NET-SDKs und v2.2.0-Beta3 des ASP.NET Core-SDKs waren Entscheidungen zur Stichprobenentnahme für Anwendungen, die „Benutzer“ definieren (wie die meisten Webanwendungen), vom Hash der Benutzer-ID abhängig. Bei Anwendungen, die keine Benutzer definieren (z. B. Webdienste), basierte die Entscheidung auf der Vorgangs-ID der Anforderung. Aktuelle Versionen sowohl der ASP.NET- als auch der ASP.NET Core-SDKs verwenden jetzt die Vorgangs-ID für die Entscheidungen zur Stichprobenentnahme.

Nächste Schritte