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

如何修正KQL查询以支持多VirtualMachines参数选择?

修正支持多VM选择的KQL查询

问题出在当多选VM时,{VirtualMachines:label}会输出逗号分隔的单一字符串(例如"VM01,VM02"),但KQL的in运算符需要的是独立的字符串值列表,直接代入会触发语法解析错误。

修正方法很简单,用split函数把逗号分隔的参数值拆分成字符串数组,让in能正确识别每个VM名称:

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "LogicalDisk" and Name == "FreeSpacePercentage"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| extend vmName = tostring(toupper(Computer))
| extend VM_Name = tostring(split(vmName,'.')[0]) 
| summarize AggregatedValue = avg(Val) by VM_Name, Disk, _ResourceId
| where VM_Name in (split('{VirtualMachines:label}', ','))
| top 30 by AggregatedValue asc

如果参数值可能包含空格(比如名称前后有冗余空格),可以再加一步去除空格的处理,确保匹配准确:

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "LogicalDisk" and Name == "FreeSpacePercentage"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| extend vmName = tostring(toupper(Computer))
| extend VM_Name = tostring(split(vmName,'.')[0]) 
| summarize AggregatedValue = avg(Val) by VM_Name, Disk, _ResourceId
| let selectedVMs = split('{VirtualMachines:label}', ',') | trim(' ', @);
| where VM_Name in (selectedVMs)
| top 30 by AggregatedValue asc

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:24:54