( joco01 | 2018. 01. 20., szo – 19:14 )

Ha én írnék egy ilyen szoftvert, beállítanám, hogy pl. 10G vagy 5% alatt szóljon. Ha ez valakinek nem jó, kikapcsolja vagy átállítja a küszöbértéket.

A lényeg, hogy a szoftver írója gondoljon rá (ne a végfelhasználónak kelljen, mert olyan sokféle metrika van, nincs az az ember, akinek egyedül eszébe jut mind), rakja össze a rule-t (ne nekem kelljen az egész szintaxist nulláról megtanulni, jobb az, ha van egy sablon), legyen alkalmazva alapból (ha beteszek egy új diszket, simán lehet, hogy elfelejtem bekapcsolni rá), és akkor a végfelhasználónak jó eséllyel jó egy az egyben, vagy maximum egy kicsit reszel rajta.

A konkrét számértéket leszámítva ez csupa olyan dolog, ami a világ több száz millió szerverénél ugyanúgy előjön újra meg újra, és pont az ilyen dolgokra szoktak szoftvereket írni.

Közösségi alapon főleg tök jó lenne a világ össze metrikájára összeszedni a know-how-t, hogy mi számít jó vagy rossz értéknek. Ha most én itt random kiválasztom a Prometheus által gyűjtött 243 metrikából a 197-ediket, ami a /sys vagy /proc alól valami egzotikus helyről elővesz egy számot, állítom, hogy itt a népek mondjuk 1-10%-a fogja csak fejből tudni, hogy milyen küszöbérték lenne jó rá.

Mondok még valamit, ami már konkrétan a munkám során előjött. Tegyük fel, hogy hirtelen belassul egy szolgáltatás. Van monitoring a válaszidőre, jön riasztás, oké. Hogyan tovább?
A. Elkezdek tippelgetni, hogy vajon mitől lehet. Előbb tapasztalatból a szokásos dolgokat nézem, aztán egyre mélyebben, aztán egyesével szúrópróbaszerűen az egzotikusabb helyeken is kutakodok. Kézzel rakok össze lekérdezéseket, ad-hoc grafikonokat, stb. Nagyon sokáig is el tud tartani.
B. Van egy monitoring oldal, ahol adott szolgáltatással kapcsolatban ott van a szemem előtt egyszerre az összes metrika. Van mindegyiken ugyanott egy függőleges vonal, ahol az alert előjött. Végiggörgetem, és rögtön látszódni fog valahol egy outlier. Rögtön tudom, hogy merre kell nézelődni. Akkor is, ha egyébként eszembe se jutott volna pont azt az egy grafikont elővenni.

Ezért gondolom azt, hogy sokkal jobb egy kézzel összeválogatott halmaz helyett minden létező adatot gyűjteni, és ha baj van, mindet egyszerre prezentálni. Itt bukik el a Grafana, ahol nem láttam olyat, hogy na akkor erre az oldalra tedd ki a Prometheus összes metrikáját, viszont ezt tudja a Netdata (csak az máson vérzik el).

Egy jó rendszerben eleve úgy van definiálva minden metrika, hogy van mellette magyarázat, mértékegység, stb. Ezek után triviális teljesen automatikusan az összes létező metrikából grafikont gyártani. Ha ehhez hozzájön, hogy a metrika definíciójában vannak küszöbértékek, amit egy okos ember egyszer már kitalált, akkor máris van generikus alerting is, zéró konfigurációval. Plusz egy monitorozó rendszertől az sem nagy elvárás már manapság, hogy anomáliákat jelezzen (pl. egy adott RPC szolgáltatás válaszidejére tényleg nehéz jó értéket állítani gyárilag, viszont meg lehet tanulni, hogy ez általában 10-15 ms alatt válaszol, akkor 50 ms fölött riasztunk, egy másik meg 200-500 ms alatt, akkor riasztunk 2 s fölött, vagy 50 ms alatt).