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

Topic revision: r1 - 16 Feb 2010 - 17:56:56 - eqo
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback