Dengan memanfaatkan kemampuan penyimpanan dan visualisasi metrik dari Managed Service for Prometheus dan Managed Service for Grafana Alibaba Cloud, Message Queue for Apache RocketMQ 5.0 menyediakan fitur dasbor yang membantu Anda mengumpulkan, mengamati, dan memvisualisasikan metrik multidimensi secara terpusat untuk menilai dengan cepat status operasional bisnis Anda. Topik ini menjelaskan kasus penggunaan, latar belakang, detail metrik, penagihan, serta metode kueri untuk dasbor.
Kasus penggunaan
Memecahkan masalah pengecualian konsumsi pesan online, menerima peringatan tepat waktu, dan segera mengidentifikasi akar masalah ketika pesan tidak diproses tepat waktu.
Menyelidiki alur pengiriman pesan melalui pipeline saat menghadapi masalah pada pesanan online.
Menganalisis tren trafik pesan, pola distribusi, atau volume pesan untuk mendukung analisis dan perencanaan tren bisnis.
Menampilkan dan menganalisis topologi dependensi hulu dan hilir aplikasi guna meningkatkan atau mengoptimalkan arsitektur sistem.
Latar belakang
Dalam proses pengiriman dan penerimaan pesan di Alibaba Cloud Message Queue for Apache RocketMQ, backlog antrian, status buffering, dan waktu yang dikonsumsi pada setiap tahap pemrosesan pesan secara langsung mencerminkan kinerja layanan dan status operasional server. Oleh karena itu, metrik utama untuk Alibaba Cloud Message Queue for Apache RocketMQ terutama terkait dengan skenario bisnis berikut.
Skema consumer lag
Gambar berikut menunjukkan status pesan dalam antrian tertentu dari suatu topik.

Gambar di atas menunjukkan status pesan dalam suatu antrian untuk topik tertentu. Message Queue for Apache RocketMQ mengumpulkan statistik jumlah pesan dan waktu yang dikonsumsi pada berbagai tahap pemrosesan. Metrik ini secara langsung mencerminkan laju pemrosesan dan akumulasi pesan dalam antrian. Dengan mengamati metrik ini, Anda dapat membuat penilaian awal apakah konsumsi layanan Anda mengalami anomali. Definisi spesifik dan rumus perhitungan untuk metrik ini adalah sebagai berikut:
Kategori | Metrik | Deskripsi | Rumus |
Metrik jumlah pesan | inflight messages | Pesan yang sedang diproses oleh client konsumen tetapi belum diakui (acknowledged). | Offset pesan terbaru yang ditarik - Offset pesan terbaru yang telah diakui |
ready messages | Pesan yang siap di broker Message Queue for Apache RocketMQ 5.0 dan terlihat serta tersedia untuk dikonsumsi. Jika filter tag dikonfigurasi untuk kelompok konsumen, ready messages hanya mencakup pesan yang sesuai dengan kondisi filter tersebut. | Offset pesan maksimum - Offset pesan terbaru yang ditarik | |
consumer lag | Jumlah total pesan yang belum sepenuhnya diproses. | Jumlah inflight messages + Jumlah ready messages | |
Metrik latensi pesan | Ready time |
| N/A |
Ready message queue time | Selisih antara waktu saat ini dan waktu kesiapan pesan paling awal. Durasi ini mencerminkan ketepatan waktu penarikan pesan oleh konsumen. | Waktu saat ini - Ready time dari pesan ready paling awal | |
Consumer lag time | Selisih waktu antara waktu saat ini dan ready time dari pesan yang belum diakui paling awal. Durasi ini mencerminkan ketepatan waktu pemrosesan pesan oleh konsumen. | Waktu saat ini - Ready time dari pesan yang belum diakui paling awal |
Ketika consumer lag terus menurun dan mendekati 0, serta consumer lag time terus memendek dan mendekati 0, kecepatan konsumsi telah melebihi kecepatan produksi, dan backlog sedang dibersihkan. Ketika kedua metrik tersebut mendekati 0, kelompok konsumen telah menyamai kecepatan produksi, dan backlog telah kembali normal.
Skema push consumer
Push consumer mengenkapsulasi logika pengambilan pesan, threading, dan retry. Daftarkan pendengar pesan selama inisialisasi, dan SDK akan menangani sisanya.

