Compartir a través de


Habilitación de la telemetría para las marcas de características en una aplicación de ASP.NET Core

En este tutorial, usas la telemetría en tu aplicación ASP.NET Core para realizar un seguimiento de las evaluaciones de banderas de funcionalidades y eventos personalizados. La telemetría permite tomar decisiones fundamentadas sobre la estrategia de administración de funcionalidades. Se utiliza la bandera de función con telemetría habilitada, creada en la visión general para habilitar la telemetría para las banderas de función. Antes de continuar, asegúrese de crear una bandera de funcionalidad denominada Greeting en el almacén de configuración con telemetría habilitada. Este tutorial se basa en el tutorial para usar marcas de características variantes en una aplicación ASP.NET Core.

Prerrequisitos

Incorporación de telemetría a la aplicación ASP.NET Core

  1. Agregue la versión más reciente del paquete de Application Insights.

    dotnet add package Microsoft.ApplicationInsights.AspNetCore
    dotnet add package Microsoft.FeatureManagement.Telemetry.ApplicationInsights
    
  2. Agregue los servicios de telemetría de Application Insights al contenedor. Agregue el código siguiente después de la línea que agrega Azure App Configuration.

    // Add Application Insights telemetry
    builder.Services.AddApplicationInsightsTelemetry(options =>
    {
        options.ConnectionString = builder.Configuration.GetConnectionString("ApplicationInsights");
    });
    
  3. Actualice los servicios de administración de características para habilitar la publicación de telemetría. Modifique la configuración existente de gestión de funciones para incluir la llamada AddApplicationInsightsTelemetry().

    // Add Azure App Configuration and feature management services to the container.
    builder.Services.AddAzureAppConfiguration()
        .AddFeatureManagement()
        .WithTargeting()
        .AddApplicationInsightsTelemetry();
    
  4. Agregue el middleware de direccionamiento para asociar eventos salientes con el ID de direccionamiento. Agregue el código siguiente después de la línea app.UseAzureAppConfiguration();.

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

Seguimiento de eventos personalizados

Ahora agregarás un evento personalizado para realizar un seguimiento de cuando a los usuarios les gusta una cita. Creará un punto de conexión del back-end para gestionar la acción de "me gusta" y realizar un seguimiento con Application Insights.

  1. En Index.cshtml.cs, agregue una instrucción using para Application Insights.

    using Microsoft.ApplicationInsights;
    
  2. Ajuste el IndexModel para obtener un TelemetryClient.

    public class IndexModel(
            TelemetryClient telemetry,
            ILogger<IndexModel> logger,
            IVariantFeatureManagerSnapshot featureManager
        ) : PageModel
    {
        private readonly TelemetryClient _telemetry = telemetry;
    
  3. Además, agregue una función OnPostLike(), que realice un seguimiento de un evento denominado "Liked" cuando se utiliza el endpoint.

    public IActionResult OnPostLike()
    {
        _telemetry.TrackEvent("Liked");
        return new JsonResult(new { success = true });
    }
    
  4. En Index.cshtml, agregue un token de anti falsificación antes de la etiqueta de script.

    <form method="post" style="display:none;">
        @Html.AntiForgeryToken()
    </form>
    
    <script>
        ...
    
  5. Modifica la función heartClicked con el siguiente contenido.

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

    El método OnPostLike controla la acción "me gusta". Usa TelemetryClient para realizar un seguimiento del evento personalizado "Me gusta" cuando un usuario hace clic en el botón de corazón.

Compile y ejecute la aplicación.

  1. Application Insights requiere una cadena de conexión para conectarse al recurso de Application Insights. Establezca ConnectionStrings:ApplicationInsights como un secreto de usuario.

    dotnet user-secrets set ConnectionStrings:ApplicationInsights "<your-Application-Insights-Connection-String>"
    
  2. Después de establecer la variable de entorno, reinicie el terminal y vuelva a generar y ejecute la aplicación.

    dotnet build
    dotnet run
    

Recopilación de telemetría

Implemente la aplicación para empezar a recopilar datos de telemetría de los usuarios. Para probar su funcionalidad, puede simular la actividad del usuario mediante la creación de muchos usuarios de prueba. Cada usuario experimentará una de las variantes del mensaje de saludo y podrá interactuar con la aplicación haciendo clic en el botón corazón para que le guste una cita. A medida que crece la base de usuarios, puede supervisar el volumen creciente de datos de telemetría recopilados en Azure App Configuration. Además, puede explorar en profundidad los datos para analizar cómo cada variante de la marca de características influye en el comportamiento del usuario.

Recursos adicionales