My name is Malte Pickhan and I am a Java Developer at tyntec GmbH, located in Dortmund (Germany). And this is my personal MoSKito-Story 🙂
I also have my own blog where I write about Java development and things I find interesting.
tyntec is a mobile interaction specialist, enabling businesses to integrate mobile telecom services for a wide range of uses – from enterprise mission-critical applications to internet services. The company reduces the complexity involved in accessing the closed and complex telecoms world by providing a high quality, easy-to-integrate and global offering using universal services such as SMS, voice and numbers.
Founded in 2002, and with more than 150 staff in six offices around the globe, tyntec works with 500+ businesses including mobile service providers, enterprises and internet companies.
How “we” met
I’ve heard the first time about MoSKito from Peter Daum, a colleague of mine, and was quite interested in this project, since we were looking for a new approach to monitor one of our core systems. It handles thousands of transactions per second and it has to handle them fast.
Therefore we needed a non invasive approach with non or really minor impact on the performance.
Therefore I started the first try to integrate MoSKito into this application. But I failed miserably, since I didn’t really understand the concepts of the MoSKito project. One of the reasons was, that the framework was poorly documented. The result was, that I abandoned MoSKito again.
In summer 2014 I met Leon Rosenberg on the BedConf in Berlin. I accidentally joined the talk about MoSKito. Actually I wanted to see an other talk, but was wrong in the location. In the end I have to say, lucky me… 😉
After the talk I took the opportunity to talk to him and asked some questions about the MoSKito framework and it’s integration. He was quite polite and explained me that they re-factored the documentation and that he is also willing to help me with the integration.
A big benefit of MoSKito is, that it ships with two User Interfaces. On the one hand MoSKito-Control, which gives you a kind of “Bird-eye view” of the health and performance of your application/cluster.
And on the other MoSKito-Inspect which gives a more detailed view about the components you defined to monitor.
Furthermore there was the new feature, to use the RMI-Agent to integrate MoSKito into the App. Since we didn’t want to change the code for the sake of monitoring, this was the way to go as the actual MoSKito components will just offer their Results via an RMI Interface in the currently running JVM.
Let’s get it started
Back home, I was waiting for a project where I could include MoSKito to give it a try. I read through the documentation which was at least a bit more clear then the time before.
After a few months, I got this opportunity.
Since our App is build with gradle. I had to spent some time to get AspectJ running with gradle since it doesn’t support it out of the box.
MoSKito itself, was very easy to integrate, It was not a lie what Leon told the audience during the talk.
Just put a “@Monitor” annotation in the code, and it’s showing up in Inspect. The more complex part was, to find possible modules in our application which we want to monitor and which are giving meaningful values.
Furthermore I had to make the painful experience, that you shouldn’t use annotations on short living Objects, since every time a new Object is being created, it will register to the RMI-Service, what will fill up your JVM’s memory very fast.
Every time I ‘ve run into a difficult issue with the integration I asked the MoSKito Team for help, and they really gave me good information and hints.
Thanks for that!
Furthermore if you find possible features which could also be meaningful for the rest of the community they’re really fast with implementing them.
MoSKito is a really convenient framework to do application monitoring in business critical systems.
Monitoring even a cluster of applications is really easy to achieve. It is low invasive to the source code and the actual business logic isn’t getting affected at all.
So far we didn’t experience any impact to the performance of the systems.
Of course there is a learning curve about the framework, but the MoSKito-Team provides a really great support! Once more, thanks for that!
Currently MoSKito has a small community, but it’s worth to support this project, since it does a great job!
All the best from Dortmund,