Application Insights:如何按构建版本输出总会话数及崩溃事件统计
解决方案:获取各Build版本的崩溃数与总会话数
你当前的查询仅统计了触发Crash事件的会话数,要获取该Build版本的总会话数,需要从全量事件数据中按Build维度统计所有去重的itemId,再和崩溃统计结果关联。以下是修改后的完整查询:
let usg_events = dynamic(["Crash"]); // 1. 统计各Build的崩溃事件数(保留原有的Top5+Other合并逻辑) let crashStats = union pageViews, customEvents, requests | extend name = replace("\n", "", name) | where name in (usg_events) // 仅过滤Crash事件 | extend Build = iif(isempty(customDimensions["Build"]), "<undefined>", tostring(customDimensions["Build"])) | summarize hll_crash = hll(itemId) by Build | extend Crashes = dcount_hll(hll_crash) | order by Crashes desc | serialize rank = row_number() | extend Build = iff(rank > 5, 'Other', Build) | summarize merged_crash = hll_merge(hll_crash) by Build | project Build, Crashes = dcount_hll(merged_crash); // 2. 统计各Build的总会话数(基于全量事件,不过滤Crash) let sessionStats = union pageViews, customEvents, requests | extend Build = iif(isempty(customDimensions["Build"]), "<undefined>", tostring(customDimensions["Build"])) | summarize hll_session = hll(itemId) by Build | order by dcount_hll(hll_session) desc | serialize rank = row_number() | extend Build = iff(rank > 5, 'Other', Build) | summarize merged_session = hll_merge(hll_session) by Build | project Build, ["Build Sessions"] = dcount_hll(merged_session); // 3. 关联两个统计结果,补全空值 crashStats | join kind=fullouter sessionStats on Build | project Build, Crashes = coalesce(Crashes, 0), ["Build Sessions"] = coalesce(["Build Sessions"], 0) | order by ["Build Sessions"] desc
关键改动说明
- 拆分统计逻辑:将崩溃统计和总会话统计拆分为独立模块,确保两者的Build分组规则(Top5+Other)完全一致
- 全量会话统计:总会话模块使用未过滤Crash的全量事件数据,保证统计的是该Build下所有会话
- 关联与补值:用
fullouter关联避免遗漏数据,coalesce将空值转为0,保证结果完整性
内容的提问来源于stack exchange,提问作者Michael Gustafson
相关产品推荐
相关产品推荐

