Come posso determinare la limitazione (della larghezza di banda della rete) nei miei log CloudWatch?

5 minuti di lettura
0

Ho ricevuto un errore “RequestLimitExceeded” o “ThrottlingException” mentre stavo lavorando con i log Amazon CloudWatch e la mia chiamata API è stata limitata.

Breve descrizione

Quando lavori con i log CloudWatch, potresti superare il limite di velocità dell’API. Quando ciò accade, ricevi un errore RequestLimitExceeded o ThrottlingException e la tua chiamata API viene limitata. È necessario identificare dove e quando si verifica la limitazione, in modo da poter risolvere questi errori ed effettuare richieste informate di aumento del limite di velocità.

Risoluzione

Limitazione intermittente su log CloudWatch quando si accede ai log

È possibile utilizzare le chiamate API FilterLogEvents o GetLogEvents per elencare i log eventi o i flussi di log. Queste chiamate API hanno un limite rigido e non supportano un aumento del limite. Ciò significa che se si utilizza l'API FilterLogEvents per cercare log eventi in un gruppo specifico di log, la QuaAPI predefinita ha una quota predefinita. Questa quota è di 5 transazioni al secondo (TPS) per account o Regione AWS. Se raggiungi questo limite, riceverai l'errore RateExceeded.

Utilizza queste best practice per evitare errori di limitazione in questo caso d'uso:

Errori di ThrottlingException quando si utilizza un'applicazione/uno script per recuperare i dati di log CloudWatch

Per raccogliere i log CloudWatch, puoi sviluppare uno script di raccolta. Questo script tenta di effettuare una chiamata API DescribeLogStream o GetLogEvents per estrarre dati da diversi flussi di log o intervalli di tempo diversi nello stesso gruppo di log. Le chiamate API come FilterLogEvents, GetLogEvents e DescribeLogStreams sono progettate per l'interazione umana e non per l'automazione. Ciò significa che ricevi un errore e la chiamata API viene limitata.

Utilizza queste best practice per evitare la limitazione in questo caso d'uso:

  • Quando effettui una chiamata API, utilizza il backoff esponenziale e riprova. Per ulteriori informazioni, consulta Backoff esponenziale e instabilità e Ripetizione dei tentativi in caso di errore e backoff esponenziale in AWS.
  • Distribuisci le tue chiamate API nel tempo. Programma le operazioni con una certa randomizzazione in modo che siano distribuite in un periodo di tempo.
  • Aggiungi intervalli di sospensione tra chiamate API consecutive. Aggiungi un ritardo tra le chiamate API inviate dallo stesso script o dall’applicazione. Se le chiamate API vengono inviate tutte in rapida successione, è più probabile che si verifichino errori di velocità.
  • In alcuni casi, potresti utilizzare una soluzione SIEM come Splunk per recuperare i log da CloudWatch. Le soluzioni SIEM vengono utilizzate per raccogliere dati da più sistemi e analizzare questi dati per rilevare comportamenti insoliti. È possibile che si verifichi una limitazione delle API quando si utilizza il plug-in Splunk. Per evitare questo problema, crea un filtro di sottoscrizione per i log CloudWatch con Amazon Kinesis Data Firehose e distribuisci i dati di log a Splunk. Per ulteriori informazioni, consulta Configurazione di input Kinesis per Splunk per AWS (Configurazione degli input Kinesis per il componente aggiuntivo Splunk per AWS).

Errori di limitazione (della larghezza di banda della rete) durante l'integrazione delle chiamate API PutLogEvents con la funzione Lambda

La chiamata API PutLogEvents viene utilizzata per caricare i log in un flusso di log specifico in batch da 1 MB. Questa API ha un limite di velocità di 800 TPS, per account, per Regione. Ciò si applica ad eccezione delle seguenti Regioni in cui la quota è di 1.500 TPS per account per Regione: Stati Uniti orientali (Virginia settentrionale), Stati Uniti occidentali (Oregon) ed Europa (Irlanda). Puoi richiedere un aumento della quota.

Per ulteriori informazioni su questo argomento e per richiedere un aumento della quota, consulta Quote di CloudWatch Logs.

Gestisci le quote di servizio di CloudWatch Logs

AWS definisce le quote dei servizi per proteggere le prestazioni e garantire la disponibilità. CloudWatch prevede quote per parametri, allarmi, richieste API e notifiche e-mail di allarme. Segui questi passaggi per visualizzare le tue quote di servizio e impostare allarmi se raggiungi la soglia:

1.    Apri la console Service Quotas.

2.    Nel pannello di navigazione, scegli servizi AWS.

3.    Dall'elenco dei servizi AWS, cerca File di log Amazon CloudWatch.

4.    Nell'elenco delle Service Quotas, puoi vedere diversi attributi oppure opzioni: il nome della quota di servizio, il valore applicato (se disponibile), la quota di default di AWS e se il valore della quota è regolabile.

5.    Per visualizzare ulteriori informazioni su una quota di servizio, ad esempio la descrizione, scegli il nome della quota.

6.    Dopo aver scelto il nome della quota, è possibile visualizzare ulteriori informazioni su questa quota. Ad esempio, se scegli il limite GetLogEvents nelle transazioni al secondo, vedrai i seguenti elementi:

Descrizione

Codice della quota

ARN quota

Utilizzo: %

Valore della quota applicato

Valore della quota di default di AWS

Regolabile: S/N

7.    Nella sezione Allarmi di Amazon CloudWatch, scegli Crea allarme e inserisci una soglia di allarme e un nome per l'allarme.


Informazioni correlate

In che modo è possibile impedire la limitazione durante la chiamata a PutMetricData nell'API di CloudWatch?

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa