Great news everyone! Today we are announcing the release of XRebel 3.0!
3.0 is here and it is a great new milestone for XRebel. The new version features something very exciting: end-to-end transaction profiling. You can now profile distributed Java applications and microservices with XRebel Agents!
Microservices are usually described as a suite of small services. Each service is running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. XRebel 3.0 profiles transactions that involve multiple microservices.
Every application is to be launched with XRebel Agent. The agents collect performance data from every application involved in the transaction. Once the result is ready, XRebel presents the profiling data in a single view. From there, you can analyze it with ease. You do not have to look for traces from different applications — the entirety of your data is in one place!
You do not need to install a central server for collecting the traces. The XRebel Agents communicate over HTTP in order to generate the final report in the front-end application of your system.
XRebel combines the HTTP requests made from one application to another in the same call tree. The icon denotes the start of the remote trace. This way, the latency of all your requests is visible, from the first click to the last database query.
The new functionality is featured in the following views:
- Application profiling view. You can now find out which part of the end-to-end transaction contributes the most to the latency. The percentages are calculated with the remote traces taken into account.
- Updated queries view. Monitor all the queries that were executed by the remote services as a part of any end-to-end transaction.
- Exceptions view. The exceptions thrown during the remote execution of a transaction are detected. XRebel will notify the user about these by displaying an alert on the XRebel toolbar.
Profiling background jobs and messaging endpoints
Profiling for background jobs (Quartz, ScheduledExecutorService) and messaging (JMS, RabbitMQ) can now be enabled by adding the extra VM parameter
-Dxrebel.traces.all=true. You can enable this feature at will for every individual type as described in our documentation.
JDBC integration improvements
The JDBC integration has been greatly improved — to handle JDBC API delegates used by different frameworks for injecting custom logic into the JDBC operations. Examples that require this kind of special treatment include Tomcat’s DelegatingStatement and P6Spy proxies.
Click through to the full changelog for a complete list of improvements.