Plumbr 新增慢查询检测

  • Matt Raible
  • 谢丽

2015 年 6 月 17 日

话题:DevOps语言 & 开发

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

DevOps语言 & 开发