如何在Grafana 8.4.5中用正则过滤CloudWatch的SNS主题指标?
Grafana CloudWatch查询含'errors'的SNS主题的正确语法
你之前的查询语法错误在于CloudWatch不支持用= '/*error*/'这种方式做正则匹配,正确的做法是用LIKE通配符或MATCHES正则操作符来过滤主题名称,同时可以一次性匹配多个符合条件的主题。
两种可行的查询方式
1. 通配符匹配(简单场景)
如果只是要匹配名称包含errors的所有SNS主题,用LIKE配合%通配符即可,%代表任意长度的任意字符:
SELECT SUM(NumberOfMessagesPublished) FROM "AWS/SNS" WHERE TopicName LIKE '%errors%'
2. 正则表达式匹配(复杂场景)
如果需要更灵活的匹配规则(比如匹配以errors结尾、或包含特定前缀+errors的主题),可以用MATCHES操作符,CloudWatch采用RE2正则语法:
SELECT SUM(NumberOfMessagesPublished) FROM "AWS/SNS" WHERE TopicName MATCHES '.*errors.*'
这里.*errors.*表示主题名称中任意位置包含errors子串,能覆盖所有符合要求的主题。
关键说明
- CloudWatch Metric Query里,
=是精确匹配,LIKE支持模糊匹配,MATCHES支持正则匹配,三者不能混用错误的格式。 - 确认你的IAM权限允许访问这些SNS主题的指标,避免因权限问题导致查询失败。
- Grafana 8.4.5的CloudWatch查询完全兼容AWS原生的Metric Query语法,遵循AWS官方规则即可。
内容的提问来源于stack exchange,提问作者Bar Elhanati
相关产品推荐
相关产品推荐

