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

如何让CloudWatch Log Insights的count_distinct()无日志时返回0?

解决CloudWatch Log Insights count_distinct无匹配时返回0的问题

默认情况下,当你的filter语句没有匹配到任何日志记录时,后续的stats不会输出任何结果。要实现无匹配时返回0,可以通过union拼接默认结果的方式处理,具体修改后的查询语句如下:

fields @message
| filter method= "Login" AND ispresent(accountLocked)
| stats count_distinct(userID) as distinctUsers
| union 
  (stats 0 as distinctUsers)
| stats max(distinctUsers) as distinctUsers

逻辑说明:

  • 前3行保留你原有的查询逻辑,统计符合条件的去重userID数量并命名为distinctUsers。如果有匹配日志,这一步会输出真实计数值;无匹配时则无输出。
  • union语句拼接一个返回固定值0的统计结果,确保无论原查询是否有输出,都会至少存在一行数据。
  • 最后一行用max(distinctUsers)取两个结果中的最大值:如果原查询有真实计数(大于0),就保留真实值;如果原查询无输出,就取union传入的0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 12:20:54