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

如何在CloudWatch Metrics Insights与Grafana的WHERE子句中过滤服务列表?

解决方案:ECS集群特定服务的Grafana告警过滤

查询层面过滤(推荐)

CloudWatch Metrics Insights的语法和标准SQL有差异,你之前的写法踩了两个关键坑:

  • 不支持IN操作符,得用多个OR条件替代
  • LIKE的通配符是%而非*

1. 过滤指定服务列表

把IN替换成多个OR判断,示例查询:

SELECT MAX(RunningTaskCount)
FROM "ECS/ContainerInsights"
WHERE ServiceName = 'finance-app1' OR ServiceName = 'finance-app2'
GROUP BY ServiceName

2. 过滤特定前缀的服务

将通配符换成%即可实现前缀匹配,示例查询:

SELECT MAX(RunningTaskCount)
FROM "ECS/ContainerInsights"
WHERE ServiceName LIKE 'finance-app%'
GROUP BY ServiceName

如果需要更复杂的匹配规则(比如前缀加固定后缀),可以组合LIKE使用:

SELECT MAX(RunningTaskCount)
FROM "ECS/ContainerInsights"
WHERE ServiceName LIKE 'finance-%-v2'
GROUP BY ServiceName

注:如果上述查询仍报错,可尝试将维度名替换为大写的SERVICE_NAME,部分ECS环境中维度名称为大写格式。

告警规则层面过滤(备选)

如果查询层面的过滤无法满足需求,还可以在Grafana告警规则里做事后过滤:

  • 进入Grafana告警规则的「Alert」标签页,找到「Conditions」配置区域
  • 选中你的查询结果,添加过滤条件:
    • 针对特定服务:选择ServiceName is one of ['finance-app1', 'finance-app2']
    • 针对特定前缀:选择ServiceName starts with 'finance-app'
  • 配置完成后,即使查询返回全集群服务数据,告警也只会在符合过滤条件的服务触发阈值时推送通知

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 10:13:15