Freigeben über


Aktivieren von Telemetrie für Featurekennzeichnungen in einer ASP.NET Core-Anwendung

In diesem Lernprogramm verwenden Sie Telemetrie in Ihrer ASP.NET Core-Anwendung, um Featurekennzeichnungsbewertungen und benutzerdefinierte Ereignisse nachzuverfolgen. Telemetrie ermöglicht Es Ihnen, fundierte Entscheidungen über Ihre Featureverwaltungsstrategie zu treffen. Sie verwenden das Feature-Flag mit aktivierter Telemetrie, das in der Übersicht zur Aktivierung von Telemetrie für Feature-Flags erstellt wurde. Bevor Sie fortfahren, stellen Sie sicher, dass Sie einen Feature-Flag namens „Begrüßung“ in Ihrem Konfigurationsspeicher erstellen, wobei die Telemetrie aktiviert ist. Dieses Lernprogramm baut auf dem Lernprogramm für die Verwendung von Variantenfeature-Flags in einer ASP.NET Core-Anwendung auf.

Voraussetzungen

Hinzufügen von Telemetrie zu Ihrer ASP.NET Core-Anwendung

  1. Fügen Sie die neueste Version des Application Insights-Pakets hinzu.

    dotnet add package Microsoft.ApplicationInsights.AspNetCore
    dotnet add package Microsoft.FeatureManagement.Telemetry.ApplicationInsights
    
  2. Fügen Sie dem Container Application Insights-Telemetriedienste hinzu. Fügen Sie nach der Zeile, die Azure App-Konfiguration hinzufügt, den folgenden Code hinzu.

    // Add Application Insights telemetry
    builder.Services.AddApplicationInsightsTelemetry(options =>
    {
        options.ConnectionString = builder.Configuration.GetConnectionString("ApplicationInsights");
    });
    
  3. Aktualisieren Sie die Featureverwaltungsdienste, um die Telemetrieveröffentlichung zu aktivieren. Ändern Sie die vorhandene Featureverwaltungskonfiguration so, dass sie den AddApplicationInsightsTelemetry() Aufruf enthält.

    // Add Azure App Configuration and feature management services to the container.
    builder.Services.AddAzureAppConfiguration()
        .AddFeatureManagement()
        .WithTargeting()
        .AddApplicationInsightsTelemetry();
    
  4. Fügen Sie die Targeting-Middleware hinzu, um ausgehende Ereignisse mit der Targeting-ID zu verknüpfen. Fügen Sie den folgenden Code nach der Zeile app.UseAzureAppConfiguration();hinzu.

    // Use targeting middleware to associate events with the targeting ID
    app.UseMiddleware<TargetingHttpContextMiddleware>();
    

Nachverfolgen benutzerdefinierter Ereignisse

Jetzt fügen Sie ein benutzerdefiniertes Ereignis hinzu, um nachzuverfolgen, wann Benutzern ein Zitat gefällt. Sie erstellen einen Backend-Endpunkt, um die Like-Aktion zu verarbeiten und sie mithilfe von Application Insights nachzuverfolgen.

  1. Fügen Sie eine using-Anweisung für Application Insights in Index.cshtml.cs hinzu.

    using Microsoft.ApplicationInsights;
    
  2. Passen Sie die IndexModel an, um ein TelemetryClient zu erhalten.

    public class IndexModel(
            TelemetryClient telemetry,
            ILogger<IndexModel> logger,
            IVariantFeatureManagerSnapshot featureManager
        ) : PageModel
    {
        private readonly TelemetryClient _telemetry = telemetry;
    
  3. Fügen Sie außerdem eine OnPostLike()-Funktion hinzu, und verfolgen Sie ein Ereignis namens "Gefällt mir", wenn der Endpunkt verwendet wird.

    public IActionResult OnPostLike()
    {
        _telemetry.TrackEvent("Liked");
        return new JsonResult(new { success = true });
    }
    
  4. Fügen Sie in Index.cshtml vor dem Skript-Tag ein Anti-Forgery-Token hinzu.

    <form method="post" style="display:none;">
        @Html.AntiForgeryToken()
    </form>
    
    <script>
        ...
    
  5. Passen Sie die heartClicked-Funktion mit dem folgenden Inhalt an.

    async function heartClicked(button) {
        const response = await fetch(`?handler=Like`, { method: "POST" });
        if (response.ok) {
            const data = await response.json();
            if (data.success) {
                var icon = button.querySelector('i');
                icon.classList.toggle('far');
                icon.classList.toggle('fas');
            }
        }
    }
    

    Die OnPostLike-Methode behandelt die "Gefällt mir"-Aktion. Es nutzt TelemetryClient , um ein benutzerdefiniertes "Gefällt mir"-Ereignis zu verfolgen, wenn ein Benutzer den Herzbutton klickt.

Erstellen Sie die App, und führen Sie sie aus.

  1. Application Insights erfordert eine Verbindungszeichenfolge, um eine Verbindung mit Ihrer Application Insights-Ressource herzustellen. Legen Sie das ConnectionStrings:ApplicationInsights als Benutzergeheimnis fest.

    dotnet user-secrets set ConnectionStrings:ApplicationInsights "<your-Application-Insights-Connection-String>"
    
  2. Starten Sie nach dem Festlegen der Umgebungsvariable das Terminal neu, und erstellen Sie die Anwendung neu, und führen Sie sie aus.

    dotnet build
    dotnet run
    

Telemetrie sammeln

Stellen Sie Ihre Anwendung bereit, um mit der Erfassung von Telemetrie von Ihren Benutzern zu beginnen. Um seine Funktionalität zu testen, können Sie Benutzeraktivitäten simulieren, indem Sie viele Testbenutzer erstellen. Jeder Benutzer wird eine der Begrüßungsnachrichtenvarianten erleben, und er kann mit der Anwendung interagieren, indem er auf die Herzschaltfläche klickt, um ein Zitat zu liken. Wenn Ihre Benutzerbasis wächst, können Sie das zunehmende Volumen an Telemetriedaten überwachen, die in der Azure App-Konfiguration gesammelt werden. Darüber hinaus können Sie die Daten vertiefen, um zu analysieren, wie jede Variante des Feature-Flags das Benutzerverhalten beeinflusst.

Weitere Ressourcen