Plumbr新增慢查询检测
JVM监控供应商 Plumbr 向其旗舰产品增加了慢查询检测功能。借助这项新增功能,Plumbr现在可以检测如下四个类型的问题:
- 内存泄露
- 垃圾收集效率低
- 线程锁定
- 开销大的JDBC操作
Ivo Mägi是Plumbr的产品经理,他在 博文 中写道:
已 推出的解决方案可以帮助运维和工程人员,使他们可以在同一个页面上轻松查看所有必要的信息——借助Plumbr监控开销大的JDBC操作,你 将不再需要:使用一个工具进行影响分析,使用数据库监控工具查找问题查询,然后手动在组成和执行操作的Java代码中查找问题根源。
Plumbr会将所有监控到的信息汇总,正如下面的截图所示,从中可以看到,Plumbr:
- 检测到一个开销大的JDBC操作将一个进程阻塞了将近9秒。
- 确定这是一个重复出现的问题(同一个操作总共发生了127次,总停顿时间为23分钟31秒)。
- 概括地说明了等待发生在同一个SQL查询执行期间。
为了帮助用户查找像上面这样的JDBC操作慢问题的根源,Plumbr提供了细节信息。如果仔细查看,就可以看到,问题是由74行的JpaProblemHistoryDao.findAccountProblems()方法调用准备好的语句导致的。
Plumbr声称,为了测试这项新特性,他们在一个涉及300多家公司的大型数据样本上进行了五个周的封闭测试。
Plumbr JDBC监控适应于Oracle、MySQL、Postgres和MS SQL Server。对IBM DB2和SQLite的支持计划在未来数月内发布。此外,他们还计划将来增加对NoSQL数据库的支持。
InfoQ采访了Plumbr的产品经理(兼联合创始人)Ivo Mägi。
InfoQ:Plumbr可以用于监控云上的JVM吗?比如,在Cloud Foundry或Heroku上?
Plumbr可以用于任何支持Java Agent的云提供商。Java Agent是JVM提供的标准的“字节码插装(instrumenting bytecode)”方法,监控工具通常用它剖析应用程序。
InfoQ:Plumbr能够同时监控多个应用程序/实例(比如,在一个微服务环境中)并汇总结果吗?
事实上,Plumbr可以监控同一个应用程序的多个实例,并根据问题根源将检测到的问题汇总到一起,如此一来,影响分析会更顺利。
InfoQ:在性能监控领域,有许多竞争者。你们是如何将自己与同类竞争者区分开的?
关键的不同是,Plumbr能够自动将失败的服务与问题根源联系起来。在问题发现方面,许多竞争者都做得不错,但我们的关键不同是,可以仔细查看每行导致问题的源代码。
InfoQ:Plumbr即将带来什么特性?
检测开销大的JDBC操作只是万里长征的第一步。最终,Plumbr将能够揭示所有导致性能问题的常见根源。使用Plumbr监控应用程序将极大地缩短性能事件的平均解决时间(MTTR)。