Difference between revisions of "Metrics and Monitoring in swarm"
(→Mi az a metrika) |
|||
Line 3: | Line 3: | ||
=Mi az a metrika= | =Mi az a metrika= | ||
− | A metrika egy fajta speciális loggolás, amit a metrikát szolgáltató rendszer nem egy log fájlba ír, hanem biztosít egy HTTP API-t, amin keresztül a metrikát feldolgozó szolgáltatás le tudja azt periodikusan kérdezni. A metrika név-érték párok listája, aminek a jelentése bármi lehet ami időben változik. A metrika listában minden egyes metrika jelentését a metrikát szolgáltató rendszernek kell definiálnia. | + | A metrika egy fajta speciális loggolás, amit a metrikát szolgáltató rendszer nem egy log fájlba ír, hanem biztosít egy HTTP API-t, amin keresztül a metrikát feldolgozó szolgáltatás le tudja azt periodikusan kérdezni. A metrika név-érték párok listája, aminek a jelentése bármi lehet ami időben változik. A metrika listában minden egyes metrika jelentését a metrikát szolgáltató rendszernek kell definiálnia. Pl egy node-on lévő elérhető maradék memóriát jelképezheti a következő metrika: |
+ | node_memory_MemAvailable 210 | ||
+ | |||
+ | |||
+ | A metrikákat úgynevezett '''time-series''' (idősor) adatbázisban kell letárolni, vagyis megy adott metrikához nyilván van tartva minden lekérdezéshez a lekérdezéshez kapott érték. Ez a speciális struktúra ugyan letárolható lenne hagyományos adatbázis kezelőkben is, de nagyon nem lenne hatékony a bennük való keresés. Léteznek direkt erre a speciális adatmodellre készült adatbáziskezelők, amik rettentő hatékonyan tudnak keresni a time-series adatokban. Egy adott metrika tárolását egy listaként lehet elképzelni, ahol a lista elemek az időbélyegekkel vannak indexelve, és a listaelem tárolja az adott időpillanathoz (amikor a lekérdezés történt) a metrika értékét. A főbb '''time-series db'''-k: | ||
+ | * InfluxDB: | ||
+ | * Prometheus | ||
+ | * Graphite | ||
+ | * OpenTSDB | ||
+ | * KairosDB | ||
+ | ... | ||
+ | |||
Revision as of 19:41, 7 August 2018
Mi az a metrika
A metrika egy fajta speciális loggolás, amit a metrikát szolgáltató rendszer nem egy log fájlba ír, hanem biztosít egy HTTP API-t, amin keresztül a metrikát feldolgozó szolgáltatás le tudja azt periodikusan kérdezni. A metrika név-érték párok listája, aminek a jelentése bármi lehet ami időben változik. A metrika listában minden egyes metrika jelentését a metrikát szolgáltató rendszernek kell definiálnia. Pl egy node-on lévő elérhető maradék memóriát jelképezheti a következő metrika:
node_memory_MemAvailable 210
A metrikákat úgynevezett time-series (idősor) adatbázisban kell letárolni, vagyis megy adott metrikához nyilván van tartva minden lekérdezéshez a lekérdezéshez kapott érték. Ez a speciális struktúra ugyan letárolható lenne hagyományos adatbázis kezelőkben is, de nagyon nem lenne hatékony a bennük való keresés. Léteznek direkt erre a speciális adatmodellre készült adatbáziskezelők, amik rettentő hatékonyan tudnak keresni a time-series adatokban. Egy adott metrika tárolását egy listaként lehet elképzelni, ahol a lista elemek az időbélyegekkel vannak indexelve, és a listaelem tárolja az adott időpillanathoz (amikor a lekérdezés történt) a metrika értékét. A főbb time-series db-k:
- InfluxDB:
- Prometheus
- Graphite
- OpenTSDB
- KairosDB
...
A metrika bármi lehet, egy név=érték pár. Van egy string, aminek van egy értéke. Pl: builder_builds_failed_total{reason="build_canceled"} 0
Hol a builder_builds_failed_total{reason="build_canceled"} a név, és az értéke 0.
Ami a {} között van az a metrika címéje vagy címkéji, ha több is van. A címkéket vesszővel kell elválasztani, ha több is van. A címke finomhangolja a metrika jelentését, úgymond sepcifikálja. Vagy inább egy plusz dimenzió a metrikában. Ezen a metrikán a reason címke van rajta, aminek az értéke "build_cancell". Ez is bármi lehet, szintén név érték párok. Azt hiszem hogy van két beépetett címke: