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

App Insights中join查询仅返回首个结果的原因咨询

问题分析与解决方案

你的查询之所以只返回一条结果,核心问题出在top 1和join的组合使用逻辑上,看似合理但不符合Kusto的执行预期。

为什么当前查询不符合预期?

当你执行metrics | top 1 by run desc时,Kusto只会返回整个数据集里按run降序排列的第一行数据——这一行确实对应最新的时间桶,但它只是该时间桶下8条指标数据中的某一条而已。

后续的join操作虽然是基于run列匹配,但由于latestRun只有一行数据,即便所有符合run条件的行都能匹配上,这种写法不仅冗余,还容易因为列名重复(Kusto会自动添加_left/_right后缀)导致你误以为只返回了一条结果;甚至如果你的metrics数据中存在其他隐含的过滤逻辑,还可能真的只匹配到单行。

正确的查询写法

应该直接获取最新的时间桶标量值,再筛选对应的数据,这样就能精准得到该次作业运行的全部8条指标:

let metrics = customMetrics | where ... | extend run = bin(timestamp, 1m);
let latestRun = toscalar(metrics | summarize max(run));
metrics | where run == latestRun

写法逻辑说明

  1. summarize max(run):计算出metrics中最大的run值(也就是最新的作业运行时间桶)
  2. toscalar:将聚合结果转换为单个标量值,方便后续直接用于筛选
  3. 最后通过where run == latestRun过滤出该时间桶下的所有指标数据,完全符合你的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:14:51