Python을 통해 TransitGatewayAttachment 메트릭을 검색하는 cloudwatch API가 작동하지 않음
아래 코드를 사용하여 Transitgateway 메트릭을 제대로 검색 할 수 있지만 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 첨부 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(),
)
결과는 다음과 같으며 값 결과가 없습니다. 여기서 tgw에 대한 첫 번째 코드 집합은 값의 배열을 반환합니다. 다른 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}}
내가 뭘 잘못하고 있는지 명백한 거? 미리 감사드립니다.
답변
네임 스페이스가 올바르지 않습니다.
'Namespace': 'AWS/TransitGatewayAttachment',
그것은해야한다:
'Namespace': 'AWS/TransitGateway',
그 이유는 다음에 설명 된대로 네임 스페이스 TransitGatewayAttachment내의 차원이기 때문입니다 AWS/TransitGateway.
- 전송 게이트웨이에 대한 CloudWatch 지표
이것은 마침내 효과가 있었고 첨부 파일 메트릭을 제공하고 있다고 생각합니다. 따라서 차원에서 tgw와 첨부 파일을 모두 제공해야하지만 1 개의 결과 배열 만 반환하고 tgw 만 요청할 때 비교하면 첨부 파일에 대한 올바른 값을 좋아하는 것 같습니다.
cloudwatch 관리 콘솔을보고 그래프를 보면 단서가 생겼습니다. 소스 탭에이 스 니펫이 아래에 표시되었으며 첨부 파일 만 그래프로 표시했지만 tgw 및 첨부 파일을 지정했습니다.
{
"view": "timeSeries",
"stacked": false,
"metrics": [
[ "AWS/TransitGateway", "BytesIn", "TransitGatewayAttachment", "tgw-attach-08ed0e1d3e5f488d8", "TransitGateway", "tgw-0456c4c6fe596f58b" ]
],
"region": "us-east-1"
}
작동하는 코드
response = cloudwatch.get_metric_data(
MetricDataQueries=[
{
'Id': 'm1',
'MetricStat': {
'Metric': {
'Namespace': 'AWS/TransitGateway',
'MetricName': 'BytesIn',
'Dimensions': [
{
'Name': 'TransitGateway',
'Value': 'tgw-0456c4c6fe596f58b',
},
{
'Name': 'TransitGatewayAttachment',
'Value': 'tgw-attach-08ed0e1d3e5f488d8'
},
]
},
'Period': 360, # 3600,
'Stat': 'Sum', # 'SampleCount',
'Unit': 'None'
},
'ReturnData': True,
},
],
StartTime=datetime(2020, 10, 1),
EndTime=datetime.now(),
)