Partilhar via


Ative a telemetria para sinalizadores de funcionalidades numa aplicação ASP.NET Core

Neste tutorial, utiliza a telemetria na sua aplicação ASP.NET Core para acompanhar avaliações de sinalizadores de funcionalidades e eventos personalizados. A telemetria permite-lhe tomar decisões informadas sobre a sua estratégia de gestão de funcionalidades. Utiliza uma indicação de funcionalidade com telemetria ativada, criada na secção de visão geral para ativar a telemetria para indicações de funcionalidade. Antes de prosseguir, certifique-se de criar um flag de funcionalidade chamado Greeting na sua loja de Configuração com a telemetria ativada. Este tutorial baseia-se no tutorial para usar flags de características variantes numa aplicação ASP.NET Core.

Pré-requisitos

Adicione telemetria à sua aplicação ASP.NET Core

  1. Adicione a versão mais recente do pacote Application Insights.

    dotnet add package Microsoft.ApplicationInsights.AspNetCore
    dotnet add package Microsoft.FeatureManagement.Telemetry.ApplicationInsights
    
  2. Adicione serviços de telemetria Application Insights ao contentor. Adicione o seguinte código após a linha que adiciona a Configuração de Aplicações Azure.

    // Add Application Insights telemetry
    builder.Services.AddApplicationInsightsTelemetry(options =>
    {
        options.ConnectionString = builder.Configuration.GetConnectionString("ApplicationInsights");
    });
    
  3. Atualize os serviços de gestão de funcionalidades para permitir a publicação de telemetria. Modificar a configuração existente de gestão de funcionalidades para incluir a chamada AddApplicationInsightsTelemetry().

    // Add Azure App Configuration and feature management services to the container.
    builder.Services.AddAzureAppConfiguration()
        .AddFeatureManagement()
        .WithTargeting()
        .AddApplicationInsightsTelemetry();
    
  4. Adicione o middleware de targeting para associar eventos de saída ao ID de direcionamento. Adicione o seguinte código após a linha app.UseAzureAppConfiguration();.

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

Acompanhar eventos personalizados

Agora vais adicionar um evento personalizado para acompanhar quando os utilizadores gostarem de uma citação. Vais criar um endpoint backend para gerir a ação de gostar e acompanhá-la usando o Application Insights.

  1. Em Index.cshtml.cs, adicione uma declaração using para a Application Insights.

    using Microsoft.ApplicationInsights;
    
  2. Ajuste o IndexModel para obter um TelemetryClient.

    public class IndexModel(
            TelemetryClient telemetry,
            ILogger<IndexModel> logger,
            IVariantFeatureManagerSnapshot featureManager
        ) : PageModel
    {
        private readonly TelemetryClient _telemetry = telemetry;
    
  3. Além disso, adicione uma função OnPostLike(), que regista um evento denominado "Gosto" quando o endpoint é utilizado.

    public IActionResult OnPostLike()
    {
        _telemetry.TrackEvent("Liked");
        return new JsonResult(new { success = true });
    }
    
  4. No Index.cshtml, adicione um token anti-falsificação antes da tag de script.

    <form method="post" style="display:none;">
        @Html.AntiForgeryToken()
    </form>
    
    <script>
        ...
    
  5. Ajuste a função heartClicked com o seguinte conteúdo.

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

    O OnPostLike método trata da mesma ação. Utiliza TelemetryClient para acompanhar um evento personalizado de "Gostar" quando um utilizador clica no botão de coração.

Criar e executar o aplicativo

  1. A Application Insights requer uma string de conexão para se conectar ao seu recurso do Application Insights. Defina o ConnectionStrings:ApplicationInsights como um segredo de utilizador.

    dotnet user-secrets set ConnectionStrings:ApplicationInsights "<your-Application-Insights-Connection-String>"
    
  2. Depois de definires a variável de ambiente, reinicia o terminal, reconstrói e executa a aplicação.

    dotnet build
    dotnet run
    

Recolha de telemetria

Implemente a sua aplicação para começar a recolher telemetria dos seus utilizadores. Para testar a sua funcionalidade, pode simular a atividade do utilizador criando muitos utilizadores de teste. Cada utilizador irá experienciar uma das variantes da mensagem de saudação e poderá interagir com a aplicação clicando no botão coração para gostar de uma citação. À medida que a sua base de utilizadores cresce, pode monitorizar o volume crescente de dados de telemetria recolhidos no Azure App Configuration. Além disso, pode aprofundar os dados para analisar como cada variante do flag de funcionalidade influencia o comportamento do utilizador.

Recursos adicionais