Grafana 9.4.7对接CloudWatch数据源告警维度值拼接异常求助
解决Grafana CloudWatch告警维度值拼接异常的方案
1. 检查面板查询的维度分组设置
- 得保证面板里的CloudWatch查询是按单个维度独立分组的,别把多个维度揉成一个分组。在查询编辑器里:
- 针对AWS/Kafka的SumOffsetLag指标,分别添加
Cluster Name、Consumer Group、Topic三个维度,每个维度单独配置,不要在同一个输入框里拼接多个维度值。 - 确认查询的
Group by选项设为Dimensions,并且勾选所有需要的维度,确保每个维度都是独立的分组项。
- 针对AWS/Kafka的SumOffsetLag指标,分别添加
2. 手动调整告警标签的提取逻辑
- 在告警配置的
Labels部分,别依赖自动提取的维度标签,手动指定每个维度的提取规则:- Grafana会把CloudWatch带空格的维度名转成驼峰格式,比如
Cluster Name会变成ClusterName,所以提取Cluster Name值用$labels.ClusterName - 同理,
Consumer Group对应$labels.ConsumerGroup,Topic直接用$labels.Topic - 如果自动转换的命名不对,就在查询编辑器的
Alias里手动设置别名,比如写成Cluster: ${Cluster Name}, Group: ${Consumer Group}, Topic: ${Topic},之后在告警标签里从别名拆分提取对应值。
- Grafana会把CloudWatch带空格的维度名转成驼峰格式,比如
3. 修复版本已知Bug
- Grafana 9.4.x版本存在CloudWatch数据源维度解析的已知问题,推荐升级到9.4.10及以上版本(该版本修复了多个CloudWatch维度相关的告警Bug)。如果暂时无法升级,试试临时方案:
- 在告警消息模板里用字符串拆分函数提取单个维度值。比如拼接后的维度值格式是
ClusterName+ConsumerGroup+Topic,取Cluster Name用{{ split $labels.dimension "+" | first }},取Consumer Group用{{ split $labels.dimension "+" | index 1 }},取Topic用{{ split $labels.dimension "+" | index 2 }}。
- 在告警消息模板里用字符串拆分函数提取单个维度值。比如拼接后的维度值格式是
4. 验证查询与告警的一致性
- 保存面板查询后,先在面板预览数据,确认每个时间序列的图例是按单个维度区分的(比如显示
ClusterA-GroupX-TopicY而非所有维度值混在一起)。 - 在告警规则的
Preview alerts中,检查每个告警实例的标签值是否对应单个维度,确保没有拼接情况。
内容的提问来源于stack exchange,提问作者OriM
相关产品推荐
相关产品推荐

