前言
相信大家对阿里的druid数据库连接池很熟悉了,在国内使用数据库操作的时候,绝大部分都会引用druid。当然今天不是介绍怎么使用druid,而是分析一下druid的监控。我们先来回顾一下druid是什么吧?
简介
1、Druid是阿里开源的一个JDBC应用组件, 其包括三部分:
-
DruidDriver: 代理Driver,能够提供基于Filter-Chain模式的插件体系。
-
DruidDataSource: 高效可管理的数据库连接池。
-
SQLParser: 实用的SQL语法分析
2、通过Druid连接池中间件, 我们可以实现:
-
可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
-
替换传统的DBCP和C3P0连接池中间件。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
-
数据库密码加密。直接把数据库密码写在配置文件中,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
-
SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
-
扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter-Chain机制,很方便编写JDBC层的扩展插件
监控
druid最大的特色就是有相应的监控,可以帮忙我们查看到执行SQL日志,慢SQL语句,执行SQL的性能以及防止SQL注入等功能。
数据源
数据源菜单显示数据库连接池的基本信息,如连接地址、连接类型、最大连接数、最小连接数、初始连接等信息。
可通过逻辑连接打开次数、逻辑连接关闭次数来判断系统中是否存在有连接未关闭的情况(正常情况下打开次数和关闭次数应该一致)
SQL监控
SQL监控显示系统已执行过的每条SQL语句的执行情况。通过执行数、执行时间、最慢时间、事务中、错误数、最大并发、执行时间分布等统计维度来展现。