Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam tutorial ini, Anda menggunakan telemetri di aplikasi Node.js Anda untuk melacak evaluasi bendera fitur dan peristiwa kustom. Telemetri memungkinkan Anda membuat keputusan berdasarkan informasi tentang strategi manajemen fitur Anda. Anda menggunakan bendera fitur dengan telemetri diaktifkan yang dibuat dalam gambaran umum untuk mengaktifkan telemetri untuk bendera fitur. Sebelum melanjutkan, pastikan Anda membuat bendera fitur bernama Greeting di penyimpanan Konfigurasi Anda dengan telemetri diaktifkan. Tutorial ini dibangun di atas tutorial untuk menggunakan bendera fitur varian dalam aplikasi Node.js.
Prasyarat
- Bendera fitur varian dengan telemetri diaktifkan dari Aktifkan telemetri untuk bendera fitur.
- Aplikasi dari Gunakan bendera fitur varian dalam aplikasi Node.js.
Menambahkan telemetri ke aplikasi Node.js Anda
Pasang paket berikut.
npm install @microsoft/feature-management-applicationinsights-nodeBuka
server.jsdan tambahkan kode berikut di awal untuk menyambungkan ke Application Insights untuk menerbitkan telemetri.const appInsightsConnectionString = process.env.APPLICATIONINSIGHTS_CONNECTION_STRING; const applicationInsights = require("applicationinsights"); applicationInsights.setup(appInsightsConnectionString).start(); const express = require("express"); const server = express(); // existing code ...Tambahkan impor berikut.
const { createTelemetryPublisher, trackEvent } = require("@microsoft/feature-management-applicationinsights-node");Buat dan daftarkan penerbit telemetri saat menginisialisasi
FeatureManager.// existing code ... const featureFlagProvider = new ConfigurationMapFeatureFlagProvider(appConfig); const publishTelemetry = createTelemetryPublisher(applicationInsights.defaultClient); featureManager = new FeatureManager(featureFlagProvider, { onFeatureEvaluated: publishTelemetry }); // existing code ...Panggilan
publishTelemetrybalik akan mengirim data telemetri setiap kali bendera fitur dievaluasi.Lacak peristiwa kustom untuk interaksi pengguna.
/api/likeUbah titik akhir untuk mengirim data telemetri ke Application Insights setiap kali pengguna menyukai konten. Ini membantu Anda menganalisis varian fitur mana yang berkinerja lebih baik.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(); });
Jalankan aplikasi
Application insights memerlukan string koneksi untuk terhubung ke sumber daya Application Insights Anda. Atur
APPLICATIONINSIGHTS_CONNECTION_STRINGvariabel lingkungan ke string koneksi untuk sumber daya Application Insights Anda.setx APPLICATIONINSIGHTS_CONNECTION_STRING "applicationinsights-connection-string"Jika Anda menggunakan PowerShell, jalankan perintah berikut:
$Env:APPLICATIONINSIGHTS_CONNECTION_STRING = "applicationinsights-connection-string"Jika Anda menggunakan macOS atau Linux, jalankan perintah berikut:
export APPLICATIONINSIGHTS_CONNECTION_STRING='applicationinsights-connection-string'Jalankan aplikasi, lihat langkah 4 dari Gunakan bendera fitur varian.
Buat 10 pengguna yang berbeda dan masuk ke aplikasi. Saat Anda masuk dengan setiap pengguna, Anda mendapatkan varian pesan yang berbeda untuk beberapa di antaranya. ~50% dari waktu Anda tidak mendapatkan pesan. 25% saat Anda mendapatkan pesan "Halo!" dan 25% saat Anda mendapatkan "Saya harap ini membuat hari Anda!"
Dengan beberapa pengguna klik tombol Suka untuk memicu peristiwa telemetri.
Buka sumber daya Application Insights Anda di portal Microsoft Azure dan pilih Log di bawah Pemantauan. Di jendela kueri, jalankan kueri berikut untuk melihat peristiwa telemetri:
// 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)
Anda melihat satu kejadian "FeatureEvaluation" setiap kali halaman kutipan dimuat dan satu kejadian "Liked" setiap kali tombol suka diklik. Peristiwa "FeatureEvaluation" memiliki properti kustom yang disebut
FeatureNamedengan nama bendera fitur yang dievaluasi. Kedua kejadian memiliki properti kustom dengan namaTargetingIdyang merupakan nama pengguna yang menyukai kutipan.Untuk informasi selengkapnya tentang peristiwa "FeatureEvaluation", buka referensi telemetri bendera fitur
Sumber daya tambahan
Langkah selanjutnya
Untuk ringkasan fitur lengkap dari pustaka manajemen fitur JavaScript, silakan merujuk pada dokumen berikut.