Condividi tramite


Abilitare la telemetria per i flag di funzionalità in un'applicazione ASP.NET Core

In questa esercitazione, verranno utilizzati i dati di telemetria nell'applicazione ASP.NET Core per tenere traccia delle valutazioni dei flag di funzionalità e degli eventi personalizzati. La telemetria consente di prendere decisioni informate sulla strategia di gestione delle funzionalità. Il flag di funzionalità viene utilizzato con i dati di telemetria abilitati creati nella panoramica per abilitare i dati di telemetria per i flag di funzionalità. Prima di procedere, assicurarsi di creare un feature flag denominato Greeting nell'archivio di configurazione con i dati di telemetria abilitati. Questa esercitazione si basa sull'esercitazione per l'uso di flag di funzionalità varianti in un'applicazione ASP.NET Core.

Prerequisiti

Aggiungere dati di telemetria all'applicazione ASP.NET Core

  1. Aggiungere la versione più recente del pacchetto di Application Insights.

    dotnet add package Microsoft.ApplicationInsights.AspNetCore
    dotnet add package Microsoft.FeatureManagement.Telemetry.ApplicationInsights
    
  2. Aggiungere servizi di telemetria di Application Insights al contenitore. Aggiungere il codice seguente dopo la riga che aggiunge Azure App Configuration.

    // Add Application Insights telemetry
    builder.Services.AddApplicationInsightsTelemetry(options =>
    {
        options.ConnectionString = builder.Configuration.GetConnectionString("ApplicationInsights");
    });
    
  3. Aggiornare i servizi di gestione delle funzionalità per abilitare la pubblicazione dei dati di telemetria. Modificare la configurazione di gestione delle funzionalità esistente per includere la AddApplicationInsightsTelemetry() chiamata.

    // Add Azure App Configuration and feature management services to the container.
    builder.Services.AddAzureAppConfiguration()
        .AddFeatureManagement()
        .WithTargeting()
        .AddApplicationInsightsTelemetry();
    
  4. Aggiungere il middleware di destinazione per associare gli eventi in uscita all'ID di destinazione. Aggiungere il codice seguente dopo la riga app.UseAzureAppConfiguration();.

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

Tenere traccia degli eventi personalizzati

A questo punto si aggiungerà un evento personalizzato per tenere traccia quando gli utenti mettono mi piace a una citazione. Crea un endpoint backend per gestire l'azione di like e tracciarla usando Application Insights.

  1. In Index.cshtml.cs, aggiungere un'istruzione using per Application Insights.

    using Microsoft.ApplicationInsights;
    
  2. Regolare il IndexModel per ottenere un TelemetryClient.

    public class IndexModel(
            TelemetryClient telemetry,
            ILogger<IndexModel> logger,
            IVariantFeatureManagerSnapshot featureManager
        ) : PageModel
    {
        private readonly TelemetryClient _telemetry = telemetry;
    
  3. Aggiungere inoltre una funzione OnPostLike(), tenendo traccia di un evento denominato "Liked" quando viene usato l'endpoint.

    public IActionResult OnPostLike()
    {
        _telemetry.TrackEvent("Liked");
        return new JsonResult(new { success = true });
    }
    
  4. In Index.cshtml, aggiungere un antiforgerytoken prima del tag script.

    <form method="post" style="display:none;">
        @Html.AntiForgeryToken()
    </form>
    
    <script>
        ...
    
  5. Regolare la funzione heartClicked con il contenuto seguente.

    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');
            }
        }
    }
    

    Il metodo OnPostLike gestisce l'azione "like". Utilizza il TelemetryClient per tenere traccia di un evento personalizzato "Mi è piaciuto" quando un utente fa clic sul pulsante a forma di cuore.

Compilare ed eseguire l'app

  1. Application Insights richiede una stringa di connessione per connettersi alla risorsa di Application Insights. Impostare ConnectionStrings:ApplicationInsights come segreto utente.

    dotnet user-secrets set ConnectionStrings:ApplicationInsights "<your-Application-Insights-Connection-String>"
    
  2. Dopo aver impostato la variabile di ambiente, riavviare il terminale e ricompilare ed eseguire l'applicazione.

    dotnet build
    dotnet run
    

Raccogliere i dati di telemetria

Distribuire l'applicazione per iniziare a raccogliere dati di telemetria dagli utenti. Per testare la funzionalità, è possibile simulare l'attività utente creando molti utenti di test. Ogni utente visualizzerà una delle varianti del messaggio di saluto e potrà interagire con l'applicazione cliccando sul pulsante a forma di cuore per mettere 'mi piace' a una citazione. Man mano che la base utente cresce, è possibile monitorare il volume crescente di dati di telemetria raccolti in Configurazione app di Azure. È anche possibile eseguire il drill-down dei dati per analizzare il modo in cui ogni variante del flag di funzionalità influisce sul comportamento dell'utente.

Risorse aggiuntive