Quali parametri posso utilizzare per monitorare e risolvere i problemi relativi a flusso di dati Kinesis?

6 minuti di lettura
0

Desidero monitorare i dati in entrata e in uscita per flusso di dati Amazon Kinesis.

Soluzione

Usa parametri a livello di flusso

Puoi utilizzare i parametri di Amazon CloudWatch per monitorare costantemente le prestazioni del flusso di dati Amazon Kinesis e il relativo throughput. I seguenti parametri possono aiutarti a monitorare i problemi di produttori e utenti.

GetRecords.IteratorAgeMilliseconds
Il parametro GetRecords.IteratorAgeMilliseconds misura l'età in millisecondi dell'ultimo record nel flusso per tutte le richieste GetRecords. Il valore pari a zero per questo parametro indica che i record sono correnti all'interno del flusso. È preferibile un valore inferiore. Per monitorare eventuali problemi di prestazioni, aumenta il numero di consumatori del tuo flusso in modo che i dati vengano elaborati più rapidamente. Per ottimizzare il codice dell'applicazione, aumenta il numero di consumatori per ridurre il ritardo nell'elaborazione dei record.

ReadProvisionedThroughputExceeded
Il parametro ReadProvisionedThroughputExceeded misura il numero di chiamate GetRecords che vengono limitate durante un determinato periodo e che superano i limiti di servizio o di shard per Kinesis Data Streams. Un valore pari a zero indica che i consumatori di dati non stanno superando le quote di servizio. Qualsiasi altro valore indica che il limite di throughput è stato superato e che sono necessari partizioni aggiuntive. Questo parametro conferma che nel flusso non ci sono più di cinque letture/secondopartizione o 2 MB/secondo/partizione. Puoi attivare il monitoraggio avanzato per verificare che non vi siano partizioni sovraccariche nel flusso.

WriteProvisionedThroughputExceeded
Il parametro WriteProvisionedThroughputExceeded misura il PUT o il produttore di dati (come ad esempio ReadProvisionedThroughputExceeded) per aiutare a determinare se il flusso è limitato. Questo supera le quote di servizio per Data Streams durante la scrittura in una partizione. Assicurati che le richieste PUT non superino 1 MB/secondo/partizione o 1.000 record/partizione/secondo. Assicurati che la chiave di partizione sia distribuita in modo uniforme e che il monitoraggio avanzato sia attivato per verificare la presenza di partizioni sovraccariche nel flusso. A seconda della saturazione della partizione, aggiorna il numero di partizioni nel flusso per consentire un aumento del throughput.

PutRecord.Success e PutRecords.Success
I parametri PutRecord.Success e PutRecords.Success misurano il numero di record riusciti per le richieste PutRecords effettuate in un determinato periodo di tempo dai produttori di dati nel flusso. Questo parametro conferma l'efficacia della logica di ripetizione dei tentativi per i record non andati a buon fine.

GetRecords.Success
Il parametro GetRecords.Success misura il numero di richieste GetRecords riuscite per un determinato periodo di tempo nel flusso. Conferma l'efficacia della logica di ripetizione dei tentativi per i record che non vanno a buon fine.

GetRecords.Latency
Il parametro GetRecords.Latency misura il tempo impiegato per ciascuna operazione GetRecords sul flusso in un periodo di tempo specificato. Conferma che le risorse fisiche o la logica di elaborazione dei record sono sufficienti per aumentare il throughput del flusso. Inoltre, elabora batch di dati di dimensioni maggiori per ridurre le latenze di rete e altre latenze downstream nell'applicazione. Nel caso della Kinesis Client Library (KCL), esamina il parametro ProcessTask.Time per monitorare il tempo di elaborazione dell'applicazione in ritardo. Il parametro GetRecords.Latency conferma che l'impostazione IDLE_TIME_BETWEEN_READS_IN_MILLIS è configurata per tenere il passo con l'elaborazione del flusso.

