我有一个以秒为单位的自定义云观察指标。(代表缓存的年龄)
通常值约为 125,000 我想将它们转换为小时 - 以提高可读性。
那可能吗?
我有一个以秒为单位的自定义云观察指标。(代表缓存的年龄)
通常值约为 125,000 我想将它们转换为小时 - 以提高可读性。
那可能吗?
随着Metrics Math的加入,这种情况发生了变化。您可以手动(从控制台)和从 CloudFormation 仪表板模板对数据进行各种转换。
从控制台:查看上面的链接,上面写着:
将数学表达式添加到图形
在https://console.aws.amazon.com/cloudwatch/打开 CloudWatch 控制台。
创建或编辑图形或线条小部件。
选择图表指标。
选择添加数学表达式。表达式会出现一个新行。
对于详细信息列,键入数学表达式。以下部分中的表格列出了您可以在表达式中使用的函数。
要将度量或另一个表达式的结果用作此表达式的公式的一部分,请使用 Id 列中显示的值。例如,
m1+m2
或e1-MIN(e1)
。
您可以添加作为 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"}]
]
使度量不可见将其从图表中移除,同时仍然允许我们从中计算我们的表达式。
Cloudwatch 不进行任何单位转换(即秒到小时等)。因此,您不能使用 AWS 控制台来显示转换为小时的“秒”数据点值。
您可以将度量值发布为“小时”(将“单位”字段留空或将其设置为“无”)。
否则,如果您仍想为数据点提供单位“秒”,您可以检索数据点(使用 GetMetricStatistics API)并使用其他仪表板/图形解决方案绘制值。