Habilitar la telemetría para las banderas de características en una aplicación de Node.js

En este tutorial, usará la telemetría en la aplicación de Node.js para realizar un seguimiento de las evaluaciones de marcas de características y los eventos personalizados. La telemetría permite tomar decisiones fundamentadas sobre la estrategia de gestión de características. Utilizas la bandera de características con telemetría habilitada creada en el resumen para habilitar la telemetría para las banderas de características. Antes de continuar, asegúrese de crear una bandera de características 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 de Node.js.

Prerrequisitos

Añadir telemetría a tu aplicación Node.js

  1. Instale los siguientes paquetes.

    npm install @microsoft/feature-management-applicationinsights-node
    
  2. Abra server.js y agregue el código siguiente al principio para conectarse a Application Insights para publicar telemetría.

    const appInsightsConnectionString = process.env.APPLICATIONINSIGHTS_CONNECTION_STRING;
    const applicationInsights = require("applicationinsights");
    applicationInsights.setup(appInsightsConnectionString).start();
    
    const express = require("express");
    const server = express();
    // existing code ...
    
  3. Agregue la siguiente importación.

    const { createTelemetryPublisher, trackEvent } = require("@microsoft/feature-management-applicationinsights-node");
    
  4. Cree y registre el publicador de telemetría al inicializar el FeatureManager.

    // existing code ...
    const featureFlagProvider = new ConfigurationMapFeatureFlagProvider(appConfig);
    const publishTelemetry = createTelemetryPublisher(applicationInsights.defaultClient);
    featureManager = new FeatureManager(featureFlagProvider, {
        onFeatureEvaluated: publishTelemetry
    });
    // existing code ...
    

    La publishTelemetry devolución de llamada enviará datos de telemetría cada vez que se evalúe una marca de característica.

  5. Realice un seguimiento de eventos personalizados para las interacciones del usuario. Modifique el /api/like punto de conexión para enviar datos de telemetría a Application Insights siempre que un usuario quiera contenido. Esto le ayuda a analizar qué variantes de características funcionan mejor.

    server.post("/api/like", (req, res) => {
        const { UserId } = req.body;
        if (UserId === undefined) {
            return res.status(400).send({ error: "UserId is required" });
        }
        trackEvent(applicationInsights.defaultClient, UserId, { name: "Liked" });
        res.status(200).send();
    });
    

Ejecutar la aplicación

  1. Application Insights requiere una cadena de conexión para conectarse al recurso de Application Insights. Establezca la variable de entorno APPLICATIONINSIGHTS_CONNECTION_STRING en la cadena de conexión del recurso de Application Insights.

    setx APPLICATIONINSIGHTS_CONNECTION_STRING "applicationinsights-connection-string"
    

    Si usa PowerShell, ejecute el siguiente comando:

    $Env:APPLICATIONINSIGHTS_CONNECTION_STRING = "applicationinsights-connection-string"
    

    Si usa macOS o Linux, ejecute el siguiente comando:

    export APPLICATIONINSIGHTS_CONNECTION_STRING='applicationinsights-connection-string'
    

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 verá una variante distinta de los mensajes de saludo y podrá interactuar con la aplicación haciendo clic en el botón con el icono de corazón para indicar que le gusta 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