MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Pemantauan MongoDB Proaktif (Sudut Pengembang Studio/Penasihat)

ClusterControl memiliki banyak metrik yang terkait dengan database, replikasi, dan juga sistem operasi. Anda juga dapat memantau proses yang berjalan di dalam database melalui opscounter di Overview.

Jika Anda mengaktifkan Pemantauan Berbasis Agen di ClusterControl, maka secara otomatis akan menginstal database prometheus untuk database deret waktu dan juga eksportir (mongo dan pengekspor node) pada node yang dipantau. Setelah semua disiapkan, Dashboard akan tersedia untuk Anda dengan Cluster Overview, System Overview dan juga metrik MongoDB (MongoDB Server and Replication) yang dapat Anda gunakan untuk memantau database MongoDB.

Ada juga Ops Monitor di ClusterControl yang dapat digunakan untuk memantau sesi di dalam database.

Selain yang disebutkan di atas, ClusterControl memiliki kemampuan untuk membuat Penasihat khusus melalui Studio Pengembang. Di blog ini, kami akan mengulas Developer Studio dan Penasihat yang terkait dengan MongoDB.

Gunakan Developer Studio

ClusterControl menyediakan Developer Studio, sehingga Anda dapat membuat Penasihat khusus yang terkait dengan topik di MongoDB yang ingin Anda konsultasikan berdasarkan praktik terbaik kinerja database. Membuat script untuk custom advisor di MongoDB mengharuskan Anda memiliki pengetahuan tentang bahasa pemrograman javascript, karena semua advisor ditulis dalam javascript. Anda dapat mengakses Developer Studio melalui Manage -> Developer Studio, dan Anda akan dapat melihat halaman seperti yang ditunjukkan di bawah ini:

Kita bisa membuat script advisor baru dengan mengklik tombol New, setelah itu maka akan muncul dialog untuk mengisi nama file seperti gambar dibawah ini:

Kita akan membuat skrip lock.js sederhana yang akan disimpan di jalur s9s/mongodb/koneksi. Script mengumpulkan informasi yang terkait dengan kunci global di MongoDB. Banyaknya global lock yang tinggi akan menjadi masalah di MongoDB, karena lock masih dalam keadaan hold/belum dilepas. Di bawah ini adalah contoh kunci global dalam javascript:

#include "common/helpers.js"
#include "cmon/io.h"
#include "cmon/alarms.h"

var DESCRIPTION="This advisor collects the number of global locks every minute and"
                " notifies you if the number of locks exceeds 90%."
                " This number can indicate a possible concurrency issue if it’s consistently high."
                " This can happen if a lot of requests are waiting for a lock to be released..";
var WARNING_THRESHOLD=10;
var TITLE="Global lock used";
var ADVICE_WARNINGS="In the past 5 minutes more than 90% of "
    " there could be concurrently issue in the database.";
var ADVICE_OK="The percentage of global lock is satisfactory." ;

function main(hostAndPort) {
    if (hostAndPort == #N/A)
        hostAndPort = "*";
    var hosts   = cluster::mongoNodes();
    var advisorMap = {};
    var result= [];
    var msg = "";
    var endTime   = CmonDateTime::currentDateTime();
    var startTime = endTime - 10 * 60;

    for (i = 0; i < hosts.size(); i++)
    {
        host        = hosts[i];
        if(hostAndPort != "*" && !hostMatchesFilter(host,hostAndPort))
            continue;
        if(host.hostStatus() != "CmonHostOnline")
            continue;
        var advice = new CmonAdvice();
        stats = host.mongoStats(startTime, endTime);
        total_global_lock = stats.toArray("globalLock.currentQueue.total");
       

        if (total_global_lock * 100 < WARNING_THRESHOLD)
        {
            advice.setSeverity(Warning);
            msg = ADVICE_WARNING;
        }
        if (advice.severity() <= 0) {
            advice.setSeverity(Ok);
        }
        advice.setHost(host);
        advice.setTitle(TITLE);
        advice.setAdvice(msg);
        advisorMap[i]= advice;
    }
    return advisorMap;
}

Anda dapat menyimpan skrip, kompilasi, dan jalankan. Anda dapat menjadwalkan skrip di Developer Studio berdasarkan setiap menit, jam skrip akan dijalankan.

Penasihat

Penasihat memberi kami visibilitas tentang status skrip yang telah kami buat di Studio Pengembang, skrip akan berjalan dan secara teratur memeriksa kunci global saat ini. Jika state berada di bawah ambang batas yang kita tentukan, output menjadi OK, tetapi akan muncul peringatan jika kunci global saat ini berada di atas ambang batas. Kita dapat melihat pada tangkapan layar di bawah bahwa kunci Global yang digunakan muncul di Penasihat dan statusnya saat ini baik-baik saja.

Kesimpulan

Developer Studio dan Advisors dapat memberi Anda manfaat untuk membuat Advisor khusus berdasarkan kebutuhan Anda dan ditampilkan di dasbor ClusterControl, dan tentu saja peringatan juga.

Itu saja untuk hari ini!


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. TransactionRequiredException Menjalankan kueri pembaruan/penghapusan

  2. Metode 'statis' luwak vs. metode 'contoh'

  3. Memfilter dokumen yang disematkan di MongoDB

  4. MongoDB $pop

  5. Skema Mongoose belum terdaftar untuk model