Topik ini menjelaskan cara menggunakan Alibaba Cloud Managed Service for Prometheus untuk memantau Cassandra.
Prasyarat
Sebuah instance Prometheus untuk ECS telah dibuat. Untuk informasi lebih lanjut, lihat Buat instance Prometheus untuk memantau instance ECS.
Batasan
Anda hanya dapat menginstal komponen untuk instance Prometheus untuk ECS.
Langkah 1: Deploy agen JMX Cassandra
Berdasarkan versi Cassandra, unduh agen JMX Cassandra ke instance Elastic Compute Service (ECS) tempat Cassandra berada.
Ekstrak paket ke
MCAC_ROOT. Tambahkan informasi berikut ke file cassandra-env.sh:MCAC_ROOT=/path/to/directory JVM_OPTS="$JVM_OPTS -javaagent:${MCAC_ROOT}/lib/datastax-mcac-agent.jar"PentingNomor port yang diekspos oleh agen JMX Cassandra ke Managed Service for Prometheus adalah 9103. Untuk mengubah nomor port, modifikasi informasi berikut di file ${MCAC_ROOT}/config/collectd.conf.tmpl.
Mulai ulang Cassandra dan jalankan perintah
curl localhost:{jmx port}/metricsdi instance ECS. Periksa apakah data dikembalikan. Jika data dikembalikan, agen JMX Cassandra telah terinstal.
Langkah 2: Integrasikan Cassandra ke dalam Managed Service for Prometheus
Prosedur
Titik masuk 1: Pusat Integrasi dari instance Prometheus
Masuk ke Konsol Managed Service for Prometheus.
Di panel navigasi sebelah kiri, klik Instances.
Klik nama instance Managed Service for Prometheus yang ingin Anda kelola untuk masuk ke halaman Pusat Integrasi.
Titik masuk 2: Pusat Integrasi di konsol ARMS
Masuk ke Konsol Application Real-Time Monitoring Service (ARMS).
Di panel navigasi sebelah kiri, klik Integration Center. Di bagian Components, temukan Cassandra dan klik Add. Di panel yang muncul, integrasikan Cassandra sesuai petunjuk.
Integrasi Cassandra
Bagian ini menjelaskan cara mengintegrasikan komponen Cassandra di pusat integrasi instance Prometheus.
Instal atau tambahkan komponen Cassandra.
Jika ini pertama kalinya Anda menginstal komponen Cassandra, lakukan operasi berikut.
Di bagian Not Installed halaman Pusat Integrasi, temukan Cassandra dan klik Install.
CatatanAnda dapat mengklik kartu untuk melihat metrik Cassandra umum dan thumbnail dasbor di panel yang muncul. Metrik yang terdaftar hanya untuk referensi. Setelah Anda menginstal komponen Cassandra, Anda dapat melihat metrik aktual yang dikumpulkan oleh Managed Service for Prometheus. Untuk informasi lebih lanjut, lihat Metrik Utama.
Jika Anda telah menginstal komponen Cassandra, Anda harus menambahkan komponen lagi.
Di bagian Installed halaman Pusat Integrasi, temukan Cassandra dan klik Add.
Di tab Settings di bagian STEP2, konfigurasikan parameter dan klik OK. Tabel berikut menjelaskan parameter tersebut.
Parameter
Deskripsi
Instance name
Nama exporter.
Nama hanya dapat berisi huruf kecil, angka, dan tanda hubung (-) dan tidak boleh dimulai atau diakhiri dengan tanda hubung (-).
Nama harus unik.
ECS Label Key (service discovery)
Tag ECS dan nilai tag yang digunakan untuk menerapkan exporter. Managed Service for Prometheus menggunakan tag ini untuk penemuan layanan. Nilai valid: acs:emr:nodeGroupType dan acs:emr:hostGroupType.
ECS Label value
Nilai tag ECS. Nilai default: CORE,MASTER. Pisahkan beberapa nilai dengan koma (,).
JMX Agent listening port
Port listening metrik. Managed Service for Prometheus mengakses port untuk mendapatkan data metrik. Nilai default: 9103.
Metrics path
Path HTTP yang digunakan oleh Managed Service for Prometheus untuk mengumpulkan data metrik dari exporter. Nilai default: /metrics.
Metrics scrape interval (seconds)
Interval waktu Managed Service for Prometheus mengumpulkan data pemantauan. Nilai default: 30.
CatatanAnda dapat melihat metrik pemantauan di tab Metrics di bagian STEP2.
Komponen yang terinstal ditampilkan di halaman Integration Management di Konsol Managed Service for Prometheus. Halaman Integration Management terdiri dari tab Integrated Environments, Integrated Addons, dan Query Dashboards, di mana Anda dapat melihat informasi seperti target, metrik, dasbor, dan peringatan.
Anda juga dapat melihat status exporter di tab Targets.
Langkah 3: Lihat dasbor Cassandra
Di tab Dasbor, Anda dapat melihat data pemantauan seperti ketersediaan, latensi baca dan tulis klien, serta throughput klien. Anda juga dapat melihat penggunaan CPU, penggunaan memori, dan penggunaan disk node.
Di halaman Integration Center, klik komponen Cassandra di bagian Installed. Di panel yang muncul, klik tab Dashboards untuk melihat thumbnail dan hyperlink dasbor Cassandra. Klik hyperlink untuk masuk ke halaman Grafana dan melihat dasbor. Bagian ini menjelaskan metrik pemantauan dasbor umum.
Bagian Informasi Kluster/Node
Bagian Latensi Baca Klien, Penundaan Tulis, dan Throughput
Bagian Pengecualian dan Kesalahan
Bagian Caching dan Filter Bloom
Bagian Penggunaan Sumber Daya Perangkat Keras
Bagian Detail Penggunaan Penyimpanan
Bagian Status Thread Pool
Bagian JVM dan Pengumpulan Sampah
Langkah 4: Konfigurasi peringatan
Di halaman Integration Center, klik komponen Cassandra di bagian Installed. Di panel yang muncul, klik tab Alerts untuk melihat semua aturan peringatan Cassandra yang dikonfigurasi di Managed Service for Prometheus.
Managed Service for Prometheus memungkinkan Anda mengaktifkan exporter Cassandra dengan konfigurasi sederhana. Dasbor dan peringatan siap pakai disediakan. Anda dapat menggunakan konsol ARMS untuk mengelola exporter dengan mengurangi biaya pekerjaan.
Managed Service for Prometheus menyediakan beberapa aturan peringatan default untuk metrik utama Cassandra. Aturan peringatan Cassandra umum telah diatur sebagai template untuk membantu personel O&M membangun dasbor dan sistem peringatan. Tabel berikut mencantumkan aturan peringatan default.
Kategori | Metrik | Deskripsi |
Status Node | Proporsi node tidak aktif dalam kluster | Jika nilainya lebih besar dari 10, satu atau lebih node dalam kluster mati. |
Penggunaan Sumber Daya | Penggunaan CPU | Jika penggunaan CPU sebuah node melebihi 85% dalam 5 menit terakhir, penggunaan CPU mencapai batas atas. |
Penggunaan Memori | Jika penggunaan memori sebuah node melebihi 85%, penggunaan memori mencapai batas atas. | |
Penggunaan Hard Disk | Jika penggunaan hard disk sebuah node melebihi 85%, hard disk mencapai batas atas. | |
Latensi dan Throughput Baca/Tulis | Latensi Baca | Jika latensi baca sebuah node melebihi 200 ms dalam 1 menit terakhir, latensi baca tinggi. |
Latensi Tulis | Jika latensi tulis sebuah node melebihi 200 ms dalam 1 menit terakhir, latensi tulis tinggi. | |
Throughput Baca | Jika jumlah operasi baca sebuah node melebihi 1.000 dalam 1 menit terakhir, throughput baca tinggi. | |
Throughput Tulis | Jika jumlah operasi tulis sebuah node melebihi 1.000 dalam 1 menit terakhir, throughput tulis tinggi. | |
Pengecualian dan Kesalahan | Permintaan Timeout | Jika jumlah permintaan timeout sebuah node melebihi 10 dalam 1 menit terakhir, node kelebihan beban. |
Permintaan Gagal | Jika jumlah permintaan gagal sebuah node melebihi 10 dalam 1 menit terakhir, node kelebihan beban. | |
Pesan Dijatuhkan | Jika jumlah pesan dijatuhkan sebuah node melebihi 10 dalam 1 menit terakhir, node kelebihan beban. | |
JVM | Rasio Waktu GC | Jika waktu GC sebuah node dalam 5 menit terakhir mencapai lebih dari 1%, pengumpulan sampah terlalu sering. |
Anda juga dapat membuat aturan peringatan berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Buat aturan peringatan untuk instance Prometheus.
Metrik Utama
Informasi Kluster dan Node
Metrik | Tingkat | Deskripsi | Catatan |
mcac_client_connected_native_clients | Utama | Jumlah koneksi CQL | Jika nilainya terlalu besar, banyak sumber daya sistem terpakai, yang menyebabkan latensi klien memanjang. |
mcac_table_live_disk_space_used_total | Utama | Ruang yang ditempati oleh Cassandra | Jika nilainya terlalu besar, ruang penyimpanan mungkin tidak cukup, menyebabkan latensi akses memanjang. |
mcac_table_snapshots_size | Rekomendasi | Ukuran file snapshot Cassandra | Snapshot digunakan untuk memulihkan data. Jika nilainya terlalu besar, ruang penyimpanan mungkin tidak cukup untuk menyimpan snapshot lengkap. |
collectd_uptime | Utama | Waktu startup node | Jika nilainya terlalu besar, sistem belum direstart untuk waktu yang lama, dan mungkin rentan terhadap risiko keamanan. |
Metrik Performa Utama
Metrik | Tingkat | Deskripsi | Catatan |
mcac_table_read_latency | Kritis | Latensi baca klien | Jika nilainya terlalu besar, kecepatan baca aplikasi lambat, yang memengaruhi pengalaman pengguna. |
mcac_table_write_latency | Kritis | Latensi tulis klien | Jika nilainya terlalu besar, kecepatan tulis aplikasi lambat, yang memengaruhi pengalaman pengguna. |
Pengecualian dan Kesalahan
Metrik | Tingkat | Deskripsi | Catatan |
mcac_client_request_timeouts_total | Kritis | Permintaan klien timeout | Jika nilainya terlalu besar, sistem kelebihan beban, yang sangat memengaruhi pengalaman pengguna. |
mcac_client_request_failures_total | Kritis | Permintaan klien abnormal | Jika nilainya terlalu besar, sistem kelebihan beban, yang sangat memengaruhi pengalaman pengguna. |
mcac_dropped_message_dropped_total | Kritis | Pesan dijatuhkan | Jika nilainya terlalu besar, sistem kelebihan beban, yang sangat memengaruhi pengalaman pengguna. |
Caching dan Filter Bloom
Metrik | Tingkat | Deskripsi | Catatan |
mcac_table_key_cache_hit_rate | Utama | Tingkat hit key_cache | Jika nilainya terlalu kecil, kecepatan baca aplikasi mungkin lambat, yang memengaruhi pengalaman pengguna. |
mcac_table_row_cache_hit_total | Utama | Jumlah hit row_cache | Jika nilainya terlalu kecil, kecepatan baca aplikasi mungkin lambat, yang memengaruhi pengalaman pengguna. |
mcac_table_row_cache_miss_total | Rekomendasi | Jumlah miss hit row_cache | Jika nilainya terlalu besar, kecepatan baca aplikasi mungkin lambat, memengaruhi pengalaman pengguna. |
mcac_table_row_cache_hit_out_of_range_total | Rekomendasi | Jumlah kali row_cache mengenai tetapi masih mengakses disk | Jika nilainya terlalu besar, kecepatan baca aplikasi mungkin lambat, memengaruhi pengalaman pengguna. |
mcac_table_bloom_filter_false_ratio | Utama | Tingkat positif palsu filter Bloom | Jika nilainya terlalu besar, elemen tidak ada dalam hasil kueri salah dianggap ada, yang membuang waktu dan sumber daya kueri. Ini menurunkan performa kueri dan meningkatkan biaya kueri. |
Tren Penggunaan CPU, Memori, dan Disk
Metrik | Tingkat | Deskripsi | Catatan |
collectd_cpu_total | Kritis | Penggunaan CPU | Jika nilainya terlalu besar, sistem kelebihan beban, yang memperpanjang latensi permintaan klien dan sangat memengaruhi pengalaman pengguna. |
collectd_memory | Kritis | Penggunaan memori | Jika nilainya terlalu besar, sistem kelebihan beban, yang memperpanjang latensi permintaan klien dan sangat memengaruhi pengalaman pengguna. |
collectd_df_df_complex | Kritis | Penggunaan hard disk | Jika nilainya terlalu besar, ruang hard disk tidak cukup. Data tidak dapat disimpan secara persisten, dan sistem mungkin crash. |
Kompresi SSTable
Metrik | Tingkat | Deskripsi | Catatan |
mcac_table_pending_compactions | Utama | Tugas kompresi SSTable sedang berlangsung | Jika nilainya terlalu besar, sistem kelebihan beban, yang memperpanjang latensi permintaan klien. Kami merekomendasikan Anda mengonfigurasi interval kompresi SSTable. |
mcac_table_compaction_bytes_written_total | Utama | Kecepatan kompresi SSTable | Jika nilainya terlalu kecil, kecepatan kompresi lambat, yang menyebabkan akumulasi tugas. Kami merekomendasikan Anda meningkatkan konfigurasi perangkat keras node. |
mcac_table_compression_ratio | Utama | Rasio kompresi SSTable | Jika nilainya terlalu besar, file yang dikompresi masih terlalu besar, dan tugas kompresi tidak mencapai hasil yang diharapkan. |
File Disk
Metrik | Tingkat | Deskripsi | Catatan |
mcac_table_live_ss_table_count | Utama | Jumlah SSTable | Jika nilainya terlalu besar, penggunaan hard disk tinggi, dan latensi baca/tulis memanjang. Kami merekomendasikan Anda mengonfigurasi kebijakan kompresi SSTable. |
mcac_table_live_disk_space_used_total | Utama | Ruang hard disk yang ditempati oleh SSTable | Jika nilainya terlalu besar, penggunaan hard disk tinggi, dan latensi baca/tulis memanjang. Kami merekomendasikan Anda mengonfigurasi kebijakan kompresi SSTable. |
mcac_table_ss_tables_per_read_histogram | Utama | Jumlah SSTable untuk setiap operasi baca | Jika nilainya terlalu besar, latensi baca klien tinggi. |
mcac_commit_log_total_commit_log_size | Utama | Ruang hard disk yang ditempati oleh Commit Log | Jika nilainya terlalu besar, ruang hard disk tidak cukup, performa baca/tulis menurun, dan waktu pemulihan data bertambah. |
mcac_table_memtable_live_data_size | Utama | Ruang yang ditempati oleh MemTable | Jika nilainya terlalu besar, performa penulisan data dan stabilitas node menurun. |
mcac_table_waiting_on_free_memtable_space | Utama | Waktu yang dihabiskan menunggu pelepasan MemTable | Jika nilainya terlalu besar, performa penulisan data dan stabilitas node menurun. |
Status Thread Pool
Metrik | Tingkat | Deskripsi | Catatan |
mcac_thread_pools_active_tasks | Kritis | Jumlah tugas aktif di thread pool | Jika nilainya terlalu besar, sumber daya sistem terpakai, yang dapat menyebabkan kecepatan respons berkurang dan bahkan sistem crash. |
mcac_thread_pools_total_blocked_tasks_total | Kritis | Jumlah tugas yang diblokir di thread pool | Jika nilainya terlalu besar, sumber daya sistem terpakai, yang dapat menyebabkan kecepatan respons berkurang dan bahkan sistem crash. |
mcac_thread_pools_pending_tasks | Kritis | Jumlah tugas tertunda di thread pool | Jika nilainya terlalu besar, banyak sumber daya sistem terpakai. Jika permintaan yang sesuai dengan tugas tertunda timeout, sistem mungkin crash. |
mcac_thread_pools_completed_tasks | Utama | Jumlah tugas selesai di thread pool | Metrik ini menunjukkan throughput sistem. Semakin tinggi nilainya, semakin baik performa sistem. |
JVM
Metrik | Tingkat | Deskripsi | Catatan |
mcac_jvm_memory_used | Kritis | Ukuran heap memory JVM yang digunakan | Jika nilainya terlalu besar, memori mungkin tidak cukup, yang memicu pengumpulan sampah sering, dan mengurangi throughput aplikasi. |
mcac_jvm_gc_time | Kritis | Waktu yang dihabiskan aplikasi dalam GC | Jika nilainya terlalu besar, GC terlalu sering, dan sistem memiliki lebih sedikit waktu untuk menjalankan tugas pengguna, yang dapat menyebabkan timeout permintaan klien atau bahkan sistem crash. |