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)。
查看英文原文: Plumbr Adds Slow Query Detection
评论