遙測是一種自動化的過程,用來收集、傳輸並分析關於您的應用程式及其功能的使用方式。 啟用功能旗標的遙測,能提供關於功能推出行為與影響的寶貴洞見,幫助團隊更快迭代、提升使用者體驗、及早發現問題,並驗證新功能的有效性。 透過遙測技術,團隊可以回答以下關鍵問題:
- 某個功能是如預期般啟用或停用?
- 是否有特定使用者或群組能使用這項新功能?
- 某個功能是否導致效能倒退或錯誤?
- 功能對互動率或轉換率等關鍵指標有什麼影響?
透過利用遙測數據,組織能做出有根據且數據驅動的決策,快速識別並解決問題,並優化功能交付,以達成更佳的業務與用戶成果。
遙測是收集、傳輸和分析有關應用程式使用情況和效能資料的過程。 它可協助您監視功能旗標行為,並做出數據驅動決策。 部署功能旗標變更時,分析其對應用程式的影響通常很重要。 例如,以下是一些可能發生的問題:
- 我的旗標是否如預期般啟用/停用?
- 目標使用者是否如預期般可存取特定功能?
- 變體如何影響客戶參與?
這些類型的問題可透過功能旗標評估事件的發出和分析來回答。
先決條件
- 在使用變體功能旗標 (部分內容可能是機器或 AI 翻譯) 中建立的功能旗標。
連接至 Application Insights
在 Azure 入口網站中開啟您的應用程式組態存放區。
在 [遙測] 區域中,選取 [Application Insights (預覽)] 窗格。
選取訂用帳戶、資源群組。 然後,選取您想要連線到應用程式組態存放區的現有 Application Insights 資源,或選取 [ 新建 ] 以建立新的 Application Insights 資源。
選取 [連線] 按鈕。
啟用功能旗標的遙測
在 Azure 入口網站中開啟您的應用程式組態存放區,然後選取 [作業] 區段底下的 [功能管理員] 刀鋒視窗。
選取名為 Greeting 的功能旗標。 如果您沒有它,請依照 指示加以建立。 然後,以滑鼠右鍵按兩下功能旗標,然後選取 [ 編輯]。
在新檢視中,選取 [ 遙測] 索引標籤 。
核取 [ 啟用遙測] 方塊,然後選取頁面底部的 [ 檢閱 + 更新] 按鈕。
請繼續依照以下指示,在您正在使用的語言或平臺的應用程式中使用遙測。
檢閱 Azure 應用程式組態中的遙測結果
在應用程式設定入口中,導覽至 Application Insights 窗格。 你應該會看到一張圖表,顯示你申請中的所有事件。 此圖提供了活動模式的初步概述。
使用時間範圍選擇器聚焦特定時期,以識別趨勢或調查感興趣的特定時間段。
以特徵標記篩選
- 點擊事件圖表上方的下拉選單
- 在 帶有事件的功能標記 中,選擇你的功能標記
- 圖表現在只會顯示與功能旗標評估相關的事件
欲取得更詳細的遙測資料,請點擊 查看詳情 以開啟遙測標籤。
備註
你也可以進入 功能管理員 ,點擊遙測欄位中的 「查看事件 」來取得感興趣的功能旗標。
驗證變體指派
在遙測標籤中,您可以查看:
- 總事件數:您的應用程式所發出的評估事件總數
- 獨立使用者:被鎖定並發出事件的特定使用者數量。
為了顯示簡單、長、無變體的用戶分布及評價數量,請依變體分組。 這種分組讓你能看到配置的分配是否如預期運作,以及所有預期的變體是否都被提供給使用者。
在此範例中,我們看到被分配到「無」變體的用戶數量,幾乎是被分配到「簡單」和「長」變體的兩倍,因為已分別設定「無」、「簡單」和「長」的百分位比例為50-25-25。
根據旗標狀態確認覆寫與行為
使用者可能會因不同原因獲得變體。 你要確保你的變體分配不僅比例正確,也要有正確的理由。 你可以依作業理由分組指標。 在這個例子中,我們看到唯一的分配原因完全是百分位數分配所造成。
請前往功能管理員並切換功能旗標的「啟用」開關,以停用該功能。
在遙測欄位中,點擊 「檢視事件 」以進入唯讀模式的遙測標籤。
查看依變體分類的獨立用戶數。 您應該會看到 Long 和 Simple 的所有指派都會歸零。 只有 None 變體,也就是我們這裡的預設,才會分配給使用者。
切換至依分配原因查看獨特用戶數。 從圖表中確認,百分位數分配降為零,且 DefaultWhenDisabled 是導致使用者被分配變體的唯一原因。
其他可能的原因包括「DefaultWhenEnabled」、「群組」或「使用者」(如果有設定的話)。
在 Application Insights 中分析遙測
既然你已經確認功能旗標分配如預期運作,就可以更深入地檢視遙測事件,根據用戶按讚數量,查看不同變體的表現。
在 Azure 入口網站開啟你的 Application Insights 資源,並在監控中選擇日誌。 在查詢視窗中,執行以下查詢以查看遙測事件:
// Step 1: Get distinct users and their Variant from FeatureEvaluation (Replace <store-endpoint> with your store's endpoint)
let evaluated_users =
customEvents
| where name == "FeatureEvaluation"
| where tostring(customDimensions.FeatureFlagReference) == "https://<store-endpoint>/kv/.appconfig.featureflag/Greeting"
| 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 Variant="All", TotalUsers = sum(TotalUsers), HeartedUsers = sum(HeartedUsers);
// Step 7: Output
combined_data
| union (total_sum)
你會看到每次載入報價頁面時會有一個「功能評估」事件,每次點擊按讚按鈕時會有一個「按讚」事件。 「FeatureEvaluation」事件有一個自訂 FeatureName 屬性,名稱為被評估的功能旗標名稱。 這兩個事件都具有一個名為 TargetingId 的自訂屬性,該屬性的值是按讚該引言的使用者名稱。
在這個例子中,我們可以看到,雖然獲得 Long 版本與 Simple 版本的用戶數量大致相同,但 Simple 版本的表現似乎比 Simple 版本好 22%。