You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并两个Application Insights自定义事件Kusto查询并计算平均百分比

合并Kusto查询并计算平均百分比

可以通过两种方式合并查询,最终返回两个百分比的平均值:

方法一:单次扫描数据(更高效)

直接在一个查询中处理两种事件类型,避免重复扫描数据:

customEvents
| where name in ("JobsStarted", "JobsCompleted")
| project 
    timestamp,
    Id = tostring(customDimensions["Id"]),
    Frequency = toint(customDimensions["Frequency"]),
    IsValid = case(
        name == "JobsStarted", toint(customDimensions["JobsStarted"]) >= 1,
        name == "JobsCompleted", toint(customDimensions["JobsCompleted"]) >= 1,
        false
    )
| summarize 
    Percentage = (toreal(countif(IsValid)) / sum(Frequency)) * 100
    by name
| summarize AveragePercentage = avg(Percentage)

逻辑说明:

  • 第一步过滤出目标事件类型
  • 用case函数统一判断两种事件的有效条件,生成IsValid标记字段
  • 按事件名称分组计算各自的百分比
  • 最后对两个百分比求平均值,得到单一结果

方法二:复用原有查询逻辑(更直观)

通过临时变量保存两个查询的结果,再合并计算平均值:

let started_percent = customEvents
| where name == "JobsStarted"
| project 
    Id = tostring(customDimensions["Id"]),
    Frequency = toint(customDimensions["Frequency"]),
    JobsStarted = toint(customDimensions["JobsStarted"])
| summarize Percentage = (toreal(countif(JobsStarted >= 1)) / sum(Frequency)) * 100;
let completed_percent = customEvents
| where name == "JobsCompleted"
| project 
    Id = tostring(customDimensions["Id"]),
    Frequency = toint(customDimensions["Frequency"]),
    JobsCompleted= toint(customDimensions["JobsCompleted"])
| summarize Percentage = (toreal(countif(JobsCompleted >= 1)) / sum(Frequency)) * 100;
union started_percent, completed_percent
| summarize AveragePercentage = avg(Percentage)

逻辑说明:

  • 用let语句定义两个临时变量,分别存储原有查询的结果
  • 通过union合并两个结果集
  • 最后计算平均值得到单一结果

内容的提问来源于stack exchange,提问作者user989988

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 10:45:33