PutRecords.Latency
Il parametro PutRecords.Latency misura il tempo impiegato per ciascuna operazione PutRecords sul flusso in un periodo di tempo specificato. Se il valore PutRecords.Latency è elevato, aggrega i record in un file più grande per inserire i dati batch nel flusso di dati di Kinesis. È inoltre possibile utilizzare più thread per scrivere i dati. La logica di limitazione e di ripetizione dei tentativi sull'API PutRecords può influire sulla latenza e sul tempo impiegato per ciascuna operazione PutRecords sul flusso. Quindi, monitora le prestazioni e il throughput del flusso utilizzando la statistica Media per i parametri elencati.
Nota: per GetRecords.IteratorAgeMilliseconds utilizza la statistica Massimo per ridurre il rischio di perdita di dati per i consumatori che sono in ritardo rispetto alle operazioni di lettura. Configura un allarme CloudWatch per rispondere a tutti i punti dati da valutare per un parametro. Per ulteriori informazioni sugli allarmi CloudWatch, consulta la sezione Utilizzo degli allarmi Amazon CloudWatch.

Se utilizzi la funzionalità fan-out avanzata, usa i parametri seguenti per monitorare flusso di dati Kinesis:

SubscribeToShard.RateExceeded: misura il numero di chiamate al secondo in eccesso che sono consentite per l'operazione o quando un tentativo di abbonamento fallisce perché esiste già un abbonamento attivo.

SubscribeToShard.Success: verifica se l'operazione SubscribeToShard ha esito positivo.

SubscribeToShardEvent.Success: verifica la corretta pubblicazione di un evento per l'abbonamento attivo.

SubscribeToShardEvent.Bytes: misura il numero di byte ricevuti nelle partizioni nel periodo di tempo specificato.

SubscribeToShardEvent.Records: misura il numero di record ricevuti nelle partizioni nel periodo di tempo specificato.

SubscribeToShardEvent.MillisBehindLatest: misura la differenza tra l'ora corrente e l'ultimo record dell'evento SubscribeToShard scritto nel flusso.

Attiva i parametri avanzati a livello di partizione

Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Risolvi gli errori AWS CLI. Inoltre, assicurati di utilizzare la versione più recente dell’Interfaccia della linea di comando AWS.

Attiva i parametri a livello di partizione in CloudWatch per monitorare specifiche attività e risolvere i problemi di produttori e utenti di dati. Ad esempio, attiva i parametri a livello di partizione per aiutarti a identificare problemi come la distribuzione irregolare del carico di lavoro. Per attivare il monitoraggio avanzato, completa i passaggi seguenti:

Nota: puoi anche utilizzare la richiesta API EnableEnhancedMonitoring o il comando AWS CLI enable-enhanced-monitoring

  1. Apri la console Kinesis.
  2. Scegli una Regione specifica.
  3. Dal pannello di navigazione, scegli Flussi di dati.
  4. In Nome del flusso di dati, seleziona il tuo flusso di dati Kinesis.
  5. Scegli Configurazione.
  6. In Parametri avanzati (a livello di partizione), scegli Modifica.
  7. Dal menu a discesa, seleziona i tuoi parametri per un monitoraggio avanzato.
  8. Scegli Salva modifiche.

Risoluzione aggiuntiva dei problemi con le chiamate API

Utilizza le seguenti chiamate API per leggere o scrivere dati da flusso di dati Kinesis:

  • CreateStream: limite di cinque transazioni al secondo per account.
  • DeleteStream: limite di cinque transazioni al secondo per account.
  • ListStreams: limite di cinque transazioni al secondo per account.
  • GetShardIterator: limite di cinque transazioni al secondo per account per ogni partizione aperta.
  • MergeShards: limite di cinque transazioni al secondo per account.
  • DescribeStream: limite di dieci transazioni al secondo per account.
  • DescribeStreamSummary: limite di venti transazioni al secondo per account.

Quando utilizzi queste chiamate API, puoi monitorare eventuali limitazioni nei log di AWS CloudTrail. Per ulteriori informazioni sulle chiamate API su flusso di dati Kinesis e CloudTrail, consulta la sezione Registrazione delle chiamate API di flusso di dati Amazon Kinesis tramite AWS CloudTrail.

Informazioni correlate

Prezzi di Amazon CloudWatch

Monitoraggio del servizio flusso di dati Amazon Kinesis con Amazon CloudWatch

AWS UFFICIALE
AWS UFFICIALEAggiornata 4 mesi fa