为什么 GetMetricData 返回一组空值?
Why is GetMetricData returning an empty set of values?
使用 JS AWS SDK 并传递以下参数:
{
"StartTime": 1548111915,
"EndTime": 1549321515,
"MetricDataQueries": [
{
"Id": "m1",
"MetricStat": {
"Metric": {
"MetricName": "NetworkOut",
"Namespace": "AWS/EC2",
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-[redacted]"
}
]
},
"Period": 300,
"Stat": "Average",
"Unit": "Gigabytes"
}
}
]
}
这是输出:
[
{
"Id": "m1",
"Label": "NetworkOut",
"Timestamps": [],
"Values": [],
"StatusCode": "Complete",
"Messages": []
}
]
处找到的示例请求非常匹配
我确信该实例是一个有效实例,在该日期范围内肯定有 NetworkOut 流量。
Values
数组中缺少元素的原因是什么?
我试过了,得到了和你一样的(空)结果。
然后我把Gigabytes
改成了Bytes
,得到了结果。因此,您可能需要减小单位大小。
这是我用于 AWS CLI 的命令:
aws cloudwatch get-metric-data --start-time 1548111915 --end-time 1549321515 --metric-data-queries '[
{
"Id": "m1",
"MetricStat": {
"Metric": {
"MetricName": "NetworkOut",
"Namespace": "AWS/EC2",
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-xxx"
}
]
},
"Period": 300,
"Stat": "Average",
"Unit": "Bytes"
}
}
]'
更好的解决方案是完全省略 "Unit",这样 AWS 就可以选择合适的单位,不仅在规模上,而且在类别上。
对于未来的审问者,有多种原因导致 aws cli 默默地 returns 空数据集而不是错误,因为输入要求比标准用户的期望更严格,但输出要求却很多松散。例子
- 单位错误
- 维度列表不完整
- 错别字,case-sensitivity,等等
参考文献:
使用 JS AWS SDK 并传递以下参数:
{
"StartTime": 1548111915,
"EndTime": 1549321515,
"MetricDataQueries": [
{
"Id": "m1",
"MetricStat": {
"Metric": {
"MetricName": "NetworkOut",
"Namespace": "AWS/EC2",
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-[redacted]"
}
]
},
"Period": 300,
"Stat": "Average",
"Unit": "Gigabytes"
}
}
]
}
这是输出:
[
{
"Id": "m1",
"Label": "NetworkOut",
"Timestamps": [],
"Values": [],
"StatusCode": "Complete",
"Messages": []
}
]
- 处找到的示例请求非常匹配
我确信该实例是一个有效实例,在该日期范围内肯定有 NetworkOut 流量。
Values
数组中缺少元素的原因是什么?
我试过了,得到了和你一样的(空)结果。
然后我把Gigabytes
改成了Bytes
,得到了结果。因此,您可能需要减小单位大小。
这是我用于 AWS CLI 的命令:
aws cloudwatch get-metric-data --start-time 1548111915 --end-time 1549321515 --metric-data-queries '[
{
"Id": "m1",
"MetricStat": {
"Metric": {
"MetricName": "NetworkOut",
"Namespace": "AWS/EC2",
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-xxx"
}
]
},
"Period": 300,
"Stat": "Average",
"Unit": "Bytes"
}
}
]'
更好的解决方案是完全省略 "Unit",这样 AWS 就可以选择合适的单位,不仅在规模上,而且在类别上。
对于未来的审问者,有多种原因导致 aws cli 默默地 returns 空数据集而不是错误,因为输入要求比标准用户的期望更严格,但输出要求却很多松散。例子
- 单位错误
- 维度列表不完整
- 错别字,case-sensitivity,等等
参考文献: