MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Проактивен мониторинг на MongoDB (ъгъл на Developer Studio/Advisors)

ClusterControl има много показатели, свързани с базата данни, репликацията, а също и операционната система. Можете също така да наблюдавате процеса, който се изпълнява в базата данни чрез opscounter в Преглед.

Ако активирате мониторинг, базиран на агенти в ClusterControl, той автоматично ще инсталира база данни на prometheus за база данни от времеви серии, а също и експортер (и mongo, и експортер на възли) на наблюдавания възел. След като всичко бъде настроено, таблото за управление ще бъде достъпно за вас с преглед на клъстера, преглед на системата, а също и с показатели за MongoDB (MongoDB сървър и репликация), които можете да използвате за наблюдение на базата данни MongoDB.

В ClusterControl има и Ops Monitor, който може да се използва за наблюдение на сесиите в базата данни.

Освен гореспоменатото, ClusterControl има възможности за създаване на персонализирани съветници чрез Developer Studio. В този блог ще прегледаме Developer Studio и съветниците, свързани с MongoDB.

Използвайте Developer Studio

ClusterControl предоставя Developer Studio, така че можете да създавате персонализирани съветници, свързани с темата в MongoDB, за които искате да имате съвети въз основа на най-добрите практики за производителност на базата данни. Създаването на скрипт за персонализирани съветници в MongoDB изисква да имате познания в езика за програмиране javascript, тъй като всички съветници са написани на javascript. Можете да получите достъп до Developer Studio чрез Manage -> Developer Studio и ще можете да видите страницата както е показано по-долу:

Можем да създадем нов скрипт за съветник, като щракнем върху бутона Нов след това той ще покаже диалог за попълване на името на файла, както е показано по-долу:

Ще създадем прост lock.js скрипт, който ще се съхранява в път s9s/mongodb/връзки. Скриптът събира информация, свързана с глобалното заключване в MongoDB. Броят на високите глобални заключвания ще бъде проблем в MongoDB, тъй като заключването все още е на изчакване/все още не е освободено. По-долу е извадката за глобално заключване в 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;
}

Можете да запазите скрипта, да компилирате и стартирате. Можете да планирате скрипта в Developer Studio въз основа на всяка минута, час, в който скриптът ще се изпълнява.

Съветници

Съветниците ни дават видимост за състоянието на скрипта, който сме създали в Developer Studio, скриптът ще се изпълнява и редовно ще проверява текущото глобално заключване. Ако състоянието е под прага, който дефинираме, изходът става ОК, но ще се появи предупреждение, ако текущото глобално заключване е над прага. На екранната снимка по-долу можем да видим, че използваното глобално заключване се появява в съветниците и състоянието е ОК в момента.

Заключение

Developer Studio и Advisors могат да ви дадат предимство да създавате персонализирани съветници въз основа на вашите изисквания и показвани в таблото за управление на ClusterControl, както и, разбира се, също и предупреждението.

Това е всичко за днес!


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Вмъкване на елемент във вложени масиви в MongoDB

  2. 3 начина за премахване на стойност от масив в MongoDB

  3. Преглед на оперативното отчитане на базата данни в ClusterControl

  4. MongoDB Aggregation:Преброяване на отделни полета

  5. 10 съвета за подобряване на сигурността на MongoDB