CloudWatch自定义仪表板JSON如何动态匹配所有新增指标
CloudWatch 仪表板动态拉取匹配指标实现方案
不需要手动逐个添加指标,也不需要编写定时脚本更新配置,直接使用CloudWatch原生支持的SEARCH指标表达式即可实现自动匹配拉取,后续新增的同规则指标会自动展示在图表中。
具体配置修改方式
将原有部件配置中写死的metrics数组内容,替换为SEARCH动态匹配表达式即可,修改后的完整部件配置参考如下:
{ "height": 6, "width": 6, "y": 54, "x": 0, "type": "metric", "properties": { "view": "timeSeries", "stacked": false, "metrics": [ [ { "expression": "SEARCH('{service-es-dashboard,service} service=\"es-dashboard\" MetricName startsWith fact-bulk-loader', 'Sum', 300)", "id": "dynamic_metrics", "visible": true } ] ], "region": "us-east-1", "title": "ES-documents-count" } }
配置说明
- 表达式中
{service-es-dashboard,service} service="es-dashboard"用于指定匹配范围:命名空间固定为service-es-dashboard,仅匹配service维度值为es-dashboard的指标,和你原有配置的过滤逻辑完全一致 MetricName startsWith fact-bulk-loader为指标名匹配规则,会自动匹配所有以fact-bulk-loader开头的指标,覆盖你当前的fact-bulk-loader、fact-bulk-loader-1、fact-bulk-loader-2以及后续新增的同前缀指标- 表达式第二个参数为指标聚合统计方式,可根据业务实际需求替换为
Average、Maximum、Minimum等常用统计值 - 表达式第三个参数为指标聚合粒度,单位为秒,示例中300对应5分钟粒度,可根据你的监控查看需求调整
- 如果需要更宽松的匹配规则,可将
MetricName startsWith fact-bulk-loader替换为MetricName:"fact-bulk-loader",只要指标名包含该字符串就会被自动匹配拉取
配置修改完成后直接保存仪表板即可生效,新上报的符合规则的指标会在1-2分钟内自动展示在图表中,无需再手动修改JSON配置。
不要采用Lambda定时调用CloudWatch API更新仪表板配置的方案,该方案维护成本高、延迟高,原生SEARCH表达式是官方推荐的动态指标匹配方案,稳定性和实时性都更优。
内容的提问来源于stack exchange,提问作者Queen Anonymous
相关产品推荐
相关产品推荐

