To blog Previous post | Next post
Plumbr now detects slow HTTP operations
Plumbr is designed to expose the root cause in source code whenever the end user experience in the application is no longer satisfactory.
Over the years we have built the detection mechanism for number of different problems causing the applications to fail either in terms of performance or availability. The list is already impressive, containing problems from memory leaks to locked threads and JDBC queries.
Today I am glad to announce that Plumbr is now capable of detecting another commonly found root cause for performance issues – Slow HTTP Operation detection is publicly available as of October 27.
The benefits for being capable of detecting this type of performance issues become clear when you start to think about the architecture of the systems under your guard. Modern applications are distributed by nature – most transactions exceed JVM boundaries to talk with integrated systems and data stores. The sheer amount of such operations combined with the blocking and remote nature of the calls is a significant threat to performance.
Based on our measurements, web service calls over HTTP are one of the most frequent performance bottlenecks requiring attention. To give you an idea about how widespread is the issue and how serious can the problem be, we have gathered data from hundreds of millions of HTTP operations over the past months to verify that:
- One JVM in 10 contains slow HTTP operations frequently contributing towards poor user experience
- 1% of the HTTP operations take more than 1,800 ms to complete
- 0.1% of the HTTP operations take more than 9,800 ms to complete
The best way to verify whether your end users are affected or not is to go ahead and grab the fully functional Plumbr trial to check it out.
When the HTTP operations start affecting the end user experience, the offending HTTP query is linked to user transactions as a root cause, exposing the outgoing HTTP request along with the call stack from the thread executing the query:
As of October 27, Plumbr is capable of monitoring JDK HTTP (java.net.HttpURLConnection and related classes) and Apache Commons HTTP components libraries for outgoing HTTP requests. While analyzing the way the web service calls are integrated to the Java applications we discovered that these two libraries are used for 80% of the applications out there:
- 50% of the JVMs monitored use JDKs internal HTTP library.
- 30% of the JVMs monitored use Apache Commons HTTP Components library.
- 20% of the JVMs monitored use Apache Commons HTTP Client library.
- 5% are using Google HTTP client.
- … and there is a long tail of other libraries, each used in under 1% of the cases.
Based on the data above we also started work to support Apache Commons HTTP Client library. Expected release for the Agent supporting this library is during November 2015.
To benefit from the slow HTTP operation detection, you need to make sure your Agent is supporting the functionality:
- JDK internal HTTP library is supported since Plumbr Agent 15.09
- Apache Commons HTTP Component library is supported since Plumbr Agent 15.10.19
Say goodbye to the lengthy triaging and troubleshooting processes – grab your Plumbr trial today and start getting rid of the performance issues!