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

Kibana Watcher嵌套聚合条件脚本执行报错求助

问题分析

你的错误根源在于**buckets是数组(列表)结构**,直接通过buckets.metricAgg访问嵌套聚合是非法的——数组本身没有metricAgg属性,必须遍历数组中的每个桶元素,才能访问对应桶内的聚合结果。

解决方案

根据你的实际需求,分两种场景处理:

场景1:仅判断桶的数量是否≥1

如果你的目标是确认是否存在至少一个符合条件的主机桶,直接修改条件脚本为:

"condition": { "script": { "source": "ctx.payload.aggregations.modules.buckets.size() >= 1", "lang": "painless" } }

场景2:判断是否存在至少一个桶的平均值满足特定条件

如果需要基于metricAgg的平均值做判断(比如检查是否有主机的平均值≥2),需要遍历buckets数组并逐个验证桶内的聚合值:

"condition": { "script": { "source": "ctx.payload.aggregations.modules.buckets.stream().anyMatch(bucket -> bucket.metricAgg.value >= 2)", "lang": "painless" } }
逻辑验证

结合你提供的聚合结果示例:

  • 场景1的脚本会返回true(桶数量为5,满足≥1的条件)
  • 场景2的脚本也会返回true(server2、server3的平均值均≥2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 00:12:08