L'API cloudwatch pour récupérer les métriques TransitGatewayAttachment via python ne fonctionne pas
Je peux récupérer les métriques de transitgateway en utilisant le code ci-dessous, mais cela ne fonctionne pas lorsque je le fais pour la pièce jointe tgw. Mais je sais qu'il y a des statistiques parce que le tableau de bord du gestionnaire de réseau affiche des métriques pour le tgw et toutes les pièces jointes et trace les valeurs.
Le code ci-dessous fonctionne et je reçois un tableau de réponse pour le tgw, la région est configurée correctement, etc. La pièce jointe tgw est également dans la même région, donc j'utilise le même objet cloudwatch.
La plage de temps demandée est identique pour les attachements tgw et tgw et ils ont tous deux été créés en même temps, donc je suis presque sûr que ce n'est pas un problème de plage de temps.
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(),
)
Le code ci-dessous ramène un tableau vide, le code de retour est 200 et ne se plaint pas de la syntaxe. l'ID d'attachement tgw est correct et est en fait attaché au tgw ci-dessus. Je sais que la prise en charge des métriques granulaires tgw attach cloud s'est produite récemment, alors peut-être qu'elle n'est pas encore prise en charge via l'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(),
)
Les résultats ressemblent à ceci, aucun résultat Values, où, comme premier ensemble de code du tgw, renvoie un tableau dans Values. J'ai essayé différents Stat, Period, MetricName en vain.
{'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}}
Quelque chose d'évident que je fais mal? Merci d'avance.
Réponses
Votre espace de noms est incorrect:
'Namespace': 'AWS/TransitGatewayAttachment',
ça devrait être:
'Namespace': 'AWS/TransitGateway',
La raison en est qu'il TransitGatewayAttachments'agit d'une dimension dans l' AWS/TransitGatewayespace de noms, comme expliqué dans:
- Métriques CloudWatch pour vos passerelles de transit
Cela a finalement fonctionné et je pense que cela me donne les métriques d'attachement. Il semble donc que vous deviez donner à la fois le tgw et la pièce jointe dans la dimension, mais cela ne renvoie qu'un tableau de résultats et en le regardant et en le comparant lorsque je ne demande que tgw, il semble aimer la valeur correcte juste pour la pièce jointe.
J'ai obtenu l'indice en regardant la console cloudwatch mgmt et en regardant le graphique, l'onglet source a montré cet extrait ci-dessous et j'ai remarqué qu'il spécifiait le tgw et la pièce jointe bien qu'il ne représentait que la pièce jointe.
{
"view": "timeSeries",
"stacked": false,
"metrics": [
[ "AWS/TransitGateway", "BytesIn", "TransitGatewayAttachment", "tgw-attach-08ed0e1d3e5f488d8", "TransitGateway", "tgw-0456c4c6fe596f58b" ]
],
"region": "us-east-1"
}
Code qui fonctionne
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(),
)