MoSKito als leistungsfähige Open-Source Alternative zu Applikation Management Systemen wie NewRelic oder AppDynamic - Slides - http://www.solutionscamp.de/session-detail/?3-moskito-als-leistungsfaehige-open-source-alternative-zu-applikation-management-systemen-wie-newrelic-oder-appdynamic
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
MoSKito at Silpion Solutionscamp 2014
1. Open Source APM
Leon Rosenberg (@dvayanu)!
anotheria solution GmbH
1
2.
3. Who am I?
Leon Rosenberg - Architect, DevOps. !
1997 - Started programming with Java. !
2000 - Started building Portals.!
2003 - Founded anotheria.net.!
2007 - Started MoSKito.
3
4.
5.
6. Today
6
Short Story!
Live Demo!
Integration!
Tools!
Success Stories
7. Why MoSKito
Because running a production System
without monitoring is like ...
7
30. AOP
30
@Monitor
public class YourClass {
public class YourClass {
@Monitor public void firstMonitoredMethod(){...
@Monitor public void secondMonitoredMethod(){...
public void notMonitoredMethod(){...
@Monitor
public class YourClass {
public void thisMethodWillBeMonitored(){...
@DontMonitor public void thisMethodWillBeExcludedFromMonitoring(){
@Count
public class PaymentCounter {
@Count
public class PaymentCounter {
/**
* Electronic card payment (lastchrifteinzug in germany).
*/
public void ec(){}
/**
* Credit card payment.
*/
public void cc(){}
/**
* Payment via paypal.
*/
public void paypal(){}
}
@CountByParameter
void ingredientUsed(String ingredient) { !
32. CDI
32
@Monitor
@ProducerRuntime(producerId=”Foo”, category=”my”)
public class YourClass {
public class YourClass {
@Monitor public void firstMonitoredMethod(){...
@Monitor(“dao”) public void secondMonitoredMethod(){...
public void notMonitoredMethod(){...
@Monitor(MonitoringCategorySelector.WEB)
public class YourClass {
public void thisMethodWillBeMonitored(){...
@DontMonitor public void thisMethodWillBeExcludedFromMonitoring(){
@Count
public class PaymentCounter {
@Count
public class PaymentCounter {
/**
* Electronic card payment (lastchrifteinzug in germany).
*/
public void ec(){}
/**
* Credit card payment.
*/
public void cc(){}
/**
* Payment via paypal.
*/
public void paypal(){}
}
@CountByParameter
void ingredientUsed(String ingredient) { !
41. MoSKito Central
Central server for snapshot storage.!
Attachable storages can store data into sql- or
nosql- based databases, xml/json files etc.!
Runs in remote or embedded mode.
41
46. I
After a release of a new version huge traffic
increase on one of the databases was
detected.!
The database in question was used by a
service. There were 20 clients (code
components) using this service. !
MoSKito showed that 55% of the traffic to the
service came from one client. With MoSKito
inspection we were able to detect which client
was producing most traffic.
46
47. I
Closer inspection (code review) of the client
revealed a bug which led to double calls to the
service. !
Incident solved in 30 minutes.
Most traffic
Created here
47
48. II
Application overall performance was
insufficient.!
With moskito journeys and call tree analysis
we were able to find redundant calls to the
backend and remove them.!
Request duration reduced to 50% with 4 hours
analysis and 4 hours coding effort.
48
49. II
same call over net repeated thrice
time in
milliseconds
49
50. III
A bug only reproduceable by one user.!
Second page of received messages won’t
show. No exception logged.
50
51. Broken Call
red color indicates
that the method
was terminated
abnormaly
(exception)
possible reason - user didn’t exist in the db and the code didn’t know how to
handle it.
51