Comment puis-je éviter la limitation lorsque j'appelle PutMetricData dans l'API CloudWatch ?

Date de la dernière mise à jour : 06/11/2020

Je reçois l'erreur « 400 ThrottlingException » pour les appels d'API PutMetricData dans Amazon CloudWatch. Comment puis-je corriger ce problème ?

Brève description

Lorsque vous recevez l'erreur « 400 ThrottlingException » pour les appels d'API PutMetricData dans CloudWatch, vous recevez également la réponse détaillée suivante :

<ErrorResponse xmlns="http://monitoring.amazonaws.com/doc/2010-08-01/">
  <Error>
    <Type>Sender</Type>
    <Code>Throttling</Code>
    <Message>Rate exceeded</Message>
  </Error>
  <RequestId>2f85f68d-980b-11e7-a296-21716fd2d2e3</RequestId>
</ErrorResponse>

Les demandes CloudWatch sont limitées pour chaque compte Amazon Web Services (AWS) en fonction de la région afin d'améliorer les performances du service. Pour connaître les quotas de demande d'API PutMetricData actuels, consultez Quotas de service CloudWatch.

Remarque : tous les appels adressés à l'API PutMetricData dans une région AWS sont pris en compte dans le taux de demandes maximales autorisées. Ce nombre inclut les appels à partir de n'importe quelle application personnalisée ou tierce, tels que des appels de l'agent CloudWatch, de l'interface de ligne de commande AWS (CLI AWS) ou de l'AWS Management Console.

Résolution

Il est recommandé d'utiliser les méthodes suivantes pour réduire votre taux d'appels et d'éviter la limitation d'API :

  • Distribuez vos appels d'API uniformément au fil du temps plutôt que de passer plusieurs appels d'API en un court délai. Si vous avez besoin que ces données soient disponibles avec une résolution d'une minute, vous disposez d'une minute entière pour émettre cette métrique. Utilisez l'instabilité (retard aléatoire) pour envoyer des points de données à différents moments.
  • Combinez autant de métriques que possible dans un seul appel d'API. Par exemple, un seul appel PutMetricData peut inclure 20 métriques et 150 points de données. Vous pouvez également utiliser des ensembles de données regroupées au préalable, comme StatisticSet, afin de publier des points de données regroupés, ce qui réduit le nombre d'appels PutMetricData par seconde.
  • Essayez d'effectuer un nouvel appel avec une interruption exponentielle et une instabilité.

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?