Telemetrie inschakelen voor functievlagmen in een Node.js-toepassing

In deze zelfstudie gebruikt u telemetrie in uw Node.js-toepassing om evaluaties van functievlagken en aangepaste gebeurtenissen bij te houden. Met telemetrie kunt u weloverwogen beslissingen nemen over uw strategie voor functiebeheer. U gebruikt de functievlag met telemetrie ingeschakeld die is gemaakt in het overzicht voor het inschakelen van telemetrie voor functievlagmen. Voordat u doorgaat, moet u ervoor zorgen dat u een functievlag maakt met de naam Begroeting in uw configuratiearchief, waarbij telemetrie is ingeschakeld. Deze zelfstudie bouwt voort op de zelfstudie voor het gebruik van variantfunctievlagmen in een Node.js toepassing.

Vereiste voorwaarden

Telemetrie toevoegen aan uw Node.js-toepassing

  1. Installeer de volgende pakketten.

    npm install @microsoft/feature-management-applicationinsights-node
    
  2. Open server.js en voeg de volgende code toe aan het begin om verbinding te maken met Application Insights om telemetrie te publiceren.

    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. Voeg de volgende import toe.

    const { createTelemetryPublisher, trackEvent } = require("@microsoft/feature-management-applicationinsights-node");
    
  4. Maak en registreer de telemetrie-publiceerder bij het initialiseren van de FeatureManager.

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

    De publishTelemetry callback verzendt telemetriegegevens telkens wanneer een functievlag wordt geëvalueerd.

  5. Houd aangepaste gebeurtenissen bij voor gebruikersinteracties. Wijzig het /api/like eindpunt om telemetriegegevens naar Application Insights te verzenden wanneer een gebruiker inhoud leuk vindt. Zo kunt u analyseren welke functievarianten beter presteren.

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

De toepassing uitvoeren

  1. Application Insights vereist een verbindingsreeks om verbinding te maken met uw Application Insights-resource. Stel de APPLICATIONINSIGHTS_CONNECTION_STRING omgevingsvariabele in op de verbindingsreeks voor uw Application Insights-resource.

    setx APPLICATIONINSIGHTS_CONNECTION_STRING "applicationinsights-connection-string"
    

    Als u PowerShell gebruikt, voert u de volgende opdracht uit:

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

    Als u macOS of Linux gebruikt, voert u de volgende opdracht uit:

    export APPLICATIONINSIGHTS_CONNECTION_STRING='applicationinsights-connection-string'
    

Telemetrie verzamelen

Implementeer uw toepassing om te beginnen met het verzamelen van telemetriegegevens van uw gebruikers. Als u de functionaliteit ervan wilt testen, kunt u gebruikersactiviteiten simuleren door veel testgebruikers te maken. Elke gebruiker krijgt een andere variant van welkomstberichten te zien en kan met de applicatie interageren door op de hartknop te klikken om een citaat leuk te vinden. Naarmate uw gebruikersbestand groeit, kunt u het toenemende aantal telemetriegegevens bewaken dat wordt verzameld in Azure App Configuration. Daarnaast kunt u inzoomen op de gegevens om te analyseren hoe elke variant van de functievlag het gedrag van gebruikers beïnvloedt.

Aanvullende bronnen