首页 > 解决方案 > 控制自定义指标在 AWS Cloudwatch 中的存储时间

问题描述

AWS Cloudwatch 存储自定义指标的持续时间取决于指标的期限:

  • 周期小于 60 秒的数据点可使用 3 小时。这些数据点是高分辨率的自定义指标。
  • 周期为 60 秒(1 分钟)的数据点可使用 15 天
  • 周期为 300 秒(5 分钟)的数据点可使用 63 天
  • 周期为 3600 秒(1 小时)的数据点可使用 455 天(15 个月)

来自https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html

但是,我无法找到如何使用 JS SDK 为给定指标设置周期:

// Calling the putMetricData operation

var params = {
  MetricData: [ /* required */
    {
      MetricName: 'STRING_VALUE', /* required */
      Counts: [
        'NUMBER_VALUE',
        /* more items */
      ],
      Dimensions: [
        {
          Name: 'STRING_VALUE', /* required */
          Value: 'STRING_VALUE' /* required */
        },
        /* more items */
      ],
      StatisticValues: {
        Maximum: 'NUMBER_VALUE', /* required */
        Minimum: 'NUMBER_VALUE', /* required */
        SampleCount: 'NUMBER_VALUE', /* required */
        Sum: 'NUMBER_VALUE' /* required */
      },
      StorageResolution: 'NUMBER_VALUE',
      Timestamp: new Date || 'Wed Dec 31 1969 16:00:00 GMT-0800 (PST)' || 123456789,
      Unit: Seconds | Microseconds | Milliseconds | Bytes | Kilobytes | Megabytes | Gigabytes | Terabytes | Bits | Kilobits | Megabits | Gigabits | Terabits | Percent | Count | Bytes/Second | Kilobytes/Second | Megabytes/Second | Gigabytes/Second | Terabytes/Second | Bits/Second | Kilobits/Second | Megabits/Second | Gigabits/Second | Terabits/Second | Count/Second | None,
      Value: 'NUMBER_VALUE',
      Values: [
        'NUMBER_VALUE',
        /* more items */
      ]
    },
    /* more items */
  ],
  Namespace: 'STRING_VALUE' /* required */
};
cloudwatch.putMetricData(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#putMetricData-property

文档中有其他地方的引用period,但与 MetricData 没有直接关系。“数据点”与“度量数据”不同吗?

如何控制指标数据的存活时间?

编辑,更多信息:

CloudWatch 指标随时间累积;随着指标的老化,分辨率会有效降低。这是时间表:

1 second metrics are available for 3 hours.
60 second metrics are available for 15 days.
5 minute metrics are available for 63 days.
1 hour metrics are available for 455 days (15 months).

当您调用 GetMetricStatistics 时,您可以为高分辨率指标指定 1、5、10、30 或 60 秒的任意倍数。您可以为标准指标指定 60 秒的任意倍数。来自https://aws.amazon.com/blogs/aws/new-high-resolution-custom-metrics-and-alarms-for-amazon-cloudwatch/ 根据这篇文章,听起来数据点会自动平均指标为他们老了。在这种情况下,这是否意味着数据点只有在 15 个月完全过期后才会被完全删除?

标签: javascriptamazon-web-servicesaws-sdkamazon-cloudwatch

解决方案


您无法控制数据将存储多长时间,您可以控制发布数据的频率。

例如,如果您每分钟发布一次数据,您可以在 15 天内以 1 分钟的分辨率绘制它。当数据老化超过 15 天时,您只能以 5 分钟的分辨率绘制它。1小时也一样。

分辨率低于 1 分钟的数据除外。在这种情况下,您需要发布所需的分辨率。如果您每秒发布一次数据,并且希望以 1 秒的分辨率绘制它,您可以设置StorageResolution=1.

Period用于绘制数据图表或通过 API 检索数据。例如,即使您每分钟发布一次数据,您也可能希望绘制 1 小时或 1 天的数据聚合图。在这种情况下,您可以将周期设置为 3600 或 86400。


推荐阅读