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

如何查找并修改AWS CloudWatch高分辨率指标?排查相关报错

解决AWS CloudWatch高分辨率指标相关问题

1. 查找所有高分辨率指标

AWS定义高分辨率指标为上报间隔小于60秒的指标,这类指标默认仅保留3小时。以下是两种查找方式:

用AWS CLI查询

运行命令过滤出所有间隔小于60秒的指标:

aws cloudwatch list-metrics --query 'Metrics[?Period < 60]'

指定应用命名空间缩小范围:

aws cloudwatch list-metrics --namespace "你的应用命名空间" --query 'Metrics[?Period < 60]'

通过CloudWatch控制台查找

  • 进入CloudWatch控制台的指标页面
  • 点击右上角的添加过滤器,选择Period,设置条件为小于 60
  • 筛选结果即为高分辨率指标

2. 将指标修改为非高分辨率

已上报的高分辨率指标无法修改存储周期,只能调整后续上报逻辑:

调整Micrometer配置

虽然Micrometer默认highResolution=false、step=2m,但需确认代码中无手动覆盖:

  • 检查是否有代码显式设置highResolution=true,或把step设为小于60秒的值
  • 自定义CloudWatch配置时明确指定标准分辨率参数:
    @Bean
    public CloudWatchConfig cloudWatchConfig() {
        return new CloudWatchConfig() {
            @Override
            public String get(String key) {
                switch (key) {
                    case "cloudwatch.namespace":
                        return "你的应用命名空间";
                    case "cloudwatch.step":
                        return "PT1M"; // 1分钟间隔,标准分辨率
                    case "cloudwatch.high-resolution":
                        return "false";
                    default:
                        return null;
                }
            }
        };
    }
    

备份历史高分辨率数据

若需保留历史数据,可通过CloudWatch指标流将数据导出到S3,或使用CloudWatch API批量导出。

3. 排查AWS判定为高分辨率的原因

  • 检查指标实际上报间隔:在CloudWatch指标详情页查看统计周期,确认是否存在小于60秒的数据点
  • 检查Micrometer依赖:确认Spring Boot Actuator等第三方依赖未自动调整上报间隔
  • 查看CloudTrail日志:搜索PutMetricData调用,检查请求中数据点的时间戳间隔,确认实际上报频率
  • 排查批量上报逻辑:若Micrometer批量发送时,同一指标的多个数据点间隔小于60秒,也会被判定为高分辨率

4. 解决查询时的3小时数据报错

即使使用1分钟/5分钟间隔查询,只要指标本身是高分辨率类型,CloudWatch仍会限制仅能查询最近3小时数据:

  • 先通过上述方法确认查询的指标是否为高分辨率
  • 确保后续上报的指标已切换为标准分辨率
  • 如需长期查询历史高分辨率数据,可创建指标数学表达式或结合归档到S3的数据进行查询

内容的提问来源于stack exchange,提问作者Dean Hiller

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:45:48