Topik ini menjelaskan cara memantau Cassandra menggunakan Managed Service for Prometheus.
Prasyarat
Anda telah membuat instans Prometheus. Untuk informasi selengkapnya, lihat:
Langkah 1: Deploy Cassandra JMX agent
-
Unduh Cassandra JMX agent yang sesuai dengan versi Cassandra Anda ke instans ECS tempat Cassandra berjalan.
-
Ekstrak paket agent yang diunduh ke direktori MCAC_ROOT, lalu tambahkan konten berikut ke file
cassandra-env.sh.MCAC_ROOT=/path/to/directory JVM_OPTS="$JVM_OPTS -javaagent:${MCAC_ROOT}/lib/datastax-mcac-agent.jar"PentingCassandra JMX agent membuka port 9103 agar Prometheus dapat mengambil data. Untuk mengubah port ini, ubah nilainya dalam file ${MCAC_ROOT}/config/collectd.conf.tmpl menjadi port yang Anda inginkan.
LoadPlugin write_prometheus <Plugin write_prometheus> Port "9103" </Plugin> -
Setelah konfigurasi selesai, restart aplikasi Cassandra. Di server ECS, jalankan perintah
curl localhost:{jmx_port}/metrics. Instalasi yang berhasil akan mengembalikan data metrik.# HELP collectd_collectd_cache_size write_prometheus plugin: 'collectd' Type: 'cache_size', Dstype: 'gauge', Dsname: 'value' # TYPE collectd_collectd_cache_size gauge collectd_collectd_cache_size{collectd="cache",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1"} 6985 16 # HELP collectd_collectd_derive_total write_prometheus plugin: 'collectd' Type: 'derive', Dstype: 'derive', Dsname: 'value' # TYPE collectd_collectd_derive_total counter collectd_collectd_derive_total{collectd="write_queue",type="dropped",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1"} 0 168768 # HELP collectd_collectd_queue_length write_prometheus plugin: 'collectd' Type: 'queue_length', Dstype: 'gauge', Dsname: 'value' # TYPE collectd_collectd_queue_length gauge collectd_collectd_queue_length{collectd="write_queue",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1"} 144 168 # HELP collectd_contextswitch_total write_prometheus plugin: 'contextswitch' Type: 'contextswitch', Dstype: 'derive', Dsname: 'value' # TYPE collectd_contextswitch_total counter collectd_contextswitch_total{instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1"} 3... 168768 # HELP collectd_cpu_total write_prometheus plugin: 'cpu' Type: 'cpu', Dstype: 'derive', Dsname: 'value' # TYPE collectd_cpu_total counter collectd_cpu_total{cpu="0",type="idle",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 50160255 16876 collectd_cpu_total{cpu="0",type="interrupt",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 0 1687686 collectd_cpu_total{cpu="0",type="nice",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 226 1687686335 collectd_cpu_total{cpu="0",type="softirq",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 13644 16876 collectd_cpu_total{cpu="0",type="steal",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 0 16876863350 collectd_cpu_total{cpu="0",type="system",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 231356 16876 collectd_cpu_total{cpu="0",type="user",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 1519742 168768 collectd_cpu_total{cpu="0",type="wait",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 585 1687686335 collectd_cpu_total{cpu="1",type="idle",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 50596353 16876 collectd_cpu_total{cpu="1",type="interrupt",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 0 1687686 collectd_cpu_total{cpu="1",type="nice",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 219 1687686335 collectd_cpu_total{cpu="1",type="softirq",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 9320 168768 collectd_cpu_total{cpu="1",type="steal",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 0 16876863350 collectd_cpu_total{cpu="1",type="system",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 129114 16876 collectd_cpu_total{cpu="1",type="user",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 1504382 168768 collectd_cpu_total{cpu="1",type="wait",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 50115892 16876 collectd_cpu_total{cpu="2",type="softirq",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 4906 168768 collectd_cpu_total{cpu="2",type="steal",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 0 16876863350 collectd_cpu_total{cpu="2",type="system",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 230256 16876 collectd_cpu_total{cpu="2",type="user",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 1562142 168768 collectd_cpu_total{cpu="2",type="wait",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 8267 16876863 collectd_cpu_total{cpu="3",type="idle",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 50612210 16876 collectd_cpu_total{cpu="3",type="interrupt",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 0 1687686 collectd_cpu_total{cpu="3",type="nice",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 218 1687686335 collectd_cpu_total{cpu="3",type="softirq",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 2815 168768 collectd_cpu_total{cpu="3",type="steal",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 0 16876863350 collectd_cpu_total{cpu="3",type="system",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 129656 16876 collectd_cpu_total{cpu="3",type="user",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 1506299 168768 collectd_cpu_total{cpu="3",type="wait",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 183 1687686335
Langkah 2: Integrasi Cassandra
-
Masuk ke Cloud Monitor console.
-
Di panel navigasi kiri, klik Access Center.
-
Pada halaman Access Center, di bagian Database, klik Cassandra.
-
Pada tab Start Integration panel Cassandra, konfigurasikan parameter, lalu klik OK.
Parameter
Deskripsi
Select environment type
Pilih tipe lingkungan:
-
Container Service environment
-
ECS (Virtual Private Cloud (VPC))
Select cluster
Pilih kluster target.
Pod label
Label pod tempat layanan Cassandra berjalan. Disarankan menggunakan label unik.
Service port
Port yang digunakan oleh Cassandra JMX agent yang dipasang pada Langkah 1. Port default akan diisi secara otomatis.
Metrics path
Titik akhir metrik dari Cassandra JMX agent yang dipasang pada Langkah 1. Jalur default akan diisi secara otomatis.
Scrape interval (seconds)
Interval pengambilan metrik dalam detik. Nilai default adalah 30.
-
Langkah 3: Lihat dasbor Cassandra
-
Masuk ke Cloud Monitor console.
-
Di panel navigasi kiri, klik Data Import Management.
-
Pada halaman Data Import Management, klik tab Installed. Temukan lingkungan yang diinginkan dan klik namanya untuk membuka halaman detail.
-
Pada tab Component Management, klik Cassandra di bagian Component Type, lalu klik tab Dashboards untuk melihat semua nama dasbor.
Halaman ini menampilkan dua dasbor: Cassandra Detail dan Cassandra Summary.
-
Klik nama dasbor untuk melihat Dasbor Grafana.
Langkah 4: Konfigurasi alert Cassandra
-
Pada tab Component Management, klik Cassandra di bagian Component Type, lalu klik tab Alert Rules untuk melihat aturan alert default.
Aturan alert default mencakup:
Request timeouts
Failed requests
Total messages
Disk usage
Memory usage
CPU usage
Client connections
-
Anda juga dapat membuat aturan alert kustom. Untuk informasi selengkapnya, lihat Create a Prometheus alert rule.
Metrik utama
Informasi kluster dan node
|
Metric |
Level |
Deskripsi |
Penjelasan |
|
mcac_client_connected_native_clients |
Major |
Jumlah koneksi CQL |
Jumlah koneksi yang berlebihan mengonsumsi sumber daya sistem dan meningkatkan latensi klien. |
|
mcac_table_live_disk_space_used_total |
Major |
Ruang disk yang digunakan oleh Cassandra |
Nilai tinggi dapat menyebabkan ruang disk tidak mencukupi dan meningkatkan latensi akses data. |
|
mcac_table_snapshots_size |
Recommended |
Ukuran file snapshot Cassandra |
Snapshot digunakan untuk pemulihan data. Nilai tinggi dapat menyebabkan ruang disk tidak mencukupi sehingga snapshot lengkap tidak dapat disimpan. |
|
collectd_uptime |
Major |
Waktu aktif node |
Nilai tinggi menunjukkan sistem belum direstart dalam waktu lama. Jika sistem memiliki kerentanan yang diketahui, hal ini dapat meningkatkan risiko keamanan. |
Metrik kinerja utama
|
Metric |
Level |
Deskripsi |
Penjelasan |
|
mcac_table_read_latency |
Critical |
Latensi baca klien |
Nilai tinggi memperlambat pembacaan aplikasi dan berdampak pada pengalaman pengguna. |
|
mcac_table_write_latency |
Critical |
Latensi tulis klien |
Nilai tinggi memperlambat penulisan aplikasi dan berdampak pada pengalaman pengguna. |
Eksepsi dan error
|
Metric |
Level |
Deskripsi |
Penjelasan |
|
mcac_client_request_timeouts_total |
Critical |
Permintaan klien yang timeout |
Nilai tinggi menunjukkan beban sistem berat, yang sangat memengaruhi pengalaman pengguna. |
|
mcac_client_request_failures_total |
Critical |
Permintaan klien dengan eksepsi |
Nilai tinggi menunjukkan beban sistem berat, yang sangat memengaruhi pengalaman pengguna. |
|
mcac_dropped_message_dropped_total |
Critical |
Pesan yang dibuang |
Nilai tinggi menunjukkan beban sistem berat, yang sangat memengaruhi pengalaman pengguna. |
Cache dan Bloom filter
|
Metric |
Level |
Deskripsi |
Penjelasan |
|
mcac_table_key_cache_hit_rate |
Major |
Tingkat hit cache kunci |
Nilai rendah dapat menurunkan kinerja baca aplikasi dan memengaruhi pengalaman pengguna. |
|
mcac_table_row_cache_hit_total |
Major |
Jumlah hit cache baris |
Nilai rendah dapat menurunkan kinerja baca aplikasi dan memengaruhi pengalaman pengguna. |
|
mcac_table_row_cache_miss_total |
Recommended |
Jumlah cache miss cache baris |
Nilai tinggi dapat menurunkan kinerja baca aplikasi dan memengaruhi pengalaman pengguna. |
|
mcac_table_row_cache_hit_out_of_range_total |
Recommended |
Jumlah hit cache baris yang tetap memerlukan akses disk. |
Nilai tinggi dapat menurunkan kinerja baca aplikasi dan memengaruhi pengalaman pengguna. |
|
mcac_table_bloom_filter_false_ratio |
Major |
Rasio false positive Bloom filter |
Rasio false positive yang tinggi pada Bloom filter menyebabkan banyak elemen yang tidak ada salah diidentifikasi sebagai ada. Hal ini membuang waktu dan sumber daya kueri, sehingga menurunkan kinerja kueri dan meningkatkan biaya. |
Penggunaan CPU, memori, dan disk
|
Metric |
Level |
Deskripsi |
Penjelasan |
|
collectd_cpu_total |
Critical |
Penggunaan CPU |
Nilai tinggi menunjukkan beban sistem tinggi, yang meningkatkan latensi permintaan klien dan sangat memengaruhi pengalaman pengguna. |
|
collectd_memory |
Critical |
Penggunaan memori |
Nilai tinggi menunjukkan beban sistem tinggi, yang meningkatkan latensi permintaan klien dan sangat memengaruhi pengalaman pengguna. |
|
collectd_df_df_complex |
Critical |
Penggunaan disk |
Nilai tinggi menunjukkan ruang disk tersedia tidak mencukupi, yang dapat mencegah persistensi data dan berisiko menyebabkan downtime sistem. |
Kompaksi SSTable
|
Metric |
Level |
Deskripsi |
Penjelasan |
|
mcac_table_pending_compactions |
Major |
Tugas kompaksi SSTable yang sedang berlangsung |
Nilai tinggi menunjukkan beban sistem tinggi, yang meningkatkan latensi permintaan klien. Konfigurasikan interval kompaksi SSTable yang wajar. |
|
mcac_table_compaction_bytes_written_total |
Major |
Laju kompaksi SSTable |
Nilai rendah menunjukkan laju kompaksi lambat, yang dapat menyebabkan penumpukan tugas. Pertimbangkan untuk meningkatkan spesifikasi node. |
|
mcac_table_compression_ratio |
Major |
Rasio kompresi SSTable |
Nilai tinggi menunjukkan file terkompresi masih terlalu besar dan kompresi tidak efektif. |
File disk
|
Metric |
Level |
Deskripsi |
Penjelasan |
|
mcac_table_live_ss_table_count |
Major |
Jumlah SSTable |
Nilai tinggi meningkatkan penggunaan disk dan latensi baca/tulis. Konfigurasikan strategi kompaksi SSTable yang tepat. |
|
mcac_table_live_disk_space_used_total |
Major |
Ruang disk yang digunakan oleh SSTable |
Nilai tinggi meningkatkan penggunaan disk dan latensi baca/tulis. Konfigurasikan strategi kompaksi SSTable yang tepat. |
|
mcac_table_ss_tables_per_read_histogram |
Major |
Jumlah SSTable yang dibaca per operasi baca |
Nilai tinggi meningkatkan latensi baca klien. |
|
mcac_commit_log_total_commit_log_size |
Major |
Ruang disk yang digunakan oleh commit log |
Nilai tinggi dapat menyebabkan ruang disk tidak mencukupi, menurunkan kinerja baca/tulis, dan memperpanjang waktu pemulihan data. |
|
mcac_table_memtable_live_data_size |
Major |
Ruang yang digunakan oleh MemTable |
Nilai tinggi dapat menurunkan kinerja penulisan data dan stabilitas node. |
|
mcac_table_waiting_on_free_memtable_space |
Major |
Waktu yang dihabiskan menunggu ruang MemTable dibebaskan |
Nilai tinggi dapat menurunkan kinerja penulisan data dan stabilitas node. |
Status kolam thread
|
Metric |
Level |
Deskripsi |
Penjelasan |
|
mcac_thread_pools_active_tasks |
Critical |
Jumlah tugas aktif dalam kolam thread |
Terlalu banyak tugas yang diblokir mengonsumsi sumber daya sistem, memperlambat respons, dan bahkan dapat menyebabkan sistem crash. |
|
mcac_thread_pools_total_blocked_tasks_total |
Critical |
Jumlah tugas yang diblokir dalam kolam thread |
Terlalu banyak tugas yang diblokir mengonsumsi sumber daya sistem, memperlambat respons, dan bahkan dapat menyebabkan sistem crash. |
|
mcac_thread_pools_pending_tasks |
Critical |
Jumlah tugas tertunda dalam kolam thread |
Terlalu banyak tugas tertunda mengonsumsi sumber daya sistem secara berlebihan, menyebabkan permintaan terkait timeout, dan bahkan dapat menyebabkan sistem crash. |
|
mcac_thread_pools_completed_tasks |
Major |
Jumlah tugas yang selesai dalam kolam thread |
Metrik ini mencerminkan throughput sistem. Nilai yang lebih tinggi menunjukkan kinerja sistem yang lebih baik. |
Metrik JVM
|
Metric |
Level |
Deskripsi |
Penjelasan |
|
mcac_jvm_memory_used |
Critical |
Memori heap JVM yang digunakan |
Nilai tinggi dapat menyebabkan kekurangan memori, yang memicu Pengumpulan sampah (garbage collection) yang sering dan mengurangi throughput aplikasi. |
|
mcac_jvm_gc_time |
Critical |
Waktu yang dihabiskan untuk garbage collection (GC) |
Nilai tinggi menunjukkan GC sering terjadi. Sistem memiliki lebih sedikit waktu untuk menjalankan beban kerja pengguna, yang dapat menyebabkan timeout permintaan atau bahkan crash sistem. |