Játékok | Számítógépes játékok » Sütő János - Tartsd kézben az időt, avagy mire jó egy time series adatbázis

Alapadatok

Év, oldalszám:2018, 54 oldal

Nyelv:magyar

Letöltések száma:11

Feltöltve:2022. december 03.

Méret:6 MB

Intézmény:
-

Megjegyzés:

Csatolmány:-

Letöltés PDF-ben:Kérlek jelentkezz be!



Értékelések

Nincs még értékelés. Legyél Te az első!


Tartalmi kivonat

Tartsd kézben az időt, avagy mire jó egy time series adatbázis? Sütő János, sj@acts.hu Időbélyegzett adat Szerver metrika Alkalmazás performancia (IoT) szenzorok adatai Pénzügyi, pl. tőzsde adatok Felhasználási területek Szerver monitorozás Alkalmazás teljesítmény mérése Üzleti intelligencia Valósidejű elemzések Dashboard backend Szenzor adatok Időbélyegzett workload Időbélyegzett adatok Nagy időintervallum adatpontjainak lekérdezése (pl. %-os növekedés az előző időszakhoz képest) Adat életciklus menedzsment Az adatok egésze értékesebb, mint egy adatpont (pl. akkumlátor töltöttsége) Időbélyegzett platform választása MySQL (”AnySQL”)? Hbase/Cassandra? Elasticsearch? MongoDB? Benchmark A tesztekben használt adatok jellemzői: Szerverek száma: 100 Szerverenkénti metrikák száma: 100 Mérések közötti idő: 10s Adat megtartási idő: 24 óra Összes adat: 86 millió érték/nap Összehasonlítás más

megoldásokkal influxDB Írás [érték/sec] Cassandra MongoDB Elasticsearch 1,432,630 103,912 9335 143,711 Diszk igény [MB] 145 2355 9420 540.1900 Keresés [query/sec] 820 szerver: 39 non cached: 219 kliens: 630 cached: 587 712.1019 TICK stack InfluxDB - tárolás Tervezési sajátosságok Nincsenek duplikált sorok Csak ritkán van törlés Update is ritkán van Az adatok időrendben sorrendben érkeznek Fontosabb az elérhetőség, mint a konzisztencia Egyetlen adatpont nem túl fontos Skálázhatóság SQL tábla +----+-------+---------------------------------+-------+ | id | host | time | load | +----+-------+---------------------------------+-------+ | 1 | host1 | 1429185600000000000 | 0.1 | | 1 | host1 | 1429185601000000000 | 0.2 | | 1 | host1 | 1429185602000000000 | 0.1 | | 2 | host2 | 1429185600000000000 | 0.4 | | 2 | host2 | 1429185601000000000 | 0.4 | | 2 | host2 | 1429185602000000000 | 0.3 |

+----+-------+---------------------------------+-------+ name: hosts tags: id=1, host=host1 time load ------------2015-04-16T12:00:00Z 0.1 2015-04-16T12:00:01Z 0.2 2015-04-16T12:00:02Z 0.1 name: hosts tags: id=2, host=host2 time load ------------2015-04-16T12:00:00Z 0.4 2015-04-16T12:00:01Z 0.4 2015-04-16T12:00:02Z 0.3 InfluxDB Time series vs. SQL Címkék (id, host) ~ indexelt oszlopok Mezők (load) ~ nem indexelt oszlopok Adatpont (2015-04-16T.) ~ sor HTTP API curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb" cpu data.txt: cpu load short,direction=in,host=server01,regi on=us-west value=2.0 1422568543702900257 curl -i -XPOST http://localhost:8086/write? db=mydb --data-binary @cpu data.txt Telegraf - adatgyűjtés Telegraf agent Go-ban írt adatgyűjtő agent, amely más adatgyűjtő megoldásoktól eltérően fel is címkézi a begyűjtött, ill. továbbított adatpontokat. Telepítés: apt-get, yum, . Plugin-ok -

