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, както и, разбира се, също и предупреждението.
Това е всичко за днес!