Come comunicare i ritardi di elaborazione basati sulla coda ai membri del team non tecnici?


13

Sono responsabile di una serie di lavori di elaborazione code SQS con una politica di ridimensionamento sulla ApproximateNumberOfMessagesVisiblemetrica CloudWatch. Questi lavori possono non riuscire a tenere il passo con la quantità di messaggi inviati per qualsiasi numero di motivi:

  • Il degrado del servizio riduce la capacità dei messaggi che possono essere elaborati.
  • AutoScaling limite massimo raggiunto mentre la profondità della coda continua ad aumentare.
  • L'interruzione di S3 influisce su altri servizi AWS dipendenti ( AutoScalingservizio) che il processo di elaborazione della coda utilizza per soddisfare la domanda.

Quando discuto delle interruzioni con i membri del team non tecnici, vorrei comunicare specifici ritardi nell'elaborazione della coda che possono tradursi in degradazioni visibili al cliente. Come posso farlo con le code SQS?

Risposte:


15

Come per qualsiasi comunicazione di interruzione, un lettore non tecnico cercherà principalmente di capire:

  • Quanto è stato?
  • Quanto è stato male?

Le metriche di Amazon CloudWatch forniscono le seguenti metriche per le code SQS che possono aiutare a rispondere a queste domande:

  • NumberOfMessagesSent: il numero di messaggi aggiunti a una coda.
  • NumberOfMessagesReceived: il numero di messaggi restituiti dalle chiamate all'azione API RiceviMessage.
  • ApproximateNumberOfMessagesVisible: il numero di messaggi disponibili per il recupero dalla coda.

Se correttamente rappresentati, queste metriche possono essere un valido aiuto visivo nella descrizione dei ritardi nell'elaborazione della coda. Ecco alcuni esempi di un'interruzione che ho riscontrato in cui la capacità del lavoro di elaborare i messaggi in coda è stata gravemente compromessa:

NumberOfMessagesSent & NumberOfMessagesReceived

  • Tipo di grafico: grafico a linee
  • Statistica: somma
  • Periodo: 5 minuti

NumberOfMessagesSent & NumberOfMessagesReceived

Questo rappresenta graficamente il contrasto tra i messaggi inviati e ricevuti, che aiuta a isolare quale componente di elaborazione è responsabile del ritardo. In questo grafico, la metrica ricevuta diminuisce drasticamente mentre la metrica inviata continua sulla sua tendenza normale, quindi possiamo dedurre che il problema risiede nel componente di lettura della coda anziché nel componente di scrittura della coda.

Questa risposta risponde a quanto tempo / quanto evento negativo è stato? Sì; descrive i processi interessati nel tempo.

NumberOfMessagesReceived & ApproximateNumberOfMessagesVisible

  • Tipo di grafico: grafico ad area in pila
  • Statistica: somma
  • Periodo: 5 minuti

NumberOfMessagesReceived & ApproximateNumberOfMessagesVisible

Questo rappresenta graficamente la profondità della coda in cima ai messaggi ricevuti, il che aiuta a mostrare fino a che punto è stato eseguito il backup della coda e come è stata ripristinata. In questo grafico, possiamo vedere che la profondità della coda ha fatto un backup drammatico mentre il componente di lettura della coda stava avendo problemi e ha iniziato a recuperare quando il componente di lettura della coda ha iniziato a leggere di nuovo i messaggi.

Questa risposta risponde a quanto tempo / quanto evento negativo è stato? Sì; descrive i messaggi interessati nel tempo.


Discussione grafica

In entrambi i grafici, l'elaborazione della coda può essere generalmente considerata sana quando le linee si sovrappongono e malsana quando le linee divergono. Questo è un modello semplice da insegnare a un membro del team non tecnico e può aiutarli a diffondere rapidamente dove e come ci sono problemi quando vengono presentati con questi grafici.

Per comunicare ulteriormente punti specifici nei grafici, è possibile semplicemente annotarli:

Entrambi i grafici precedenti con annotazioni.

Suggerimenti grafici:

  • Etichettare unità e assi.
  • Usa colori coerenti per abbinare le metriche tra i grafici. Notare che NumberOfMessagesReceived è arancione in entrambi i grafici; questo aiuterà a visualizzare la stessa metrica su grafici diversi.
  • Allinea verticalmente i grafici che descrivono metriche simili in modo che siano più facili da confrontare nel tempo.

Nota: ho formattato questi grafici per la presentazione su StackExchange, quindi questi non sono necessariamente come li presenterei in un'interruzione post mortem. Ho rimosso esplicitamente i valori dall'asse sinistro qui per oscurarli da StackExchange; ti consigliamo di tenerli nei tuoi post mortem.


Suggerimenti aggiuntivi

  • Autorizza il tuo team: dopo aver addestrato i membri del tuo team a leggere questi grafici, non c'è motivo di tenerli nascosti. Prendi in considerazione la possibilità di configurare un dashboard CloudWatch e dare ai membri del tuo team non tecnico l' accesso IAM di sola lettura a CloudWatch , in modo che possano visualizzare questi grafici in qualsiasi momento.
  • Imposta notifiche: valuta la possibilità di impostare gli allarmi di Cloudwatch in base alla metrica ApproximateNumberOfMessagesVisible se supera un valore elevato concordato e iscriviti ai membri del team per avvisarli di potenziali problemi. Gli allarmi di Cloudwatch hanno campi descrittivi che vengono inviati insieme alle e-mail di notifica: assicurati di includere una descrizione leggibile per aiutare i membri non tecnici a diffondere l'allarme.
  • Esplora altri dati: il commento di Per Evgeny , esplora altri dati oltre a quelli forniti da CloudWatch e pensa a come trasmettere tali dati al tuo team. Il suo esempio di utilizzo della durata dei messaggi in coda per creare un istogramma è un ottimo esempio di questo pensiero creativo e può essere realizzato registrando i tempi di invio e ricezione dei messaggi nella propria applicazione. È possibile ottenere il messaggio Timestamp inviato tramite l'attributo SentTimeStamp su ciascun messaggio di coda della risposta dell'API ReceiveMessage. Maggiori dettagli qui .

1
È anche molto utile guardare i dati da diversi punti di vista, non solo quelli forniti da CloudWatch. Ad esempio, se puoi mostrare un istogramma per quanto tempo ogni messaggio rimane nella coda, mostrando che alcuni messaggi rimangono per X tempo mentre altri rimangono per X * 2. E durante le interruzioni l'istogramma sposta i suoi punti più alti verso X * 4 o qualcosa del genere ... estremamente potente da vedere.
Evgeny,

4
Inoltre, voglio solo dire: questa è una risposta assolutamente incredibile.
Evgeny,

Grazie @Evgeny! È un'ottima idea e ho aggiunto un altro suggerimento alla risposta basato su di esso, con il merito al tuo commento.
Anthony Neace,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.