Habilitar telemetria para feature flags num aplicativo Node.js

Neste tutorial, você usa a telemetria em seu aplicativo Node.js para acompanhar avaliações de sinalizadores de recursos e eventos personalizados. A telemetria permite que você tome decisões informadas sobre sua estratégia de gerenciamento de recursos. Você utiliza o sinalizador de recurso com telemetria habilitada criado na visão geral para habilitar a telemetria para sinalizadores de recurso. Antes de continuar, certifique-se de criar um sinalizador de recurso chamado Saudação no repositório de configurações com a telemetria habilitada. Este tutorial se baseia no tutorial para usar sinalizadores de recursos variantes em um aplicativo Node.js.

Pré-requisitos

Adicionar telemetria ao seu aplicativo Node.js

  1. Instale os seguintes pacotes.

    npm install @microsoft/feature-management-applicationinsights-node
    
  2. Abra server.js e adicione o código a seguir no início para se conectar ao Application Insights para publicar 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. Adicione a seguinte importação.

    const { createTelemetryPublisher, trackEvent } = require("@microsoft/feature-management-applicationinsights-node");
    
  4. Crie e registre o editor de telemetria ao inicializar o FeatureManager.

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

    O publishTelemetry retorno de chamada enviará dados de telemetria sempre que um sinalizador de recurso for avaliado.

  5. Rastreie eventos personalizados para interações do usuário. Modifique o /api/like ponto de extremidade para enviar dados de telemetria para o Application Insights sempre que um usuário gostar de conteúdo. Isso ajuda a analisar quais variantes de recursos têm melhor desempenho.

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

Execute o aplicativo

  1. O Application Insights requer uma cadeia de conexão para se conectar ao seu recurso do Application Insights. Defina a APPLICATIONINSIGHTS_CONNECTION_STRING variável de ambiente como a cadeia de conexão para seu recurso do Application Insights.

    setx APPLICATIONINSIGHTS_CONNECTION_STRING "applicationinsights-connection-string"
    

    Se você usar o PowerShell, execute o seguinte comando:

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

    Se você usa macOS ou Linux, execute o seguinte comando:

    export APPLICATIONINSIGHTS_CONNECTION_STRING='applicationinsights-connection-string'
    

Recolha de telemetria

Implemente a sua aplicação para começar a recolher telemetria dos seus utilizadores. Para testar a sua funcionalidade, pode simular a atividade do utilizador criando muitos utilizadores de teste. Cada utilizador irá experienciar uma variante diferente de mensagens de saudação e poderá interagir com a aplicação clicando no botão de coração para gostar de uma citação. À medida que a sua base de utilizadores cresce, pode monitorizar o volume crescente de dados de telemetria recolhidos no Azure App Configuration. Além disso, pode aprofundar os dados para analisar como cada variante do flag de funcionalidade influencia o comportamento do utilizador.

Recursos adicionais