Abilitare la telemetria per i flag di funzionalità in un'applicazione Node.js

In questa esercitazione, verranno utilizzati i dati di telemetria nell'applicazione Node.js 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 flag di funzionalità denominato Messaggio di saluto 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 Node.js.

Prerequisiti

Aggiungere dati di telemetria all'applicazione Node.js

  1. Installare i pacchetti seguenti.

    npm install @microsoft/feature-management-applicationinsights-node
    
  2. Aprire server.js e aggiungere il codice seguente all'inizio per connettersi ad Application Insights per pubblicare i dati di telemetria.

    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. Aggiungere l'importazione seguente.

    const { createTelemetryPublisher, trackEvent } = require("@microsoft/feature-management-applicationinsights-node");
    
  4. Creare e registrare l'editore di telemetria durante l'inizializzazione di FeatureManager.

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

    Il publishTelemetry callback invierà dati di telemetria ogni volta che viene valutato un flag di funzionalità.

  5. Tenere traccia degli eventi personalizzati per le interazioni dell'utente. Modificare l'endpoint /api/like per inviare i dati di telemetria ad Application Insights ogni volta che un utente ama il contenuto. Ciò consente di analizzare le varianti di funzionalità che offrono prestazioni migliori.

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

Eseguire l'applicazione

  1. Application Insights richiede una stringa di connessione per connettersi alla risorsa di Application Insights. Impostare la APPLICATIONINSIGHTS_CONNECTION_STRING variabile di ambiente sulla stringa di connessione per la risorsa di Application Insights.

    setx APPLICATIONINSIGHTS_CONNECTION_STRING "applicationinsights-connection-string"
    

    Se si usa PowerShell, eseguire il comando seguente:

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

    Se si usa macOS o Linux, eseguire il comando seguente:

    export APPLICATIONINSIGHTS_CONNECTION_STRING='applicationinsights-connection-string'
    

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 variante diversa dei messaggi di saluto e potrà interagire con l'applicazione facendo clic sul pulsante con il 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