Stagemonitor: Performance monitoring for Java web applications
It’s been a pretty quiet period for stagemonitor, the application performance monitoring (APM) tool for Java servlet applications. However, version 0.89 has just been released – an update with some dependency upgrades as well as new features. Let’s take a closer look.
stagemonitor is an open source solution for performance monitoring (also called APM – application performance monitoring) of Java applications, which provides a developer with a lot of tools. stagemonitor can be used for development, as well as to monitor the performance of Java web applications. The toolset can also handle clusters or microservice architectures thanks to the Open Tracing APIs for distributed systems. As such, it’s not only possible to access live data, but historical data pools can also be accessed retroactively.
It is often the case when developing an application that certain problems don’t surface until it is used in production and thus already delivered to the customer. stagemonitor addresses this by providing functions that indicate performance problems during the development cycle. In order to access the data it needs, stagemonitor is embedded into the application via an agent and sends metrics and other data to a central (time series) database. In conjunction with Elasticsearch, InfluxDB, Prometheus, or Graphite, the data can then be analyzed and graphically processed, then displayed on Kibana or Grafana dashboards.
stagemonitor is specially optimized for use within and around Java web applications. However, this does not mean that the toolset is not suitable for other applications. A guide to integrate it into applications not based on servlet can be found on GitHub.
It’s not really “new” in the traditional sense, even though stagemonitor 1.0 has not yet been released. Lately, however, the solution has been more actively worked on again, after the project went through a quiet period. The current release, stagemonitor 0.89, brings some important improvements for users. If you want to read more about stagemonitor in general, then check out the project’s wiki.
What’s in stagemonitor 0.89?
So what’s new? If you look at the release notes on GitHub, you can see that a lot of work has been put into updating the components, meaning a lot of dependencies have been updated. But there’s a lot going on under the hood as well. For example, stagemonitor now no longer needs
sun.misc.Unsafe. As a result, newer JDKs can finally be used together with stagemonitor.
Byte Buddy version 1.9.15 is supported as of the update, and users can also utilize Open Tracing API version 0.33 and jaeger version 0.35.5. Weasel has also been updated, the eum server now uses Spring Boot 2.1.7, and support for Elasticsearch 7 has also been implemented. Of course, these improvements come with a price: Java 8 is the minimum requirement for the use of tooling.
This renewed activity on the project is definitely interesting due to the fact that application performance monitoring is highly topical in these times of microservices, the cloud, and serverless. We’ll be keeping an eye on this one. More information about stagemonitor can be found on the project website and, of course, on GitHub.