Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto kurzu použijete telemetrii ve své aplikaci Node.js ke sledování vyhodnocení feature flagů a vlastních událostí. Telemetrie umožňuje činit informovaná rozhodnutí o strategii správy funkcí. Použijete přepínač funkcí s povolenou telemetrií vytvořený v přehledu pro povolení telemetrie pro přepínače funkcí. Než budete pokračovat, ujistěte se, že vytvoříte příznak funkce s názvem Greeting v úložišti konfigurace s povolenou telemetrií. Tento kurz navazuje na kurz o použití příznaků variant v aplikaci Node.js.
Požadavky
- Varianta příznaku funkce s povolenou telemetrií z možnosti Povolit telemetrii pro příznaky funkcí.
- Aplikace, která používá příznaky vlastností variant v aplikaci Node.js.
Přidání telemetrie do aplikace Node.js
Nainstalujte následující balíčky.
npm install @microsoft/feature-management-applicationinsights-nodeOtevřete
server.jsa na začátku přidejte následující kód, který se připojí k Application Insights a publikuje telemetrii.const appInsightsConnectionString = process.env.APPLICATIONINSIGHTS_CONNECTION_STRING; const applicationInsights = require("applicationinsights"); applicationInsights.setup(appInsightsConnectionString).start(); const express = require("express"); const server = express(); // existing code ...Přidejte následující import.
const { createTelemetryPublisher, trackEvent } = require("@microsoft/feature-management-applicationinsights-node");Vytvořte a registrujte vydavatele telemetrie při inicializaci
FeatureManager.// existing code ... const featureFlagProvider = new ConfigurationMapFeatureFlagProvider(appConfig); const publishTelemetry = createTelemetryPublisher(applicationInsights.defaultClient); featureManager = new FeatureManager(featureFlagProvider, { onFeatureEvaluated: publishTelemetry }); // existing code ...publishTelemetryZpětné volání odešle telemetrická data při každém vyhodnocení příznaku funkce.Sledujte vlastní události pro interakce uživatelů
/api/likeUpravte koncový bod tak, aby odesílal telemetrická data do Application Insights vždy, když se uživateli líbí obsah. To vám pomůže analyzovat, které varianty funkcí fungují lépe.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(); });
Spuštění aplikace
K připojení k prostředku Application Insights je vyžadován připojovací řetězec. Nastavte proměnnou
APPLICATIONINSIGHTS_CONNECTION_STRINGprostředí na připojovací řetězec vašeho prostředku Application Insights.setx APPLICATIONINSIGHTS_CONNECTION_STRING "applicationinsights-connection-string"Pokud používáte PowerShell, spusťte následující příkaz:
$Env:APPLICATIONINSIGHTS_CONNECTION_STRING = "applicationinsights-connection-string"Pokud používáte macOS nebo Linux, spusťte následující příkaz:
export APPLICATIONINSIGHTS_CONNECTION_STRING='applicationinsights-connection-string'Spusťte aplikaci, viz krok 4 příznaků použití varianty.
Vytvořte 10 různých uživatelů a přihlaste se k aplikaci. Když se přihlásíte s každým uživatelem, získáte pro některé z nich jinou variantu zprávy. ~50% času, kdy se žádná zpráva nedostane. 25% času, kdy dostanete zprávu "Hello!" a 25% času dostanete "Doufám, že vám to zpříjemní den!"
Když někteří uživatelé kliknou na tlačítko To se mi líbí , aktivuje se událost telemetrie.
Na webu Azure Portal otevřete prostředek Application Insights a v části Monitorování vyberte Protokoly. V okně dotazu spusťte následující dotaz, aby se zobrazily události telemetrie:
// 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)
Při každém načtení stránky nabídky se zobrazí jedna událost FeatureEvaluation a pokaždé, když se kliklo na tlačítko Like, zobrazí se jedna událost Like. Událost FeatureEvaluation má vlastní vlastnost volanou
FeatureNames názvem příznaku funkce, který byl vyhodnocen. Obě události mají vlastní vlastnost nazvanouTargetingIdse jménem uživatele, který lajkoval citaci.Další informace o události FeatureEvaluation najdete v referenčních informacích k telemetrii příznaku funkce.
Dodatečné zdroje
Další kroky
Úplný přehled funkcí knihovny pro správu funkcí JavaScriptu najdete v následujícím dokumentu.