Features
Alerting
Just add a dependency to stagemonitor-alerting. This will add a "Alerts" tab to the in browser widget, where you can set thresholds for all recorded metrics like response times. In that tab you can also manage subscriptions. See the wiki for more documentation.
Instrumentation with Javassist
As discussed in the mailing list, stagemonitor no longer uses AspectJ to instrument classes, but Javassist.
This makes the life simpler for users as it allows for runtime class retransformation. That means that you don't have to specify the -javaagent
option anymore! Also, the aop.xml file is no longer needed. You can just use the stagemonitor.properties file to configure the profiler (see aop.xml is obsolete below).
Besides that, stagemonitor is now faster (faster startup times, less runtime and memory overhead) and more lightweigt than ever before (AspectJ is > 10MB, Javassist is < 1 MB).
Display In Browser Widget in Production
Typically you disable the in browser widget in production so that your users don't have access to it. Now it is possible to display the widget for authorized users even if the widget is disabled. Provide the X-Stagemonitor-Show-Widget
header with the value of stagemonitor.password
to activate the disabled widget. You can use browser extensions like Chrome's ModHeader to add the header on every request to your site.
Read property files from file system
Call Tree improvements
The call tree now by default hides the package names of the Method signatures. If you hover over the ?
, you get the full signature.
Breaking changes
stagemonitor-spring-mvc is obsolete
Just use stagemonitor-web. It now auto detects spring mvc.
AspectJ is obsolete
aop.xml is obsolete
Use the property keys stagemonitor.instrument.include
and stagemonitor.instrument.exclude
to specify which packages to profile.
-javaagent:aspectj-weaver.jar is obsolete
Stagemonitor now attaches the profiler at runtime. No need to add the -javaagent
option anymore!
Known Issues
SQL statements are not collected on wildfly
I'm already working on a solution with the guys from p6spy p6spy/p6spy#286