这就是我想要的:使用Telegraf获取RDS上的可用磁盘空间的当前值。
为此,我正在使用Telegraf的Cloudwatch输入(参见下面的配置)。我得到了一些指标,但它们似乎都具有相同的值。 Max == Min,对我来说听起来不对。我期望Max是RDS光盘的大小,Min是当前未使用的空间。我使用AWS CLI进行的测试也支持这一点。
那么,我做错了什么?这是电报中的一个错误吗?
这是我的telegraf配置:
[[inputs.cloudwatch]]
region = "us-west-2"
period = '1m'
delay = '5m'
interval = '5m'
namespace = 'AWS/RDS'
[[inputs.cloudwatch.metrics]]
names = ['FreeStorageSpace']
[[inputs.cloudwatch.metrics.dimensions]]
name = 'DBInstanceIdentifier'
value = '*'
这是一个RDS实例的输出 - 注意值'103560384512'如何重复最大值,最小值,平均值和总和:
> cloudwatch_aws_rds,db_instance_identifier=my-rds-instance,host=ip-172-31-47-37,node_name=my-rds-instance,region=us-west-2,unit=bytes free_storage_space_average=103560384512,free_storage_space_maximum=103560384512,free_storage_space_minimum=103560384512,free_storage_space_sample_count=1,free_storage_space_sum=103560384512 1547418720000000000
这是AWS的CLI等价物。我已经尝试过Max,Min和我的数字非常不同,这是有道理的。以下是另一张光盘上Min的输出:
aws cloudwatch get-metric-statistics --namespace AWS/RDS --metric-name FreeStorageSpace --region us-east-2 --start-time 2019-01-12T20:00:00Z --end-time 2019-01-12T23:59:00Z --period 3600 --statistics Minimum
"Datapoints": [
{
"Timestamp": "2019-01-12T21:00:00Z",
"Minimum": 19796946944.0,
"Unit": "Bytes"
},
{
"Timestamp": "2019-01-12T23:00:00Z",
"Minimum": 19792580608.0,
"Unit": "Bytes"
},
{
"Timestamp": "2019-01-12T22:00:00Z",
"Minimum": 19794690048.0,
"Unit": "Bytes"
},
{
"Timestamp": "2019-01-12T20:00:00Z",
"Minimum": 19798822912.0,
"Unit": "Bytes"
}
],
"Label": "FreeStorageSpace"
好吧,我明白了 - 这里没有什么不妥,但这有点违反直觉。 FreeStorageSpace指标是一个指标,因此它可以具有最小值,最大值和平均值 - 随着时间的推移进行采样。如果你在'1m'的时间段内对它进行采样(就像我一样),那么它只是一个数据点,然后显然是max == min == average。此外,它返回的值以字节为单位,要将其返回Mb,您需要将其除以(1024 ^ 2)