Come posso risolvere gli errori di limitazione (della larghezza di banda della rete) in CloudWatch Logs?
Ricevo un errore "RequestLimitExceeded" o "ThrottlingException" mentre lavoro con Amazon CloudWatch Logs e la mia chiamata API è limitata.
Breve descrizione
Quando si lavora con CloudWatch Logs, si potrebbe superare la quota tariffaria API. Quando ciò accade, la chiamata API viene limitata e si riceve un errore RequestLimitExceeded o ThrottlingException. Per risolvere questi errori, individua dove e quando si verificano gli errori di limitazione (della larghezza di banda della rete). Quindi, effettua richieste informate di aumento della quota tariffaria.
Risoluzione
Errori di limitazione (della larghezza di banda della rete) intermittenti su CloudWatch Logs quando si accede ai log
Per elencare gli eventi del log o i flussi di log, utilizza le chiamate API FilterLogEvents o GetLogEvents. Queste chiamate API non sono idonee per un aumento della quota. Tuttavia, quando utilizzi l'API FilterLogEvents per cercare gli eventi del log da un gruppo di log specificato, esiste una quota. La quota è di cinque transazioni al secondo (TPS) per account AWS o Regione AWS. Se raggiungi questa quota, riceverai l'errore RateExceeded.
Per evitare questi errori di limitazione (della larghezza di banda della rete), utilizza un filtro di abbonamento per recuperare immediatamente i dati di log da CloudWatch Logs in tempo reale. Per ulteriori informazioni, consulta Log group-level subscription filters (Filtri di abbonamento a livello di gruppo di log) e Real-time processing of log data with subscriptions (Elaborazione in tempo reale dei dati di log con abbonamenti).
È inoltre una best practice utilizzare CloudWatch Logs Insights per ottenere rapidamente i dati di log da CloudWatch Logs. Per visualizzare gruppi di log specifici, utilizza le query per filtrare i log. Assicurati di esportare i dati di log in Amazon Simple Storage Service (Amazon S3) per i casi d'uso in batch.
Nota: la registrazione dei dati di log può richiedere fino a 12 ore prima che sia possibile esportarli da CloudWatch Logs. Non è una best practice utilizzare questo metodo per l'analisi e l'elaborazione in tempo reale.
Errori ThrottlingException quando si utilizza uno script per recuperare i dati di log di CloudWatch
Per raccogliere i log CloudWatch, puoi sviluppare uno script raccoglitore. Per estrarre i dati da diversi flussi di log o da diversi intervalli di tempo nello stesso gruppo di log, crea uno script che esegue una chiamata API DescribeLogStreams o GetLogEvents. Tuttavia, le chiamate API come FilterLogEvents, GetLogEvents e DescribeLogStreams sono progettate per l'interazione umana e non per l'automazione. Se utilizzi queste API nello script, la chiamata API viene limitata e ricevi un errore.
Per evitare errori di limitazione (della larghezza di banda della rete) in questo caso d'uso, utilizza il backoff esponenziale e i tentativi quando effettui una chiamata API. Per ulteriori informazioni, consulta Exponential backoff and jitter e Retry behavior (Comportamento di riprova). Assicurati di distribuire le chiamate API nel tempo. Pianifica le azioni con la randomizzazione in modo che siano distribuite su un periodo di tempo.
L'invio di chiamate API in rapida successione può causare errori di tariffazione. Per evitare questo problema, aggiungi intervalli di sospensione tra chiamate API consecutive. Inoltre, aggiungi un ritardo tra le chiamate API inviate dallo stesso script o dalla stessa applicazione.
Quando utilizzi una soluzione di gestione delle informazioni e degli eventi di sicurezza (SIEM) come Splunk per recuperare i log da CloudWatch, il plug-in Splunk può causare errori di limitazione (della larghezza di banda della rete) dell'API. Per evitare questo problema, crea un filtro di abbonamento di CloudWatch Logs con Amazon Data Firehose. Quindi, invia i dati di log a Splunk. Per ulteriori informazioni, consulta Introduction to the Splunk Add-on for Amazon Web Services sul sito Web di Splunk.
Errori di limitazione (della larghezza di banda della rete) quando si integrano le chiamate API PutLogEvents con una funzione Lambda
Quando integri la chiamata API PutLogEvents con la funzione AWS Lambda, PutLogEvents carica i log in un flusso di log specificato in batch di 1 MB. Questa API ha una quota tariffaria di 5.000 transazioni al secondo, per account, per Regione.
Per ulteriori informazioni e per richiedere un aumento delle quote, consulta CloudWatch Logs quotas (Quote di CloudWatch Logs).
Gestione delle quote del servizio CloudWatch Logs
AWS definisce quote per i servizi per proteggere le prestazioni e garantire la disponibilità. CloudWatch dispone di quote per metriche, allarmi, richieste API e notifiche e-mail di allarme. Per visualizzare Service Quotas e impostare gli allarmi in caso di raggiungimento della soglia, completa i seguenti passaggi:
- Apri la console Service Quotas.
- Nel pannello di navigazione, scegli Servizi AWS.
- Dall'elenco Servizi AWS, cerca Amazon CloudWatch Logs.
- L'elenco Service Quotas mostra diversi attributi o opzioni: il nome della quota di servizio, il valore applicato (se disponibile), la quota predefinita di AWS e se il valore della quota è modificabile.
- Per visualizzare ulteriori informazioni su una quota di servizio, scegli il nome della quota. Ad esempio, se scegli GetLogEvents throttle limit in transactions per second, verranno visualizzati i seguenti elementi:
Descrizione
Codice di quota
ARN di quota
Utilizzo: %
Valore della quota applicato
Valore predefinito della quota di AWS
Modificabile: S/N - Nella sezione Allarmi Amazon CloudWatch, scegli Crea allarme e inserisci una Soglia di allarme e un Nome allarme.
Informazioni correlate
- Lingua
- Italiano
