sql >> Databáze >  >> NoSQL >> MongoDB

Proaktivní monitorování MongoDB (úhel vývojářského studia / poradců)

ClusterControl má mnoho metrik souvisejících s databází, replikací a také operačním systémem. Proces, který běží uvnitř databáze, můžete také sledovat prostřednictvím opscounter v Přehledu.

Pokud v ClusterControl povolíte Agent Based Monitoring, automaticky se nainstaluje databáze prometheus pro databázi časových řad a také exportér (jak mongo, tak exportér uzlů) na sledovaný uzel. Po nastavení všeho vám bude k dispozici řídicí panel s přehledem clusteru, přehledem systému a také metrikami MongoDB (MongoDB Server and Replication), které můžete použít ke sledování databáze MongoDB.

V ClusterControl je také Ops Monitor, který lze použít ke sledování relací uvnitř databáze.

Kromě výše uvedeného má ClusterControl možnosti vytvářet vlastní poradce prostřednictvím Developer Studio. V tomto blogu se podíváme na Developer Studio a poradce související s MongoDB.

Využijte Developer Studio

ClusterControl poskytuje Developer Studio, takže můžete vytvářet vlastní poradce související s tématem v MongoDB, které chcete mít jako poradce založené na osvědčených postupech výkonu databáze. Vytvoření skriptu pro vlastní poradce v MongoDB vyžaduje znalost programovacího jazyka javascript, protože všichni poradci jsou napsáni v javascriptu. Do Developer Studio se můžete dostat přes Spravovat -> Developer Studio a budete moci zobrazit stránku jak je uvedeno níže:

Můžeme vytvořit nový skript poradce kliknutím na tlačítko Nový, poté zobrazí se dialog pro vyplnění názvu souboru, jak je ukázáno níže:

Vytvoříme jednoduchý skript lock.js, který bude uložen v cesta s9s/mongodb/connections. Skript shromažďuje informace související s globálním zámkem v MongoDB. Počet vysokých globálních zámků bude v MongoDB problémem, protože zámek je stále pozastaven / dosud nebyl uvolněn. Níže je ukázka globálního zámku v javascriptu:

#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;
}

Skript můžete uložit, zkompilovat a spustit. Skript můžete v Developer Studio naplánovat na základě každé minuty a hodiny, kdy se skript spustí.

Poradci

Poradci nám poskytují přehled o stavu skriptu, který jsme vytvořili v Developer Studio, skript se spustí a pravidelně kontroluje aktuální stav globálního zámku. Pokud je stav pod prahovou hodnotou, kterou definujeme, výstup bude v pořádku, ale zobrazí se varování, pokud je aktuální globální zámek nad prahovou hodnotou. Na níže uvedeném snímku obrazovky můžeme vidět, že použitý globální zámek se zobrazuje v Advisors a stav je momentálně OK.

Závěr

Developer Studio a Advisors vám mohou poskytnout výhodu při vytváření vlastních poradců na základě vašich požadavků a zobrazených na řídicím panelu ClusterControl a samozřejmě také upozornění.

To je pro dnešek vše!


  1. Expire time express a redis session

  2. Apache Phoenix pro CDH

  3. Zkoušel někdo CouchDB a různé offline implementace (PouchDB)?

  4. Vložení seznamu do jiného seznamu v Redis