说明
Druid内置提供了一个StatViewServlet用于展示Druid的统计信息。将Druid的Filter拦截器模块处理的情况可视化的展示在界面上,包括应用信息、数据源、SQL执行、SQL防火墙、Web应用、URL监控、Session监控、Spring监控以及提供可外部调用的JSON API
Git源码及文档
Druid源码工程地址:github.com/alibaba/druid
配置文档地址:https://github.com/alibaba/druid/wiki/%E9%A6%96%E9%A1%B5
进入首页展开右侧目录栏,关注:配置_Filter配置、配置_StatFilter、配置_StatViewServlet配置和配置_配置WebStatFilter
属性配置列表
配置项名称 | 默认值 | 描述 |
filters | stat | 配置监控统计拦截器启用哪些插件 |
filter.stat.log-slow-sql | false | 是否开启慢SQL记录,并输出到日志,请勿配置timeBetweenLogStatsMillis 会定时输出日志 并导致统计的sql清零 |
filter.stat.slow-sql-millis | 3000 | 界定慢SQL时间,单位是毫秒 |
filter.stat.merge-sql | true | 统计时合并没有参数化的sql |
web-stat-filter.enabled | false | Web监控组件开关 |
web-stat-filter.exclusions |
| 监控不统计哪些URL |
web-stat-filter. session-stat-max-count | 1000 | Web Session统计页面最多记录数 |
web-stat-filter. session-stat-enable | false | Web Session统计功能开关 |
web-stat-filter.profile-enable | false | 监控单个url调用的sql列表。 |
web-stat-filter.url-pattern |
| 监控url的正则 |
web-stat-filter. principal-cookie-name |
| 使得druid知道当前的user是谁,配置为你user信息保存在cookie中的cookieName |
web-stat-filter. principal-session-name |
| 使得druid知道当前session的user是谁,配置为你user信息保存在session中的sessionName |
stat-view-servlet.enabled | false | 可视化监控页面开关 |
stat-view-servlet.url-pattern | /druid/* | 问内置监控页面的地址,默认/druid/index.html |
stat-view-servlet.reset-enable | true | 允许手动重置清空监控数据 |
stat-view-servlet. login-username |
| 登陆界面用户名 |
stat-view-servlet. login-password |
| 登陆界面密码 |
stat-view-servlet.deny |
| 黑名单,deny优先于allow,如果在deny列表中,就算在allow列表中,也会被拒绝。 |
stat-view-servlet.allow |
| 白名单,如果allow没有配置或者为空,则允许所有访问 |
使用方法
按照如上配置后,进入地址 <HOST>:<PORT>/<CONTEXT_PATH>/<URL_PATTERN>/index.html
我就不截图界面了。。太占地方。。。
首页,显示的是当前Spring应用的信息,包含‘使用的Druid版本’、‘加载的数据库驱动’、‘设置的是否允许重置及重置次数’、‘java版本‘、’jvm名称‘、’classpath路径‘和’启动时间‘
数据源,显示的是连接的数据源信息,这个页面很贴心,在右侧有一列说明非Null配置项的意义。特别关注下’事务时间分布‘,这个说明了SQL监控界面的时间分布规则。
SQL监控,展示了SQL(或合并后的SQL)执行记录,包括执行次数、各次执行时间总计、执行最慢的一次耗时、正在执行、报错等。//TODO 更新各个时间分布意义。
SQL防火墙,Druid的防火墙功能的防御统计面板。
Web应用,当前运行的WebApp的监控面板。
URL监控,当前运行的WebApp的URL访问情况。
Session监控,当前运行的WebApp的Session访问情况。
Spring监控,配置的扫描路径下的方法调用情况。