Saat menjalankan layanan database penting dalam produksi, kita perlu mengetahui dan memantau database. Anda perlu memahami metrik utama dalam database yang Anda gunakan. Misalnya, ketika Anda menjalankan MongoDB dengan mesin penyimpanan WiredTiger, Anda perlu mengetahui koneksi, otentikasi, operasi, jeda replikasi, kesalahan halaman, penguncian, dll.
Dalam blog ini, kami akan menjelaskan beberapa metrik utama yang digunakan untuk memantau Server Percona untuk MongoDB.
Koneksi Basis Data
Koneksi database adalah salah satu metrik kunci penting dalam database apa pun. Ini memantau koneksi/utas Anda saat ini dari aplikasi ke database. Anda dapat memeriksa koneksi saat ini melalui perintah di bawah ini:
> db.serverStatus().connections
Ini memberikan gambaran tentang seberapa banyak aplikasi Anda mengakses database. Lonjakan jumlah koneksi yang tiba-tiba dapat menyebabkan masalah pada server database Anda. Apakah diharapkan atau tidak?.
ClusterControl menyediakan informasi terkait koneksi seperti yang ditunjukkan di bawah ini:
Operasi Perintah
Metrik operasi perintah memantau operasi Anda saat ini, baik menyisipkan, memperbarui, menghapus, atau memilih. Anda dapat memantau operasi perintah saat ini dengan menjalankan perintah di bawah ini:
>db.serverStatus().opcounters
Dari operasi perintah, Anda benar-benar dapat melihat beban kerja aplikasi Anda, apakah menulis atau membaca berat. Dari sudut pandang ini, Anda dapat membuat beberapa keputusan, misalnya, jika Anda memiliki lalu lintas baca yang padat, Anda mungkin ingin menskalakan node sekunder untuk mendistribusikan kueri baca.
Operasi perintah pemantauan di ClusterControl sangat mudah, Anda hanya perlu mengaktifkan Pemantauan Berbasis Agen untuk melihat metrik OpsCounter di dasbor Server MongoDB seperti yang ditunjukkan di bawah ini:
ReplicaSet Lag
Saat Anda menjalankan arsitektur ReplicaSet atau ShardCluster, satu metrik kunci penting adalah jeda replikasi. Replikasi lag terjadi ketika node sekunder tidak dapat mengejar data yang sedang ditulis ke node primer. Alasan untuk ini mungkin berbeda dari latensi jaringan, throughput disk, kueri lambat, dll.
Anda dapat memeriksa informasi jeda replikasi saat ini dengan menjalankan perintah di bawah ini pada node utama:
> rs.printSlaveReplicationInfo()
Metrik informasi kelambatan dalam hitungan detik, jadi pada koneksi serentak yang berat, metrik ini mungkin tertinggal beberapa detik pada node sekunder karena replikasi di mongodb tidak sinkron.
Di ClusterControl, metrik Lag Replikasi Maks dapat ditemukan di Replika MongoDB dasbor pemantauan.
Kesalahan Halaman
Kesalahan Halaman sebagian besar terjadi pada aplikasi dengan beban tinggi dan bersamaan. Page Fault terjadi ketika proses mongodb ingin mendapatkan data tetapi tidak tersedia di memori, maka server mongodb membaca data dari disk.
Untuk memantau status kesalahan halaman saat ini, Anda dapat menggunakan perintah di bawah ini:
>db.serverStatus().extra_info.page_faults
Ini memberi Anda jumlah kesalahan halaman. Nilainya mungkin meningkat selama beban berat dan server mungkin mengalami kinerja yang buruk. Anda mungkin ingin memeriksa log kueri lambat juga.
Mengunci
Penguncian juga merupakan metrik penting di MongoDB, biasanya terjadi pada aplikasi beban tinggi dengan banyak transaksi pada kumpulan data yang sama. Mengunci dapat menyebabkan masalah kinerja yang serius.
Anda dapat memeriksa operasi penguncian saat ini di database menggunakan perintah di bawah ini:
>db.currentOp()
Saat kita menjalankan perintah db.currentOp(), ada beberapa informasi terkait penguncian. ClusterControl memantau Global Lock di dasbor MongoDB-nya seperti yang ditunjukkan di bawah ini:
Kesimpulan
Ini adalah beberapa metrik kunci penting untuk dipantau di Server Percona untuk MongoDB. Mereka memberikan tampilan waktu nyata tentang apa yang terjadi di server dan dapat mengungkap anomali apa pun yang dapat Anda ambil tindakan. ClusterControl menyediakan beberapa dasbor yang memberi Anda visibilitas database MongoDB Anda.