我可以使用下面的代码很好地检索中转网关指标,但是当我为 tgw 附件执行此操作时它不起作用。但我知道有统计信息,因为网络管理器仪表板显示了 tgw 和所有附件的指标并绘制了值。
下面的代码有效,我得到了 tgw 的响应数组,区域设置正确等。tgw 附件也在同一个区域,所以我使用相同的 cloudwatch 对象。
tgw 和 tgw 附件所要求的时间范围是相同的,它们都是同时创建的,所以我很确定这不是时间范围问题。
response = cloudwatch.get_metric_data(
MetricDataQueries=[
{
'Id': 'm1',
'MetricStat': {
'Metric': {
'Namespace': 'AWS/TransitGateway',
'MetricName': 'BytesIn',
'Dimensions': [
{
'Name': 'TransitGateway',
'Value': 'tgw-0456c4c6fe596f58b',
},
]
},
'Period': 360,
'Stat': 'Sum',
'Unit': 'None'
},
'ReturnData': True,
},
],
StartTime=datetime(2020, 10, 1),
EndTime=datetime.now(),
)
下面的代码带回一个空数组,返回码是 200 并且不抱怨语法。tgw attach id 是正确的,实际上是附加到上面的 tgw 上的。我知道最近发生了对粒度 tgw 附加云指标的支持,所以它可能还没有通过 API 支持?
response_attach = cloudwatch.get_metric_data(
MetricDataQueries=[
{
'Id': 'm1',
'MetricStat': {
'Metric': {
'Namespace': 'AWS/TransitGatewayAttachment',
'MetricName': 'BytesIn',
'Dimensions': [
{
'Name': 'TransitGatewayAttachment',
'Value': 'tgw-attach-08ed0e1d3e5f488d8'
},
]
},
'Period': 360,
'Stat': 'Sum',
'Unit': 'None'
},
'ReturnData': True,
},
],
StartTime=datetime(2020, 10, 1),
EndTime=datetime.now(),
)
结果看起来像这样,没有 Values 结果,其中 tgw 的第一组代码在 Values 中返回一个数组。我尝试了不同的 Stat、Period、MetricName 无济于事。
{'MetricDataResults': [{'Id': 'm1', 'Label': 'BytesIn', 'Timestamps': [], 'Values': [], 'StatusCode': 'Complete'}], 'Messages': [], 'ResponseMetadata': {'RequestId': '495f97d5-5862-49f2-b8d0-91346606c88a', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '495f97d5-5862-49f2-b8d0-91346606c88a', 'content-type': 'text/xml', 'content-length': '490', 'date': 'Sat, 03 Oct 2020 10:57:38 GMT'}, 'RetryAttempts': 0}}
有什么明显的我做错了吗?提前致谢。