Seperti halnya komunikasi pemadaman, pembaca non-teknis akan berusaha memahami:
- Berapa lama?
- Seberapa buruk itu?
Metrik Amazon CloudWatch menyediakan metrik berikut untuk antrian SQS yang dapat membantu menjawab pertanyaan ini:
- NumberOfMessagesSent: Jumlah pesan yang ditambahkan ke antrian.
- NumberOfMessagesReceived: Jumlah pesan yang dikembalikan oleh panggilan ke tindakan API ReceiveMessage.
- ApproximateNumberOfMessagesVisible: Jumlah pesan yang tersedia untuk diambil dari antrian.
Ketika dibuat grafik dengan benar, metrik ini bisa menjadi alat bantu visual yang kuat dalam menggambarkan penundaan pemrosesan antrian. Berikut adalah beberapa contoh dari pemadaman yang saya alami di mana kapasitas pekerjaan untuk memproses pesan antrian sangat menurun:
NumberOfMessagesSent & NumberOfMessagesDiterima
- Tipe Grafik: Grafik Garis
- Statistik: Jumlah
- Periode: 5 menit
Ini grafik kontras antara pesan yang dikirim dan diterima, yang membantu mengisolasi komponen pemrosesan mana yang bertanggung jawab atas keterlambatan. Dalam grafik ini, metrik yang diterima turun secara dramatis sementara metrik yang dikirim melanjutkan tren normalnya, sehingga kami dapat menyimpulkan bahwa masalahnya terletak pada komponen pembacaan antrian alih-alih komponen penulisan antrian.
Apakah ini menjawab berapa lama / seberapa buruk kejadiannya? Iya; menjelaskan proses yang berdampak dari waktu ke waktu.
NumberOfPesan diterima & PerkiraanNomorPesanPenerimaan
- Tipe Grafik: Grafik Area Tertumpuk
- Statistik: Jumlah
- Periode: 5 menit
Ini grafik kedalaman antrian di atas pesan yang diterima, yang membantu menunjukkan seberapa jauh antrian didukung dan bagaimana itu pulih. Dalam grafik ini, kita dapat melihat bahwa kedalaman antrian didukung secara dramatis ketika komponen pembacaan antrian mengalami masalah, dan mulai pulih ketika komponen pembacaan antrian mulai membaca pesan lagi.
Apakah ini menjawab berapa lama / seberapa buruk kejadiannya? Iya; menjelaskan pesan yang terpengaruh dari waktu ke waktu.
Diskusi Grafik
Dalam kedua grafik, pemrosesan antrian secara umum dapat dianggap sehat ketika garis tumpang tindih, dan tidak sehat ketika garis berbeda. Ini adalah pola yang mudah untuk diajarkan kepada anggota tim non-teknis, dan dapat membantu mereka dengan cepat membahas di mana dan bagaimana ada masalah ketika disajikan dengan grafik ini.
Untuk lebih jauh mengomunikasikan titik-titik tertentu dalam grafik, Anda dapat membuat anotasi mereka:
Tips Grafik:
- Beri label satuan dan sumbu.
- Gunakan warna yang konsisten untuk mencocokkan metrik di seluruh grafik. Perhatikan bahwa NumberOfMessagesReceived berwarna oranye di kedua grafik; ini akan membantu memvisualisasikan metrik yang sama di berbagai grafik.
- Luruskan grafik yang menggambarkan metrik yang serupa secara vertikal sehingga lebih mudah untuk dibandingkan antar waktu.
Catatan: Saya telah memformat grafik ini untuk presentasi di StackExchange, jadi ini belum tentu bagaimana saya akan mempresentasikannya dalam pematian post-mortem. Saya telah secara eksplisit menghapus nilai dari sumbu kiri di sini untuk mengaburkannya dari StackExchange; Anda ingin menyimpannya di post-mortem Anda.
Kiat tambahan
- Berdayakan Tim Anda: Setelah melatih anggota tim Anda untuk membaca grafik ini, tidak ada alasan untuk menyembunyikannya. Pertimbangkan untuk menyiapkan Dasbor CloudWatch dan memberikan akses IAM hanya-baca anggota tim non-teknis Anda ke CloudWatch , sehingga mereka dapat melihat grafik ini kapan saja.
- Mengatur Notifikasi: Pertimbangkan untuk mengatur Alarm Cloudwatch berdasarkan metrik ApproximateNumberOfMessagesVisible jika melebihi beberapa nilai tinggi yang disepakati, dan berlangganan anggota tim untuk memberi tahu mereka tentang masalah potensial. Cloudwatch Alarms memiliki bidang deskripsi yang dikirim bersama dengan email notifikasi - pastikan untuk menyertakan deskripsi yang dapat dibaca manusia untuk membantu anggota non-teknis Anda menyebarkan alarm.
- Jelajahi Data Lain: Per komentar Evgeny , jelajahi data lain di luar apa yang CloudWatch sediakan dan pikirkan tentang bagaimana Anda bisa menyampaikan data itu ke tim Anda. Contohnya menggunakan masa pakai pesan dalam antrian untuk membuat histogram adalah contoh yang bagus dari pemikiran kreatif ini, dan dapat dicapai dengan mencatat waktu pengiriman pesan dan waktu pesan dalam aplikasi Anda. Anda bisa mendapatkan pesan Timestamp Terkirim melalui Atribut SentTimeStamp pada setiap pesan antrian dari respons API ReceiveMessage. Lebih detail di sini .