Feature #1427
closedHawat - změna pickupů na konkrétnější detektory
0%
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
Updated by Radomír Orkáč over 10 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.
Updated by Radomír Orkáč over 10 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)
- zkontrolovat/doplnit příslušné indexy (možná potřeba složený index)
Updated by Radomír Orkáč over 10 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" }
Updated by Jan Mach over 10 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.