Włącz telemetrię dla flag funkcji w aplikacji Node.js

W tym samouczku użyjesz telemetrii w aplikacji Node.js do śledzenia oceny flag funkcji i zdarzeń niestandardowych. Telemetria umożliwia podejmowanie świadomych decyzji dotyczących strategii zarządzania funkcjami. Używasz flagi funkcji z włączoną telemetrią, która została utworzona w przeglądzie na potrzeby włączania telemetrii dla flag funkcji. Przed kontynuowaniem upewnij się, że utworzono flagę funkcji o nazwie Greeting w magazynie konfiguracji z włączoną telemetrią. Ten samouczek jest oparty na samouczku dotyczącym używania flag funkcji wariantów w aplikacji Node.js.

Wymagania wstępne

Dodawanie telemetrii do aplikacji Node.js

  1. Zainstaluj następujące pakiety.

    npm install @microsoft/feature-management-applicationinsights-node
    
  2. Otwórz server.js i dodaj następujący kod na początku, aby nawiązać połączenie z usługą Application Insights w celu opublikowania danych telemetrycznych.

    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. Dodaj następujący import.

    const { createTelemetryPublisher, trackEvent } = require("@microsoft/feature-management-applicationinsights-node");
    
  4. Podczas inicjowania elementu FeatureManager, utwórz i zarejestruj wydawcę telemetrii.

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

    Wywołanie zwrotne publishTelemetry będzie wysyłać dane telemetryczne za każdym razem, gdy flaga cechy jest ewaluowana.

  5. Śledzenie zdarzeń niestandardowych na potrzeby interakcji użytkownika. Zmodyfikuj punkt końcowy /api/like tak, aby wysyłał dane telemetryczne do usługi Application Insights za każdym razem, gdy użytkownik polubi zawartość. Ułatwia to analizowanie, które warianty funkcji działają lepiej.

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

Uruchamianie aplikacji

  1. Usługa Application Insights wymaga parametrów połączenia w celu nawiązania połączenia z zasobem usługi Application Insights. Ustaw zmienną środowiskową APPLICATIONINSIGHTS_CONNECTION_STRING na ciąg połączenia dla zasobu usługi Application Insights.

    setx APPLICATIONINSIGHTS_CONNECTION_STRING "applicationinsights-connection-string"
    

    Jeśli używasz programu PowerShell, uruchom następujące polecenie:

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

    Jeśli używasz systemu macOS lub Linux, uruchom następujące polecenie:

    export APPLICATIONINSIGHTS_CONNECTION_STRING='applicationinsights-connection-string'
    

Zbieranie danych telemetrycznych

Wdróż aplikację, aby rozpocząć zbieranie danych telemetrycznych od użytkowników. Aby przetestować jego funkcjonalność, możesz symulować aktywność użytkownika, tworząc wielu użytkowników testowych. Każdy użytkownik zobaczy inny wariant wiadomości powitalnych i będzie mógł wchodzić w interakcję z aplikacją, klikając przycisk z sercem, aby polubić cytat. Wraz ze wzrostem bazy użytkowników można monitorować rosnącą ilość danych telemetrycznych zebranych w usłudze Azure App Configuration. Ponadto możesz przejść do szczegółów danych, aby przeanalizować, jak każdy wariant flagi funkcji wpływa na zachowanie użytkownika.

Dodatkowe zasoby