Piotr
Jasiulewicz
PHP/Java
professional
Temat: Staly monitoring aplikacji
Czesc,chce Was zapytac, drogie kolezanki i koledzy o Wasze doswiadczenie w kwestii stalego monitoringu aplikacji w Java.
Aplikacja, ktora buduje, w swojej naturze jest rozproszona i dziala na zasadzie mastera i workerow w stosunku 1:N gdzie N jest od 2 do bardzo duzo. Istotnym elementem skladanki jest to, ze N zmienia sie plynnie (wszystko na Amazon AWS) w zaleznosci od ilosci zadan na masterze, tak wiec dochodzi problem, ze nie mozemy skladowac logow itd lokalnie bo najzwyczajniej przestan istniec jak maszyn zostanie wylaczona.
Co chce monitorowac?
- wydajnosc aplikacji w czasie, czyli czy jest np spadek wydajnosci zalezny od
- wydajnosc kolejnych wersji - dobrze porownac, czy nasza super optymalizacja przypadkiem czegosc nie wysadza
- samo dzialania aplikacji i czy nie wybucha (czy nie wali exceptionow)
- parametry JVM, czas GC
- transakcje biznesowe, czyli jak cala "machina" wplywa na ilosc danych i ilosc jednostek przechodzacych przez system
Przegladalem popularne rozwiazania:
- NewRelic - moze monitorowac sporo, ale potrzebuje web containera (tomcat7), z ktorym moja aplikacja na razie sie gryzie (jakies problemy z zaleznosciami springa - chyba)
- ServerDensity - monitoring SaaS, ale maja plugin do monitoringu JVMa, troche malo
- appDynamics - sa super drodzy, aplikacja potrafi sama okreslic (ponoc) transakcje biznesowe, polaczenia z innymi maszynami o raz co ciekawe, potrafi sama okreslic co jest "normalnym" obciazeniem dla Twojej aplikacji
Zastanawiam sie, czy nie ma jakichs jeszcze, moze bardziej niskopoziomowych sposobow na monitoring?
Pozdrawiam,
Piotr