Trippoint
Predstava o konečnom stave:
Trippoint je nástroj umožňujúci zaznamenávanie aktivity jednotlivými časťami informačného systému. Pod časťami informačného systému sa rozumejú časti programov, prvky podsystémov, elementy z pohľadu operačného systému a prvky sieťovej infraštruktúry. Zaznamenaná aktivita má byť zobrazená prostredníctvom diagramov
MonML spolu s vypočítanými prevádzkovými parametrami.
Aktuálny stav:
Trippoint umožňuje zaznamenávať aktivitu jednotlivých častí programu s rozlíšením tried a metód. Záznam aktivity je zapisovaný do súboru.
Architektúra
Stručný opis
Program obsahuje
záchytné metódy, ktoré sú naviazané na kód každej metódy a sú zavolané, ked dôjde k volaniu danej metódy alebo k návratu z nej. Záchytné metódy zaznamenajú informácie o behu programu a poskytujú ich procesnému
zachytávaču. Zachytávač odovzdáva získané informácie
exportéru, ktorý ich spracováva a výsledky spracovania odosiela
zhromažďovaču. Zhromažďovač ukladá doručené údaje, aby ich poskytol
analyzéru na finálne spracovanie do používateľsky prijateľnej formy.
Záchytná metóda
Zaznamenáva informácie o behu programu v momente, kedy je zavolaná. Do programu nič nevracia a neovplyvňuje jeho algoritmus. Zaznamenané informácie preberá objekt zachytávača.
Aktuálna implementácia je v jazyku Python. Názov metody je
record() a je súčasťou triedy
trippoint z modulu
trippoint.
Deklarácia záchytnej metódy:
record(self, classID, methodName, action)
-
self - objekt triedy trippoint. Pri volaní je zvyčajne automaticky dosadzovaný
-
classID - názov triedy (presnejšie odkaz na ňu), v ktorej je záchytná metóda volaná. Pri volaní sa zadáva self.__class__, čo automaticky dosadí správnu hodnotu.
-
methodName - reťazec obsahujúci meno metódy, v ktorej je záchytná metóda volaná. Pri volaní sa zadáva priamo reťazec s názvom metódy (možnosť automatického dosadenia nie je známa)
-
action - reťazec (zadáva sa priamo pri volaní):
- "call" - ak záchytná metóda označuje volanie danej/monitorovanej metódy
- "return" - ak záchytná metóda označuje návrat z danej/monitorovanej metódy
Zachytávač
Zachytávač je realizovaný ako objekt, ktorému patria záchytné metódy. Objekt zachytávača musí vzniknúť pred prvým volaním záchytnej metódy, najčastejšie hneď na začiatku behu programu. Okamžite po vytvorení objekt zachytávača zozbiera informácie o prostredí behu programu. Vygeneruje identifikátor zachytávania a pripraví súbory na záznam informácií ziskaných záchytnými metódami.
Identifikátor zachytávača slúži na rozlíšenie medzi zachytávačmi rôznych procesov. Vytvára sa z nasledujúcich údajov:
- identifikátor procesu
- čas v sekundách unixovej epochy
Aktuálna implementácia je v jazyku Python. Názov triedy zachytávača je trippoint a je súčasťou modulu trippoint.
%TODO% zaujímavá by mohla byť forma statickej triedy
%TODO% namiesto súborov by sa mohli použiť rúry alebo iné prostriedky IPC
Atribúty:
-
capturerID - identifikátor zachytávača (retazec)
-
infofile - otvorený súbor obsahujúci infomácie o behovom prostredí
-
file - otvorený súbor obsahujúci záznamy zo záchytných metód
Metódy:
-
__init__(self) - konštruktor zachytávača, vykonáva otvorenie súborov a načítanie informácií o behovom prostredí
-
record(self, classID, methodName, action) - záchytná metóda, opis vyššie
-
finish(self) - ukončenie činnosti zachytávača, uzatvorenie zaznamenávacieho súboru
Súbor pre infofile
Názov súboru sa skladá z retazca 'trippoint' doplneného o identifikátor zachytávača a prípony 'info'.
Súbor obsahuje slovník
dict(), v ktorom sú uložné nasledujúce údaje týkajúce sa procesu (vlákna):
- capturerID - identifikátor zachytávača
- osName - názov architektúry operačného systému (POSIX, Windows, Mac ...)
- uname - názov operačného systému, verzia jadra
- cwd - pracovný priečinok, v ktorom bol program spustený
- uid - efektívny identifikátor používateľa, s ktorého právami bol program spustený
- gid - efektívny identifikátor používateľskej skupiny, s ktorej právami bol program spustený
- pid - identifikátor procesu, v ktorom program beží
- ppid - identifikátor rodičovského procesu, ktorým bol program spustený
Súbor pre file
Názov súboru sa skladá z retazca 'trippoint' doplneného o identifikátor zachytávača a prípony 'run'.
Súbor obsahuje na každom riadku slovník
dict(), v ktorom sú uložené nasledujúce údaje získané záchytnou metódou:
- time - čas zavolania záchytnej metódy v sekundách unixovej epochy s presnosťou 1us (môže sa meniť)
- threadID - identifikátor vlákna, v ktorom je metóda používaná
- classID - reťazec identifikujúci triedu a modul do ktorého patrí (namespace)
- methodName - názov metódy, na monitorovanie, ktorej záchytná metóda slúži
- action - text identifikujúci zachytenú činnosť:
- 'call' - volanie monitorovanej metódy
- 'return' - návrat z monitorovanej metódy
Exportér
Zhromažďovač
Analyzér
-- Main.eqo - 16 Feb 2010