Project

General

Profile

Actions

Feature #1427

closed

Hawat - změna pickupů na konkrétnější detektory

Added by Pavel Kácha almost 11 years ago. Updated almost 11 years ago.

Status:
Closed
Priority:
High
Category:
Development - GUI
Target version:
Start date:
02/18/2014
Due date:
02/28/2014
% Done:

0%

Estimated time:
To be discussed:

Description

V současné době je v Dashboardu graf Analyzer, kde se prakticky agregují data jednoho pickup démona, a v Alerts box Detector, který na základě pickup démona umožňuje vybírat. Jeden pickup může ale sdružovat víc různých detektorů (v našem případě třeba stroje Pavla Vachka sbírají rozdílná externí data z více zdrojů).

Zajímá nás ale spíše statistika zdrojů, než pickupů, a chtělo by to sjednotit terminologii. Tj.:

  • Klíčem by měla tedy být spíše dvojice Alert/Analyzer/@analyzerid + Alert/Analyzer/@name (bude to chtít zobrazovat nějak lidsky, třeba "Au1-pickup/LaBrea").
  • u Dashboard přidat nad Analyzer graf, kde groupovacím klíčem bude $key, pojmenovat Detector
  • v Alerts změnit selectbox Detector v simple formu na výběr z $key (jméno Detector nechat)
  • zkontrolovat/doplnit příslušné indexy (možná potřeba složený index)

Files

01.png (75.6 KB) 01.png Radomír Orkáč, 03/09/2014 07:38 PM
09.png (85.8 KB) 09.png Radomír Orkáč, 03/09/2014 07:38 PM
Actions #1

Updated by Pavel Kácha almost 11 years ago

  • Priority changed from Normal to High
Actions #2

Updated by Radomír Orkáč almost 11 years ago

Jak jsme si psali s Pavlem, abych nerekl v utery, ze nevim co delat.., tak si to upresnuji..


u Dashboard přidat nad Analyzer graf, kde groupovacím klíčem bude $key, pojmenovat Detector

Chapu to spravne, kdyz chci pridat dalsi sekci Detector nad Analyzer?
Cili udelat celou novou sekci s nazvem Detector a dat ji nad Analyzer, nebo upravit stavajici Analyzer?


Klíčem by měla tedy být spíše dvojice Alert/Analyzer/@analyzerid + Alert/Analyzer/@name (bude to chtít zobrazovat nějak lidsky, třeba "Au1-pickup/LaBrea").

Dival jsem se na mongo dotazy a nemel by to byt problem:

    my $analyzer =
    [
        {
            '$match' => $self->_process_query($query, $epoch_from, $epoch_to, AGGR_ANAL())
        },
        {
            '$project' => { source => '$Alert.Analyzer.@analyzerid' }
        },
        {
            '$group' => { _id => '$source', sum => {'$sum' => 1} }
        },
        {
            '$sort' => { sum => -1 }
        }
    ];


v Alerts změnit selectbox Detector v simple formu na výběr z $key (jméno Detector nechat)

Dobre, rozumim, diky.


zkontrolovat/doplnit příslušné indexy (možná potřeba složený index)

Dobre, rozumim, diky.

Actions #3

Updated by Radomír Orkáč almost 11 years ago

Tak jsem se z dovolene snazil vratit co nejdrive, abych praci neodkladal na pondeli/utery, protoze to nedopadlo minuly tyden dobre.

Pripraveno ke kontrole (viz screenshots, pushnuto, bezi na VSB):
  • Klíčem by měla tedy být spíše dvojice Alert/Analyzer/@analyzerid + Alert/Analyzer/@name (bude to chtít zobrazovat nějak lidsky, třeba "Au1-pickup/LaBrea").
  • u Dashboard přidat nad Analyzer graf, kde groupovacím klíčem bude $key, pojmenovat Detector
  • v Alerts změnit selectbox Detector v simple formu na výběr z $key (jméno Detector nechat)
Dodelam do VC:
  • zkontrolovat/doplnit příslušné indexy (možná potřeba složený index)
Actions #4

Updated by Radomír Orkáč almost 11 years ago

  • zkontrolovat/doplnit příslušné indexy (možná potřeba složený index)

Potreba nasledujiciho indexu:

db.alerts.ensureIndex( { "Alert.Analyzer.@analyzerid": 1, "Alert.Analyzer.@name": 1 } )

Bez indexu:

> db.alerts.find({"$and":[{"Alert.Analyzer.@analyzerid":"mentat-wardenin"},{"Alert.Analyzer.@name":"HostStats"}]}).explain()
{
        "cursor" : "BtreeCursor Alert.Analyzer.@name_1",
        "isMultiKey" : false,
        "n" : 169047,
        "nscannedObjects" : 169047,
        "nscanned" : 169047,
        "nscannedObjectsAllPlans" : 169148,
        "nscannedAllPlans" : 169148,
        "scanAndOrder" : false,
        "indexOnly" : false,
        "nYields" : 0,
        "nChunkSkips" : 0,
        "millis" : 571,
        "indexBounds" : {
                "Alert.Analyzer.@name" : [
                        [
                                "HostStats",
                                "HostStats" 
                        ]
                ]
        },
        "server" : "mentat:27017" 
}

S indexem:

db.alerts.find({"$and":[{"Alert.Analyzer.@analyzerid":"mentat-wardenin"},{"Alert.Analyzer.@name":"HostStats"}]}).explain()
{
        "cursor" : "BtreeCursor Alert.Analyzer.@analyzerid_1_Alert.Analyzer.@name_1",
        "isMultiKey" : false,
        "n" : 169047,
        "nscannedObjects" : 169047,
        "nscanned" : 169047,
        "nscannedObjectsAllPlans" : 169047,
        "nscannedAllPlans" : 169047,
        "scanAndOrder" : false,
        "indexOnly" : false,
        "nYields" : 1,
        "nChunkSkips" : 0,
        "millis" : 292,
        "indexBounds" : {
                "Alert.Analyzer.@analyzerid" : [
                        [
                                "mentat-wardenin",
                                "mentat-wardenin" 
                        ]
                ],
                "Alert.Analyzer.@name" : [
                        [
                                "HostStats",
                                "HostStats" 
                        ]
                ]
        },
        "server" : "mentat:27017" 
}

Actions #5

Updated by Pavel Kácha almost 11 years ago

  • Status changed from New to Closed
Actions #6

Updated by Jan Mach almost 11 years ago

Seznam indexů je uveden v modulu Mentat::Message::Storage::Mongo, metoda create_indexes(), ale jsou to indexy týkající se pouze kolekce alerts. Indexy je pak při čisté instalaci vytvořit pomocí utility hawat-cli:

hawat-cli db index

Při přidávání indexu do existující velké databáze je ale lepší spustit indexaci manuálně z Mongo shellu a na pozadí, aby nevytížila celou databázi (stalo se mi teď )

Nový index jsem přidal.

Actions

Also available in: Atom PDF