Passer au contenu

Comment puis-je résoudre les erreurs de limitation dans mes journaux CloudWatch ?

Lecture de 5 minute(s)
0

Le message d'erreur « RequestLimitExceeded » ou « ThrottlingException » s'affiche lorsque j’utilise des journaux Amazon CloudWatch et que mon appel d'API est limité.

Brève description

Lorsque vous utilisez les journaux CloudWatch, il se peut que vous dépassiez le quota de débit d'API. Dans ce cas, votre appel d'API est limité et vous recevez une erreur RequestLimitExceeded ou ThrottlingException. Pour résoudre ces erreurs, identifiez où et quand les erreurs de limitation se produisent. Puis, présentez des requêtes d'augmentation de quotas tarifaires éclairées.

Résolution

Erreurs de limitation intermittentes sur CloudWatch Logs lorsque vous accédez aux journaux

Pour répertorier vos événements de journaux ou vos flux de journaux, utilisez les appels d'API FilterLogEvents ou GetLogEvents. Ces appels d'API ne sont pas éligibles à une augmentation de quota. Toutefois, lorsque vous utilisez l'API FilterLogEvents pour rechercher des événements de journaux dans un groupe de journaux spécifié, il existe un quota. Le quota est de cinq transactions par seconde (TPS) par compte AWS ou par région AWS. Si vous atteignez ce quota, le message d'erreur RateExceeded s’affiche.

Pour éviter ces erreurs de limitation, utilisez un filtre d'abonnement pour récupérer immédiatement les données des journaux CloudWatch en temps réel. Pour plus d'informations, consultez la section Filtres d'abonnement au niveau du groupe de journaux et Traitement en temps réel des données de journal avec les abonnements.

Il est également recommandé d'utiliser CloudWatch Logs Insights pour obtenir rapidement les données des journaux CloudWatch. Pour afficher des groupes de journaux spécifiques, utilisez des requêtes pour filtrer vos journaux. Assurez-vous d’exporter les données de journal vers Amazon Simple Storage Service (Amazon S3) pour les cas d'utilisation par lots.

Remarque : Le traitement des données de journal peut prendre jusqu'à 12 heures avant de pouvoir les exporter depuis CloudWatch Logs. Il n'est pas recommandé d'utiliser cette méthode pour l'analyse et le traitement en temps réel.

Erreurs ThrottlingException lorsque vous utilisez un script pour récupérer les données de journal CloudWatch

Pour collecter les journaux CloudWatch, vous pouvez développer un script de collecteur. Pour extraire des données de différents flux de journaux ou de différentes périodes dans le même groupe de journaux, créez le script qui effectue un appel d'API DescribeLogStreams ou GetLogEvents. Cependant, les appels d'API tels que FilterLogEvents, GetLogEvents et DescribeLogStreams sont conçus pour l'interaction humaine et non pour l'automatisation. Si vous utilisez ces API dans votre script, l'appel d'API est limité et vous recevez un message d'erreur.

Pour éviter les erreurs de limitation dans ce cas d'utilisation, utilisez un backoff exponentiel et réessayez lorsque vous effectuez un appel d'API. Pour plus d'informations, consultez les sections Backoff exponentiel et gigue et Comportement de nouvelle tentative. Veillez à répartir vos appels d'API au fil du temps. Planifiez des actions de manière aléatoire afin qu'elles soient réparties sur une période donnée.

Vous pouvez provoquer une erreur de débit si vous envoyez des appels d'API en succession rapide. Pour éviter ce problème, ajoutez des intervalles de veille entre les appels d'API consécutifs. Ajoutez également un délai entre les appels d'API envoyés par le même script ou la même application.

Lorsque vous utilisez une solution de gestion des informations et des événements de sécurité (SIEM) telle que Splunk pour récupérer les journaux de CloudWatch, le plug-in Splunk peut provoquer des erreurs de limitation des API. Pour éviter ce problème, créez un filtre d'abonnement CloudWatch Logs avec Amazon Data Firehose. Puis, transmettez les données de journal à Splunk. Pour plus d'informations, consultez la page Présentation du module complémentaire Splunk pour Amazon Web Services sur le site Web de Splunk.

Des erreurs de limitation se produisent lorsque vous intégrez des appels d'API PutLogEvents à une fonction AWS Lambda

Lorsque vous intégrez l'appel d'API PutLogEvents à votre fonction AWS Lambda, PutLogEvents charge les journaux vers un flux de journaux spécifié par lots de 1 Mo. Cette API utilise un quota tarifaire de 5 000 transactions par seconde, par compte et par région.

Pour plus d'informations et pour demander une augmentation de quota, consultez la section Quotas de CloudWatch Logs.

Gérez vos quotas de service CloudWatch Logs

AWS définit des quotas pour les services afin de protéger les performances et de garantir la disponibilité. CloudWatch dispose de quotas pour les métriques, les alarmes, les requêtes d'API et les notifications d'alarme par e-mail. Pour consulter vos quotas de service et définir des alarmes si vous atteignez le seuil, procédez comme suit :

  1. Ouvrez la console Service Quotas.
  2. Dans le volet de navigation, sélectionnez Services AWS.
  3. Dans la liste de services AWS, recherchez les journaux Amazon CloudWatch.
  4. La liste de quotas de service affiche plusieurs attributs ou options : le nom du quota de service, la valeur appliquée (si elle est disponible), le quota par défaut AWS et si la valeur du quota est réglable.
  5. Pour en savoir plus sur un quota de service, choisissez le nom du quota. Par exemple, si vous choisissez la limite d'accélération de GetLogEvents en termes de transactions par seconde, les éléments suivants s'affichent :
    Description
    Code de quota
    ARN du quota
    Utilisation : %
    Valeur de quota appliquée
    Valeur de quota par défaut d'AWS
    Réglable : O/N
  6. Dans la section Alarmes Amazon CloudWatch, sélectionnez Créer une alarme, puis saisissez un seuil d’alarme et un nom d’alarme.

Informations connexes

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

AWS OFFICIELA mis à jour il y a 2 ans