Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
- Flag di funzionalità varianti con i dati di telemetria abilitati in Abilitare i dati di telemetria per i flag di funzionalità.
- Applicazione da Usa flag di funzionalità varianti in un'applicazione Node.js.
Aggiungere dati di telemetria all'applicazione Node.js
Installare i pacchetti seguenti.
npm install @microsoft/feature-management-applicationinsights-nodeAprire
server.jse 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 ...Aggiungere l'importazione seguente.
const { createTelemetryPublisher, trackEvent } = require("@microsoft/feature-management-applicationinsights-node");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
publishTelemetrycallback invierà dati di telemetria ogni volta che viene valutato un flag di funzionalità.Tenere traccia degli eventi personalizzati per le interazioni dell'utente. Modificare l'endpoint
/api/likeper 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
Application Insights richiede una stringa di connessione per connettersi alla risorsa di Application Insights. Impostare la
APPLICATIONINSIGHTS_CONNECTION_STRINGvariabile 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'Eseguire l'applicazione, vedere il passaggio 4 di Utilizzo dei flag di funzionalità varianti.
Creare 10 utenti diversi e accedere all'applicazione. Quando si accede con ogni utente, viene visualizzata una variante del messaggio diversa per alcune di esse. Circa 50% dell'intervallo di tempo in cui non viene ricevuto alcun messaggio. 25% dell'intervallo di tempo in cui si riceve il messaggio "Salve!" e 25% dell’intervallo di tempo in cui si ottiene "Ti auguro una buona giornata!"
Quando alcuni utenti fanno clic sul pulsante Like, viene attivato l'evento di telemetria.

Aprire la risorsa di Application Insights nel portale di Azure e selezionare Log in Monitoraggio. Nella finestra di query eseguire la query seguente per visualizzare gli eventi di 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)
Viene visualizzato un evento "FeatureEvaluation" ogni volta che è stata caricata la pagina del preventivo e un evento "Liked" per ogni volta che è stato fatto clic sul pulsante "Like". L'evento "FeatureEvaluation" ha una proprietà personalizzata denominata
FeatureNamecon il nome del flag di funzionalità valutato. Entrambi gli eventi hanno una proprietà personalizzata denominataTargetingIdcon il nome dell'utente che ha apprezzato la citazione.Per altre informazioni sull'evento "FeatureEvaluation", vedere le informazioni di riferimento sulla telemetria dei flag di funzionalità
Risorse aggiuntive
Passaggi successivi
Per il rundown completo delle funzionalità della libreria di gestione delle funzionalità JavaScript, vedere il documento seguente.