如何用Kusto查询对比上周与今日TriggersStarted指标数据
Azure Metrics Kusto 查询:对比今日与上周 TriggersStarted 指标总数
1. 用 let 定义变量存储统计结果
你可以通过let关键字分别定义今日和上周同日的指标统计结果,方便后续对比或复用:
// 统计今日(从当天0点到当前时间)的TriggersStarted总数 let today_total = AzureMetrics | where MetricName == "TriggersStarted" | where TimeGenerated >= startofday(now()) | summarize Total = count(); // 统计上周同日(完整一天,如今天是周一则取上周一0点到周二0点)的TriggersStarted总数 let last_week_total = AzureMetrics | where MetricName == "TriggersStarted" | where TimeGenerated between (startofday(ago(7d)) .. startofday(ago(6d))) | summarize Total = count();
2. 合并变量结果完成对比
定义好变量后,通过union结合extend添加周期标识列,就能直观展示两组数据的对比:
today_total | extend Period = "今日" union (last_week_total | extend Period = "上周同日")
执行后会返回两行数据,分别显示今日和上周同日的指标总数及对应周期。
3. 单查询直接分组对比(无需单独定义变量)
如果不需要复用变量,也可以直接在一个查询中通过extend标记周期,再按周期汇总:
AzureMetrics | where MetricName == "TriggersStarted" // 限定时间范围为上周同日到今日 | where TimeGenerated between (startofday(ago(7d)) .. now()) // 用extend给每行数据标记所属周期 | extend Period = case( TimeGenerated >= startofday(now()), "今日", TimeGenerated between (startofday(ago(7d)) .. startofday(ago(6d))), "上周同日", "" ) // 过滤掉不属于目标周期的数据 | where Period != "" // 按周期汇总总数 | summarize Total = count() by Period
关于extend运算符的说明
extend的作用是为每行数据添加自定义列:
- 若已通过
summarize得到单行汇总结果,用extend可以添加标识类列(如上述的Period),方便区分不同统计组; - 若针对原始数据行,
extend可用于计算每行的衍生属性(比如提取时间中的日期、小时等),但不适用于直接将汇总结果赋值给原始行的列(因为汇总结果是聚合值,和原始行是一对多关系)。
内容的提问来源于stack exchange,提问作者Nikhil Babu Battula
相关产品推荐
相关产品推荐