Untuk informasi lebih lanjut mengenai prinsipnya, lihat Push consumers.
Dalam skenario push consumer, metrik berikut mengukur status antrian buffer lokal:
Jumlah pesan dalam antrian buffer lokal: Jumlah total pesan dalam antrian buffer lokal.
Ukuran pesan dalam antrian buffer lokal: Ukuran total semua pesan dalam antrian buffer lokal.
Waktu tunggu pesan: Durasi pesan disimpan sementara dalam antrian buffer lokal.
Detail metrik
TPS pesan, jumlah panggilan API, dan jumlah pesan didasarkan pada pesan normal berukuran 4 KB. Untuk menghitung nilai akhir, kalikan basis ini dengan faktor yang sesuai dengan ukuran dan jenis pesan aktual. Untuk informasi lebih lanjut mengenai aturan perhitungan, lihat Cara kerja spesifikasi komputasi.
Tabel berikut menjelaskan bidang yang terkait dengan metrik.
Bidang | Nilai |
Jenis metrik |
|
Label |
|
Metrik broker
Jenis metrik | Nama metrik | Unit | Deskripsi | Label |
Gauge | rocketmq_instance_requests_max | count/s | TPS maksimum untuk mengirim dan menerima pesan dalam instans per menit. Metrik ini tidak mencakup permintaan yang dikenai pembatasan kecepatan. Sistem mengumpulkan satu sampel per detik selama periode 1 menit. Nilai maksimum di antara 60 sampel digunakan. |
|
Gauge | rocketmq_instance_requests_in_max | count/s | TPS maksimum untuk mengirim pesan dalam instans per menit. Metrik ini tidak mencakup permintaan yang dikenai pembatasan kecepatan. Sistem mengumpulkan satu sampel per detik selama periode 1 menit. Nilai maksimum di antara 60 sampel digunakan. |
|
Gauge | rocketmq_instance_requests_out_max | count/s | TPS maksimum untuk mengonsumsi pesan dalam instans per menit. Metrik ini tidak mencakup permintaan yang dikenai pembatasan kecepatan. Sistem mengumpulkan satu sampel per detik selama periode 1 menit. Nilai maksimum di antara 60 sampel digunakan. |
|
Gauge | rocketmq_topic_requests_max | count/s | TPS maksimum untuk mengirim pesan ke suatu topik dalam instans per menit. Metrik ini tidak mencakup permintaan yang dikenai pembatasan kecepatan. Sistem mengumpulkan satu sampel per detik selama periode 1 menit. Nilai maksimum di antara 60 sampel digunakan. |
|
Gauge | rocketmq_group_requests_max | count/s | TPS maksimum untuk mengonsumsi pesan dalam kelompok konsumen di dalam instans per menit. Metrik ini tidak mencakup permintaan yang dikenai pembatasan kecepatan. Sistem mengumpulkan satu sampel per detik selama periode 1 menit. Nilai maksimum di antara 60 sampel digunakan. |
|
Gauge | rocketmq_instance_requests_in_threshold | count/s | Ambang batas pembatasan kecepatan untuk mengirim pesan dalam instans. |
|
Gauge | rocketmq_instance_requests_out_threshold | count/s | Ambang batas pembatasan kecepatan untuk mengonsumsi pesan dalam instans. |
|
Gauge | rocketmq_throttled_requests_in | count | Jumlah permintaan yang dikenai pembatasan kecepatan untuk mengirim pesan. |
|
Gauge | rocketmq_throttled_requests_out | count | Jumlah permintaan yang dikenai pembatasan kecepatan untuk mengonsumsi pesan. |
|
Gauge | rocketmq_instance_elastic_requests_max | count/s | TPS elastis maksimum untuk mengirim dan menerima pesan dalam instans. |
|
Counter | rocketmq_requests_in_total | count | Jumlah panggilan API terkait pengiriman pesan. |
|
Counter | rocketmq_requests_out_total | count | Jumlah panggilan API terkait konsumsi pesan. |
|
Counter | rocketmq_messages_in_total | message | Jumlah pesan yang dikirim dari produsen ke broker. |
|
Counter | rocketmq_messages_out_total | message | Jumlah pesan yang dikirimkan dari broker ke konsumen. Ini mencakup pesan yang sedang diproses, telah berhasil diproses, atau gagal diproses. |
|
Counter | rocketmq_throughput_in_total | byte | Trafik pesan dari produsen ke broker. |
|
Counter | rocketmq_throughput_out_total | byte | Trafik pesan dari broker ke konsumen. Jumlah pesan mencakup pesan yang sedang diproses, telah berhasil diproses, atau gagal diproses. |
|
Counter | rocketmq_internet_throughput_out_total | byte | Trafik jaringan publik outbound yang dikonsumsi oleh pengiriman dan penerimaan pesan. |
|
Histogram | rocketmq_message_size | byte | Distribusi ukuran pesan, dicatat saat pengiriman berhasil. Bucket distribusi sebagai berikut:
|
|
Gauge | rocketmq_consumer_ready_messages | message | Jumlah ready messages. Jumlah pesan yang siap di broker dan tersedia untuk dikonsumsi. Metrik ini mencerminkan volume pesan yang belum ditarik oleh konsumen. |
|
Gauge | rocketmq_consumer_inflight_messages | message | Jumlah pesan yang sedang diproses oleh client konsumen tetapi belum diakui. Jumlah total pesan yang sedang diproses oleh client konsumen tetapi belum mengembalikan hasil konsumsi. |
|
Gauge | rocketmq_consumer_queueing_latency | ms | Latensi antrian pesan ready. Selisih waktu antara waktu saat ini dan ready time dari pesan ready paling awal. Metrik ini menunjukkan seberapa cepat konsumen menarik pesan. |
|
Gauge | rocketmq_consumer_lag_latency | ms | Latensi pemrosesan konsumsi. Selisih waktu antara waktu saat ini dan ready time dari pesan yang belum dikonsumsi paling awal. Metrik ini menunjukkan seberapa cepat konsumen memproses pesan. |
|
Counter | rocketmq_send_to_dlq_messages | message | Jumlah pesan yang dikirim ke dead-letter queue (DLQ) per menit. Pesan dikirim ke DLQ jika gagal dikonsumsi lebih dari jumlah maksimum upaya pengiriman ulang yang dikonfigurasi. Bergantung pada kebijakan dead-letter yang dikonfigurasi untuk kelompok konsumen, pesan yang tidak terkirim ini disimpan ke topik tertentu atau dibuang. |
|
Gauge | rocketmq_storage_size | byte | Jumlah storage space yang digunakan oleh instans, termasuk ukuran semua file. |
|
Metrik produsen
Jenis metrik | Nama metrik | Unit | Deskripsi | Label |
Histogram | rocketmq_send_cost_time | ms | Distribusi waktu yang diperlukan untuk panggilan API pengiriman pesan yang berhasil. Bucket distribusi sebagai berikut:
|
|
Metrik konsumen
Jenis metrik | Nama metrik | Unit | Deskripsi | Label |
Histogram | rocketmq_process_time | ms | Distribusi waktu yang diperlukan oleh push consumer untuk memproses pesan. Ini mencakup upaya pemrosesan yang berhasil maupun gagal.
Interval distribusi sebagai berikut:
|
|
Gauge | rocketmq_consumer_cached_messages | message | Jumlah pesan dalam antrian cache lokal push consumer. |
|
Gauge | rocketmq_consumer_cached_bytes | byte | Ukuran total pesan dalam antrian cache lokal push consumer. |
|
Histogram | rocketmq_await_time | ms | Distribusi waktu tunggu pesan dalam antrian cache lokal push consumer.
Interval distribusi sebagai berikut:
|
|
Penagihan
Metrik dasbor untuk ApsaraMQ for RocketMQ merupakan metrik dasar dalam Managed Service for Prometheus Alibaba Cloud. Tidak ada biaya yang dikenakan untuk metrik dasar. Oleh karena itu, fitur dasbor juga gratis.
Untuk informasi lebih lanjut, lihat Metrik dan Pay-as-you-go.
Prasyarat
Buat peran terkait layanan
Nama role: AliyunServiceRoleForOns
Nama policy: AliyunServiceRolePolicyForOns
Izin: Mengizinkan Message Queue for Apache RocketMQ menggunakan role ini untuk mengakses layanan Anda, seperti Cloud Monitor dan Application Real-Time Monitoring Service (ARMS), guna mengaktifkan fitur pemantauan, peringatan, dan dasbor.
Untuk informasi lebih lanjut, lihat Peran terkait layanan.
Lihat dasbor
ApsaraMQ for RocketMQ memungkinkan Anda melihat dasbor dari halaman-halaman berikut:
Dashboard: Lihat metrik untuk semua topik dan kelompok dalam suatu instans.
Instance Details: Menampilkan ikhtisar produsen, metrik penagihan, dan metrik pembatasan kecepatan untuk instans tertentu.
Topic Details: Menampilkan metrik produksi dan metrik client produsen untuk topik tertentu.
Group Details: Menampilkan metrik backlog pesan dan metrik client konsumen untuk kelompok tertentu.
Login ke Konsol ApsaraMQ for RocketMQ. Di panel navigasi kiri, klik Instances.
Di bilah navigasi atas, pilih wilayah, misalnya China (Hangzhou). Di halaman Instances, klik nama instans yang ingin Anda kelola.
Lihat dasbor dengan salah satu cara berikut.
Instance Details: Di halaman Instance Details, klik tab Dashboard.
Dashboard: Di panel navigasi kiri, klik Overview.
Topic Details: Di panel navigasi kiri, klik Topics. Di daftar topik, klik nama topik target. Kemudian, di halaman Topic Details, klik tab Dashboard.
Group Details: Di panel navigasi kiri, klik Groups. Di daftar kelompok, klik nama kelompok target. Kemudian, di halaman Group Details, klik tab Dashboard.
FAQ Dasbor
Bagaimana cara mendapatkan data metrik dasbor?
Gunakan akun utama Anda untuk login ke Konsol ARMS.
Di panel navigasi kiri, klik Integration Center.
Di halaman Integration Center, masukkan
RocketMQdi kotak pencarian dan klik ikon pencarian.Dalam hasil pencarian, pilih layanan cloud yang akan diintegrasikan, misalnya Alibaba Cloud RocketMQ (5.0) Service. Untuk informasi lebih lanjut, lihat Langkah 1: Integrasikan data pemantauan layanan cloud.
Setelah integrasi berhasil, di panel navigasi kiri, klik Integration Management.
Di halaman Integration Management, klik tab Cloud Service Region Environment.
Di daftar Cloud Service Region Environment, klik nama lingkungan target untuk membuka halaman detail lingkungan layanan cloud.
Di tab Component Management, di bagian Basic Information, klik wilayah layanan cloud setelah Prometheus Instance.
Di tab Settings, Anda dapat memperoleh berbagai metode akses data.
Bagaimana cara mengintegrasikan data metrik dasbor ke instans Grafana yang dikelola sendiri?
Semua data metrik untuk ApsaraMQ for RocketMQ disimpan ke instans Managed Service for Prometheus Anda. Ikuti langkah-langkah dalam Bagaimana cara mendapatkan data metrik dasbor? untuk mengintegrasikan layanan cloud dan mendapatkan nama lingkungan serta alamat API HTTP. Anda kemudian dapat menggunakan API tersebut untuk mengintegrasikan data metrik dasbor untuk ApsaraMQ for RocketMQ ke instans Grafana yang dikelola sendiri. Untuk informasi lebih lanjut, lihat Gunakan alamat API HTTP untuk menghubungkan Grafana atau aplikasi yang dikelola sendiri ke Prometheus untuk akses data.
Apa arti nilai TPS maksimum untuk suatu instans?
TPS maksimum: Nilai ini dihitung selama periode 1 menit, dengan satu sampel diambil per detik. Hasil akhirnya adalah nilai maksimum di antara 60 sampel tersebut.
Contoh:
Asumsikan suatu instans menghasilkan 60 pesan dalam 1 menit (semuanya adalah pesan normal, masing-masing berukuran 4 KB). Laju produksi instans tersebut adalah 60 pesan per menit.
Jika ke-60 pesan tersebut dikirim pada detik pertama, nilai TPS per detik untuk instans tersebut selama menit itu adalah 60, 0, 0, ..., 0.
TPS maksimum instans = 60 TPS.
Jika 40 pesan dikirim pada detik pertama dan 20 pesan dikirim pada detik kedua, nilai TPS per detik untuk instans tersebut selama menit itu adalah 40, 20, 0, 0, ..., 0.
TPS maksimum instans = 40 TPS.
Mengapa laju produksi jauh lebih tinggi daripada consumer lag?
Laju produksi dihitung pada level topik dan mencakup semua pesan, terlepas dari tag-nya. Consumer lag dihitung pada level kelompok konsumen dan dipengaruhi oleh filter tag: hanya pesan yang sesuai dengan kondisi filter kelompok konsumen yang dihitung. Jika sebagian besar pesan dalam suatu topik tidak sesuai dengan kondisi filter tag kelompok konsumen, consumer lag bisa jauh lebih kecil daripada laju produksi.
Mengapa daftar drop-down topik di halaman dasbor detail kelompok hanya menampilkan beberapa topik atau hanya None?
Daftar drop-down topik di halaman dasbor Group Details hanya menampilkan topik yang baru-baru ini mengirimkan pesan. Jika suatu topik belum mengirimkan pesan apa pun baru-baru ini, topik tersebut tidak muncul dalam daftar, meskipun sudah Anda buat. Untuk melihat metrik topik berlangganan lainnya, masukkan nama topik secara manual di daftar drop-down dan tekan Enter.