This commit is contained in:
Torma Kristóf 2019-12-12 18:34:12 +01:00
parent 45f523b4b8
commit 76729767fb
Signed by: tormakris
GPG Key ID: DC83C4F2C41B1047

View File

@ -121,7 +121,7 @@ Miután a Knative Autoscaler naplóállománya analizálásának igénye felmer
A Knative Autoscaler a naplóbejegyzéseket JSON objektumként menti, melyből a Python képes dictionary objektumot készíteni. Amennyiben az adott bejegyzés \textit{ts} mezője a mérés kezdési és befejezési ideje közé esik, akkor az \textit{msg} mezőben lévő üzenet feldolgozásra kerül. Az üzenetben kulcs-érték párok vannak szóközzel elválasztva egymástól. A kulcs és az érték között egyenlőségjel van. Ezt egy reguláris kifejezéssel listává lehet konvertálni. Sajnos a Python reguláris kifejezés API-jában nincs arra lehetőség, hogy ilyen esetben dictionary objektumot adjon vissza, így azt kézzel kell konvertálni kihasználva azt, hogy az értékek mindig egy kulcs után következnek. Ezután a podok száma, valamint a megfigyelt stabil konkurencia érték letárolható. Ennek folyamat\'at \aref{sec:log-analyze} f\"uggel\'ekben l\'atni.
A feldolgozott adatokból a \textit{matplotlib} Python könyvtár segítségével készíthető grafikon úgy, hogy az adatokat tartalmazó listát átadjuk a megfelelő függvény számára. A grafikon mentése egy másik függvényhívással lehetséges, szintén külön függvényhívással lehet a grafikon címét \'es a tengelyek feliratát elhelyezni.
A feldolgozott adatokból a \textit{matplotlib} Python könyvtár segítségével készíthető grafikon úgy, hogy az adatokat tartalmazó listát átadjuk a megfelelő függvény számára. A grafikon mentése egy másik függvényhívással lehetséges, szint\'ugy külön függvényhívással lehet a grafikon címét \'es a tengelyek feliratát elhelyezni.
A méréseket elvégző szkript kis módosításával elértem, hogy a mérési eredmények egy általam üzemeltett számítógépre töltődjenek fel archiválásra és az itt részletezett program által feldolgozásra. A feltöltés után a szkript meghívott egy ugyanezen a szerveren futó REST-es végpontot, amely hatására elindult az adatok feldolgozása. Maga a program egy Docker konténerben futott. A kód verziókövetésére Git-et használtam, amelynek előnye az volt, hogy minden alkalommal, mikor egy állapotát mentettem a kódnak, abból a Travis szolgáltatás automatikusan elkészítette a Docker Image-et, valamint feltöltötte a Docker Hub-ra. Így a fejlesztéstől a mérésig teljesen automatizált munkafolyamatot dolgoztam ki. Felmerült ötletként, hogy ezt a Knative rendszerbe telepítsem, viszont szerettem volna, ha a méréseket feldolgozó folyamat független a mért rendszertől és a lehető leglazábban kapcsolódjon hozzá. Ezáltal a két rendszerben történő folyamatok, esetleges hibák nem hatnak ki a másik működésére.