input: apache, cassandra, ceph, docker, elasticsearch, fail2ban, haproxy, k8s, nginx, php, rabbitmq, salesforce, minecraft, stb. - output: influxdb, file, kafka, riemann, elasticsearch, stb. Sajátot is írhatsz! [[outputs.influxdb]] urls = ["http://localhost:8086"] database = "mydb1" telegraf.conf [[inputs.cpu]] [[inputs.mem]] [[inputs.disk]] mount points = ["/"] [[inputs.processes]] [[inputs.system]] [[inputs.kernel vmstat]] [[inputs.net]] [[inputs.nginx]] urls = ["http://127.001/nginx status"] Exec plugin [[inputs.exec]] commands = ["pilerstats"] name override = "piler" data format = "json" JSON / XML / kimenet $ pilerstats { "rcvd": 2887, "size": 59172781, "ssize": 27855760, "sphx": 6, "ram bytes": 3718, "disk bytes": 642, "error emails": 0, "smtp response": 0.58 } Az eredmény Grafana-ban Chronograf –

megjelenítés InfluxDB GUI Alert beállítása Kapacitor - anomáliadetektálás Hogyan nézhetünk dashboard-ot? a) szemmel: nem biztos, hogy mindig észrevesszük a problémákat b) statikus küszöbérték beállítása (vs. hétfőnként terhelésteszt) c) machine learning, statisztikai módszerek (ezt tudja a kapacitor) Dead man’s switch https://bit.ly/2ron9jz Time series adatbázisok alkalmazása a gyakorlatban Hagyományos monitorozás (nagios, zabbix, ) kiváltása Finom felbontású adatokból hosszútávú trendek OK / nem OK vs. Mennyire rossz a helyzet? Elég másnap reggel elhárítani, ha pl. egy reverse proxy mögött 5 webszerverből 3 marad Minecraft szerver statisztika Minecraft szerver konfig server.properties: enable-rcon=true rcon.password=somepass rcon.port=25575 Telegraf konfig [[inputs.minecraft]] # minecraft server server = "localhost" # RCON port port = "25575" # RCON password for minecraft

server password = "somepass" Telegraf output $ telegraf --input-filter minecraft --test * Plugin: inputs.minecraft, Collection 1 >minecraft,player=notch,server=127.001:25575 jumps=178i 1498261397000000000 > minecraft,player=dinnerbone,server=127.001: 25575 deaths=1i,jumps=1999i,cow kills=1i 1498261397000000000 > minecraft,player=jeb,server=127.001:25575 d pickaxe=1i,damage dealt=80i,d sword=2i,hunger=20i,h ealth=20i,kills=1i,level=33i,jumps=264i,armor=15i 1498261397000000000 Minecraft dashboard openWRT default grafikon Raspberry dashboard (=TIG stack) Processes (total vs running) Hurrikán előrejelzés NHC: RSS feed az atlanti ciklonokról A feladat: - RSS olvasás - Parse-olni - influxDB-be tolni - grafikonok (Egyszerűsített) XML adat topic: “Summary for Tropical Storm Ophelia summary: “OPHELIA LOOKS LIKE A HURRICANE ON SATELLITE BUT IT IS NOT ONE QUITE YET↵ As of 11:00 AM AST Wed Oct 11↵ the center of Ophelia was

located near 30.0, -365↵ with movement E at 3 mph.↵ The minimum central pressure was 992 mb↵ with maximum sustained winds of about 70 mph.” date: “2017-10-11T14:35:32.000Z” link: “http://www.nhcnoaagov/text/refresh/MIATCPAT2+ shtml/111435.shtml“ Parse-olás után payload: array[2] 0: object lat: 30.4 lng: -35.5 pressure: 973 move dir: “Stationary” move speed: 0 wind speed: 100 1: object name: “Ophelia” type: “Hurricane” Vihar sebesség, légnyomás Vihar sebesség, légnyomás (Grafana) Log menedzsment SSH a szerverre, majd grep Centralizált naplózás, SSH a logszerverre, majd grep ELK full text search Log menedzsment Szűkítés: idő + metaadatok, majd grep Lehetséges tag-ek: ügyfél log level szolgáltatás régió alkalmazás hoszt stb. Log menedzsment Logok és metrikák 1 helyen Milliárd sornyi log naponta? - Mintavételezés, pl. max 1000 sort tárolni másodpercenként - Csak a kivételeket / hibákat tartalmazó sorok

+ a környező adatok tárolása https://bit.ly/2wep3Je 600 AWS instance Szezonális üzleti ciklus DynamoDB on-demand skálázása (gyorsabb, mint az Amazon saját megoldása) https://bit.ly/2qKZjBf Világítás Afrika elmaradott részein Battery Box (napenergia) BBOXX 2G-n monitorozás Időbélyegzett adatok influxDB-be AWS-ben az adatok Dashboard Telemetria adatok, firmware logok, származtatott adatok (teljesítmény, napi használat, .)