JVM monitoring vendor Plumbr has added slow query detection to its flagship product. With this addition, Plumbr now detects four types of problems:
- Memory Leaks
- Garbage Collection Inefficiencies
- Locked Threads
- Expensive JDBC Operations
Ivo Mägi, Product Manager at Plumbr, said in his blog:
The launched solution is helping operations and engineering to be on the same page by having all the necessary information at your fingertips – with Plumbr monitoring for the expensive JDBC operations you no longer need to do impact analysis using one tool, find the offending query from the database monitoring tools and then manually find the source in your Java code composing and executing the operation.
In Plumbr, all this information is monitored and aggregated for you as seen from the following screenshot where you see a situation where Plumbr:
- Detected an expensive JDBC operation blocking a thread for close to 9 seconds.
- Confirmed that this was a recurring issue (where in total of 127 times the very same operations stalled for 23 minutes and 31 seconds.
- Outlined that the wait occurred during the very same SQL query being executed.
To help you find the root cause of a JDBC slowdown like the one above, Plumbr provides you with the nitty-gritty details. If you look closely, you can see the problem is caused by a prepared statement called by JpaProblemHistoryDao.findAccountProblems(), on line 74.
To test this new feature, Plumbr says they did a five week private beta analysis of large data samples with 300+ companies.
Plumbr JDBC Monitoring is available for Oracle, MySQL, Postgres and MS SQL Server. IBM DB2 and SQLite support is scheduled for release in the next couple of months. There are also plans to add support for NoSQL databases in the future.
InfoQ spoke with Plumbr's Head of Product (and co-founder) Ivo Mägi.
InfoQ: Can Plumbr be used with cloud installations? For instance, on Cloud Foundry or Heroku?
Plumbr can be used on any cloud provider supporting Java Agents. Java Agent is a standardized approach of JVMs for instrumenting bytecode and is often used by monitoring tools to get insight about the application.
InfoQ: Is Plumbr capable of monitoring several applications/instances (e.g. in a microservice environment) simultaneously and aggregating the results?
Indeed, Plumbr can monitor multiple instances of the same application and it will aggregate together the detected issues based on the root cause so that impact analysis would be smoother.
InfoQ: There's a lot of competition in the performance monitoring space. How do you distinguish yourself from the pack?
The key differentiation is Plumbr's ability to automatically link the failed services to the root cause. There are many competitors who do a good job surfacing the symptoms, our key differentiation is zooming in to the single line in source code that causes the symptoms.
InfoQ: What's coming up on the Plumbr horizon?
Expensive JDBC Operations is just one step in the longer path we have taken. Eventually Plumbr is going to be able to expose information about all the common root causes for performance issues. Monitoring your applications with Plumbr will significantly reduce the Mean Time to Resolution (MTTR) of performance incidents.