Aktivera telemetri för funktionsflaggor i ett ASP.NET Core-program

I den här självstudien använder du telemetri i ditt ASP.NET Core-program för att spåra utvärderingar av funktionsflaggor, samt anpassade händelser. Med telemetri kan du fatta välgrundade beslut om din strategi för funktionshantering. Du använder funktionsflaggan med telemetri aktiverad som skapats i översikten för att aktivera telemetri för funktionsflaggor. Innan du fortsätter måste du skapa en funktionsflagga med namnet Greeting (Hälsning ) i konfigurationsarkivet med telemetri aktiverat. Den här guiden bygger vidare på guiden om hur man använder variantfunktioner och flaggor i ett ASP.NET Core-program.

Förutsättningar

Lägga till telemetri i ditt ASP.NET Core-program

  1. Lägg till den senaste versionen av Application Insights-paketet.

    dotnet add package Microsoft.ApplicationInsights.AspNetCore
    dotnet add package Microsoft.FeatureManagement.Telemetry.ApplicationInsights
    
  2. Lägg till Application Insights-telemetritjänster i containern. Lägg till följande kod efter raden som lägger till Azure App Configuration.

    // Add Application Insights telemetry
    builder.Services.AddApplicationInsightsTelemetry(options =>
    {
        options.ConnectionString = builder.Configuration.GetConnectionString("ApplicationInsights");
    });
    
  3. Uppdatera funktionshanteringstjänsterna för att aktivera telemetripublicering. Ändra den befintliga funktionshanteringskonfigurationen så att den inkluderar anropet AddApplicationInsightsTelemetry() .

    // Add Azure App Configuration and feature management services to the container.
    builder.Services.AddAzureAppConfiguration()
        .AddFeatureManagement()
        .WithTargeting()
        .AddApplicationInsightsTelemetry();
    
  4. Lägg till målmellanprogrammet för att associera utgående händelser med mål-ID:t. Lägg till följande kod efter raden app.UseAzureAppConfiguration();.

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

Spåra anpassade händelser

Nu ska du skapa en anpassad händelse för att spåra när användare gillar ett citat. Du skapar en backend-ändpunkt för att hantera åtgärden like och spåra den med hjälp av Application Insights.

  1. I Index.cshtml.cs lägger du till en using-instruktion för Application Insights.

    using Microsoft.ApplicationInsights;
    
  2. Justera IndexModel för att få en TelemetryClient.

    public class IndexModel(
            TelemetryClient telemetry,
            ILogger<IndexModel> logger,
            IVariantFeatureManagerSnapshot featureManager
        ) : PageModel
    {
        private readonly TelemetryClient _telemetry = telemetry;
    
  3. Lägg dessutom till en OnPostLike()-funktion som spårar en händelse med namnet "Gillad" när slutpunkten används.

    public IActionResult OnPostLike()
    {
        _telemetry.TrackEvent("Liked");
        return new JsonResult(new { success = true });
    }
    
  4. I Index.cshtml lägger du till en antiforgerytoken före skripttaggen.

    <form method="post" style="display:none;">
        @Html.AntiForgeryToken()
    </form>
    
    <script>
        ...
    
  5. Justera funktionen heartClicked med följande innehåll.

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

    Metoden OnPostLike hanterar åtgärden like. Den använder TelemetryClient för att spåra en anpassad "Gillad"-händelse när en användare klickar på hjärtknappen.

Skapa och köra appen

  1. Application Insights kräver en anslutningssträng för att ansluta till din Application Insights-resurs. ConnectionStrings:ApplicationInsights Ange som en användarhemlighet.

    dotnet user-secrets set ConnectionStrings:ApplicationInsights "<your-Application-Insights-Connection-String>"
    
  2. När du har angett miljövariabeln startar du om terminalen och återskapar och kör programmet.

    dotnet build
    dotnet run
    

Samla in telemetri

Distribuera ditt program för att börja samla in telemetri från dina användare. Om du vill testa dess funktioner kan du simulera användaraktivitet genom att skapa många testanvändare. Varje användare kommer att uppleva någon av hälsningsmeddelandevarianterna, och de kan interagera med programmet genom att klicka på hjärtknappen för att gilla ett citattecken. När användarbasen växer kan du övervaka den ökande mängden telemetridata som samlas in i Azure App Configuration. Dessutom kan du öka detaljnivån i data för att analysera hur varje variant av funktionsflaggan påverkar användarens beteende.

Ytterligare resurser