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
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
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:
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 .