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

KQL查询需求:获取代理状态及检测同时安装AMA/MMA的服务器

解决KQL查询错误:找出同时安装AMA和MMA代理的服务器

错误原因

你遇到的错误是因为错误地将聚合得到的datetime类型字段lastHeartbeat当成了包含Properties的动态对象。实际上Properties是Heartbeat表的原生动态字段,只能从原始表记录中提取,不能从聚合后的时间字段中访问。

修正后的KQL查询

Heartbeat
// 先过滤出目标代理类型的心跳记录,同时提取AgentType
| extend AgentType = tostring(Properties["agentType"])
| where AgentType in ("AMA", "MMA")
// 按计算机和代理类型分组,获取每个代理的最后心跳时间
| summarize LastHeartbeat = max(TimeGenerated) by Computer, AgentType
// 按计算机聚合,收集所有代理类型并打包各代理的最后心跳信息
| summarize 
    AgentTypes = make_set(AgentType),
    AgentLastHeartbeats = make_bag(pack(AgentType, LastHeartbeat)) 
    by Computer
// 筛选同时存在两种代理的服务器
| where array_length(AgentTypes) == 2
// 输出结果字段
| project Computer, AgentTypes, AgentLastHeartbeats

查询逻辑说明

  1. 提取并过滤代理类型:从Heartbeat表的Properties字段中提取agentType,只保留AMA和MMA类型的记录。
  2. 分组获取单代理最后心跳:按服务器和代理类型分组,得到每个代理在该服务器上的最后心跳时间。
  3. 聚合服务器的代理信息:再次按服务器分组,用make_set收集该服务器的所有代理类型,用make_bag打包各代理的最后心跳时间。
  4. 筛选双代理服务器:只保留代理类型集合长度为2的服务器,即同时安装了AMA和MMA的目标服务器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:52:45