... MoSKito definition and the features that separate MoSKito from other Java monitoring solutions.
MoSKito is a multi-purpose, non-invasive, interval-based monitoring system for collecting, storing and providing instant analysis of application’s performance and behavior data.
MoSKito simplifies your efforts to measure and optimise the performance of your application and makes your architectural decisions visible and measurable.
MoSKito is multi-purpose, it can collect the widest range of statistical data. As mentioned in Concepts, MoSKito gets data from producers, and these can literally be everything.
What is everything? Threads. Memory. Caches. Storages. Services. Averages. ExecutionTime. RequestCount. CPU Usage. IOStats. Registrations. Payments. Conversion. Partner Performance. Online Users. ScamScores. Load distribution. User-dependent load (guest/member). Call traversal. Path-dependent measurement... Whatever you need!
Both Business and Performance indicators can be monitored. MoSKito gathers all the essential info in one place.
MoSKito is non-invasive. This means it doesn't require painful integration or any changes in your app's code.
MoSKito is pluggable into any application via filters, proxies, annotations, inheritance, AOP, class loaders or plain calling.
MoSKito measures around the monitored code, without changing it. Thus, there's no additional impact on your app's performance while monitoring.
MoSKito is interval-based, it takes a snapshot (counts activities of a monitored producer) every:
This means, at any moment you may know the producer performance for the last 1 minute, 5 minutes, etc. Why is that so?
The behaviour of a live system depends on million things: hour, weekday, weather, holidays and good karma. To have a full picture, you have to consider even the smallest factors.
When you collect large amounts of data, you may easily miss the anomaly that is influencing your system. But when you gather data within short intervals, you may easily compare it with similar periods of time (mornings, Mondays and so on). Working with shorter periods always give more understanding about system's behaviour.
Many good monitoring services, effective and easy-to-set-up, use cloud solutions. This means all the performance info from your app is being processed on the 3rd party servers.
It's ok until privacy issues come into focus. What if sharing performance data contradicts to your security policy?
MoSKito does not use any external servers or resources for processing or storing data. It is deployed on your local machine, and the collected data stays here as well: in app's memory or within a personally configured storage place. This solves all security and privacy issues.
Within your application, some parameters might be more important for you than the others. You might also want to monitor them 24/7, knowing at a glance if they are doing well.
With thresholds, you may continuously monitor a single parameter (producer) and receive a signal when the performance of this parameter goes beyond the boundaries that you've set for it.
Sometime you might want to look closer at a monitored parameter and analyse its performance over time.
With accumulators, you may store MoSKito data for any needed period and display the accumulated info as a chart.
When you deal with a problem that a user faces, you have to understand which method or service failed. Such a translation from user's to dev's language takes time and is often quite painful.
Journeys make things way easier. They allow recording user actions in the form of actual calls/steps that occur inside a web application. Journeys show the methods/functions/services/resources a user triggers while using the app.
MoSKito's architecture allows it to work with any major application server. Tomcat, Jetty, JBoss, Glassfish, WebLogic... you may go on with the list.
Unless you're using something very specific and extraordinary, there's one less thing to worry about.
Having these on your mobile device simply means you know how your application is doing at any moment, wherever you are.