2012. június 1., péntek

DynaTrace - Kalandozás a szenzorok világában!

Frissítve: 2012.12.02.

A PurePath technológia lehetővé teszi, hogy az összes felhasználói műveletet teljes részletességgel lekövessük a hívási lánc alapján. Felvetődik a kérdés, hogy ez vajon nem fogja nagyon belassítani az alkalmazás futását? A válasz nem, az overhead az előző cikkben említett 2% körül marad mindaddig amíg a dynaTrace-t megfelelően használjuk és konfiguráljuk! A továbbiakban elmagyarázom a szenzorok működését, amiből kiderül hogy hogyan is tartható ez a minimális overhead.

DynaTrace szenzorok

A dynaTrace szenzorok feladata, hogy kinyerjék a szükséges adatokat és kontextus információkat (naplók, kivételek, cpu idők, futási idők, stb..) a vizsgált metódusokból. Kereskedelmi termék lévén, a szenzorok részletes működéséről nem esett szó a dynaTrace-es oktatáson, de egy kis Java ill. performancia mérési tudással a két szenzor típus alkalmazása alapján kikövetkeztethető!

Auto szenzorok - Mintavételezés

Az auto szenzorok olyan előre definiált szenzorok, amelyek mindig be vannak kapcsolva és rámutatnak a problémás, nagy végrehajtási idejű metódusokra. A megvalósítást tekintve az auto szenzorok a mintavételezés alapján működnek, azaz a háttérben néhány DynaTrace-es démon szál folyamatosan fut, amik a beállított mintavételezi gyakoriság alapján (pl.: 25ms) megvizsgálják az éppen futó szálak stack-jét és begyűjtik az adatokat.


A fenti ábrán a t1-t9 időpillanatokban történik a mintavételezés és 4 metódus van végrehajtás alatt. A metódus1 és metódus2 végig, a metódus3 részlegesen, a metódus4 pedig egyáltalán nem kerül rögzítésre a vizsgált időintervallumban. Látszik, hogy a mintavételezés nem szolgáltat pontos mérési eredményeket, de kiválóan alkalmas arra, hogy rámutasson a hosszan futó metódusokra (HotSpots) mindemellett az overhead végig stabil marad a mintavételezési gyakoriság függvényében. 

Metódus szenzorok - Instrumentáció

Miután az auto szenzorok rámutattak a problémás funkciókra, ezekre metódus/osztály/csomag szinten custom szenzorokat tudunk elhelyezni hogy pontosabb információkat nyerjünk ki. A metódus szenzorok az instrumentáció alapján működnek, azaz aspektus orientált módon rátelepednek a kódra és rögzítik a szükséges információkat. Bár az instrumentáció segítségével megkaphatjuk a pontos futási időket és hívási számot is, ezek állítgatására jobban oda kell figyelni, mert az overhead itt már a megfigyelt kód futásával lesz arányos. 

Smart szenzorok - Szenzor csomagok

Az web-alkalmazásunk által használt technológiák alapján, többféle szenzor csomagból válogathatunk: EJB, Spring, Struts, WebService, Hibernate, JDBC, XML, JMS, stb... valamint lehetőségünk van az általuk begyűjtendő információk finomhangolására is.

A szenzorok konkrét megvalósítása ennél azért trükkösebb lehet, mivel a gyakorlat azt mutatja, hogy az esetek 90%-ban elegendő információt szolgáltatnak az auto szenzorok is. Remélem sikerült felkeltenem az érdeklődésedet az elméleti bevezetőkkel, a következő részben pedig a gyakorlati oldaláról is megismerheted a dynaTrace-t.
 

Nincsenek megjegyzések:

Megjegyzés küldése