Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste tutorial, você usará a telemetria em seu aplicativo Node.js para acompanhar avaliações de sinalizador de recursos e eventos personalizados. A telemetria permite que você tome decisões informadas sobre sua estratégia de gerenciamento de recursos. Use o sinalizador de recurso com a telemetria habilitada criada na visão geral para habilitar a telemetria para sinalizadores de recursos. Antes de continuar, certifique-se de criar um sinalizador de recurso chamado Saudação em seu repositório de configuração com telemetria habilitada. Este tutorial baseia-se no tutorial para usar sinalizadores de recursos variantes em um aplicativo Node.js.
Pré-requisitos
- O sinalizador de recurso de variante com telemetria habilitada de Habilitar telemetria para sinalizadores de recurso.
- O aplicativo de Usar sinalizadores de recursos variantes em um aplicativo Node.js.
Adicionar telemetria ao aplicativo Node.js
Instale os seguintes pacotes.
npm install @microsoft/feature-management-applicationinsights-nodeAbra
server.jse adicione o código a seguir no início para se conectar ao Application Insights para publicar a 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 ...Adicione a seguinte importação.
const { createTelemetryPublisher, trackEvent } = require("@microsoft/feature-management-applicationinsights-node");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 retorno de chamada
publishTelemetryenviará dados de telemetria sempre que um sinalizador de recurso for avaliado.Acompanhe eventos personalizados para interações do usuário. Modifique o
/api/likeendpoint para enviar dados de telemetria para o Application Insights sempre que um usuário curtir conteúdo. Isso ajuda você 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(); });
Executar o aplicativo
O Application Insights exige uma cadeia de conexão para se conectar ao seu recurso do Application Insights. Defina a variável de ambiente
APPLICATIONINSIGHTS_CONNECTION_STRINGpara a cadeia de conexão do 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 comando a seguir:
export APPLICATIONINSIGHTS_CONNECTION_STRING='applicationinsights-connection-string'Execute o aplicativo, consulte a etapa 4 de Usar sinalizadores de recursos variantes.
Crie 10 usuários diferentes e faça logon no aplicativo. Ao fazer logon com cada usuário, você obtém uma variante de mensagem diferente para alguns deles. Em cerca de 50% dos casos, nenhuma mensagem é exibida. Em 25% dos casos, a mensagem exibida é "Olá!", e nos outros 25%, "Espero que isso melhore o seu dia!"
Com alguns usuários, clique no botão Curtir para disparar o evento de telemetria.

Abra o recurso do Application Insights no portal do Azure e selecione Logs em Monitoramento. Na janela de consulta, execute a seguinte consulta para ver os eventos de telemetria:
// Step 1: Get distinct users and their Variant from FeatureEvaluation let evaluated_users = customEvents | where name == "FeatureEvaluation" | extend TargetingId = tostring(customDimensions.TargetingId), Variant = tostring(customDimensions.Variant) | summarize Variant = any(Variant) by TargetingId; // Step 2: Get distinct users who emitted a "Like" let liked_users = customEvents | where name == "Liked" | extend TargetingId = tostring(customDimensions.TargetingId) | summarize by TargetingId; // Step 3: Join them to get only the evaluated users who also liked let hearted_users = evaluated_users | join kind=inner (liked_users) on TargetingId | summarize HeartedUsers = dcount(TargetingId) by Variant; // Step 4: Total evaluated users per variant let total_users = evaluated_users | summarize TotalUsers = dcount(TargetingId) by Variant; // Step 5: Combine results let combined_data = total_users | join kind=leftouter (hearted_users) on Variant | extend HeartedUsers = coalesce(HeartedUsers, 0) | extend PercentageHearted = strcat(round(HeartedUsers * 100.0 / TotalUsers, 1), "%") | project Variant, TotalUsers, HeartedUsers, PercentageHearted; // Step 6: Add total row let total_sum = combined_data | summarize TotalUsers = sum(TotalUsers), HeartedUsers = sum(HeartedUsers) | extend Variant = "All", PercentageHearted = strcat(round(HeartedUsers * 100.0 / TotalUsers, 1), "%") | project Variant, TotalUsers, HeartedUsers, PercentageHearted; // Step 7: Output combined_data | union (total_sum)
Você verá um evento "FeatureEvaluation" para cada vez que a página de aspas foi carregada e um evento "Curtido" para cada vez que o botão curtir foi clicado. O evento "FeatureEvaluation" tem uma propriedade personalizada chamada
FeatureNamecom o nome do sinalizador de recurso que foi avaliado. Ambos os eventos têm uma propriedade personalizada chamadaTargetingIdcom o nome do usuário que gostou da citação.Para obter mais informações sobre o evento "FeatureEvaluation", acesse a Referência de telemetria do sinalizador de recurso
Recursos adicionais
Próximas etapas
Para obter a visão geral completa dos recursos da biblioteca de gerenciamento de funcionalidades JavaScript, consulte a documentação a seguir.