4

我有一个以秒为单位的自定义云观察指标。(代表缓存的年龄)

通常值约为 125,000 我想将它们转换为小时 - 以提高可读性。

那可能吗?

4

2 回答 2

14

随着Metrics Math的加入,这种情况发生了变化。您可以手动(从控制台)和从 CloudFormation 仪表板模板对数据进行各种转换。


从控制台:查看上面的链接,上面写着:

将数学表达式添加到图形

  1. 在https://console.aws.amazon.com/cloudwatch/打开 CloudWatch 控制台。

  2. 创建或编辑图形或线条小部件。

  3. 选择图表指标。

  4. 选择添加数学表达式。表达式会出现一个新行。

  5. 对于详细信息列,键入数学表达式。以下部分中的表格列出了您可以在表达式中使用的函数。

    要将度量或另一个表达式的结果用作此表达式的公式的一部分,请使用 Id 列中显示的值。例如,m1+m2e1-MIN(e1)


CloudFormation 模板

您可以添加作为 Metrics Math 表达式的新指标,转换现有指标。您可以加、减、乘等指标和标量。在您的情况下,您可能只想使用除法,如下例所示:

metrics假设您的模板中有以下存储桶请求延迟对象:

"metrics":[
  ["AWS/S3","TotalRequestLatency","BucketName","MyBucketName"]
]

延迟默认值以毫秒为单位。让我们在几秒钟内绘制它,只是为了好玩。1s = 1,000ms所以我们将添加以下内容:

"metrics":[
  ["AWS/S3","TotalRequestLatency","BucketName","MyBucketName",{"id": "timeInMillis"}],
  [{"expression":"timeInMillis / 1000", "label":"LatencyInSeconds","id":"timeInSeconds"}]
]

请注意,expression可以访问ID其他指标。当事情变得更复杂时,有用的命名会很有用,但关键是将表达式中的变量与ID分配给相应指标的变量相匹配。

这给我们留下了一个图表,上面有两个指标:一毫秒,另一秒。如果我们想丢失毫秒,我们可以,但是我们需要保留度量值来计算数学表达式,所以我们使用以下解决方法:

"metrics":[
  ["AWS/S3","TotalRequestLatency","BucketName","MyBucketName",{"id": "timeInMillis","visible":false}],
  [{"expression":"timeInMillis / 1000", "label":"LatencyInSeconds","id":"timeInSeconds"}]
]

使度量不可见将其从图表中移除,同时仍然允许我们从中计算我们的表达式。

于 2019-03-12T02:18:53.113 回答
1

Cloudwatch 不进行任何单位转换(即秒到小时等)。因此,您不能使用 AWS 控制台来显示转换为小时的“秒”数据点值。

您可以将度量值发布为“小时”(将“单位”字段留空或将其设置为“无”)。

否则,如果您仍想为数据点提供单位“秒”,您可以检索数据点(使用 GetMetricStatistics API)并使用其他仪表板/图形解决方案绘制值。

于 2013-02-13T14:20:24.357 回答