1. 数据源监控
1.1. 功能截图
1.2. 知识点
说明1. 数据源监控基于Druid数据源进行数据采集和统计,通过使用与拓展Druid实现,如应用使用非Druid数据源,则无法进行监控。
2. 快照是对数据源实时数据进行快照操作,已经生成的快照可以进行下载,以文本格式的数据保留本地,但无法直接对实时数据进行下载,下载必须要生成快照。
1.3. 功能详述
数据源监控提供了对Druid数据源的全方位监控,包括总体状态概览、基本配置的展示与修改,关键数据监控、监控数据快照、快照下载、数据重置等功能,以下我们来详述这些功能:
1.3.1. 数据源状态概览
点击数据源监控菜单进入状态概览界面,数据分为两级列表,第一级为各应用,包括应用名,正常数据源个数/数据源数量,集群状态;第二级为该应用下所有数据源的概览信息,状态以及监控入口。当应用等待线程>0时、一小时内发生过创建数据库连接异常或一小时内发生过数据库执行异常,其数据源状态都会被标记为有风险,同时点击具体状态按钮,可以查看相应的风险项,风险具体异常。
- 刷新按钮:获取当前数据源的状态概览数据
- 快照按钮:对选中的数据源进行批量快照操作
- 重置按钮:对选中的数据源进行批量数据重置操作,重置后的数据源的SQL监控等所有除监控图表的数据都会进行清空重置。
1.3.2. 数据源基本信息
通过点击数据源的监控按钮进入数据源基本信息页面,如下图。支持对于数据源的某些参数进行动态修改,点击修改配置按钮后生效。点击右上角的快照按钮进行数据源实时信息的快照,包括数据源,SQL监控,SQL防火墙,交易监控和用户监控。点击重置按钮则将SQL监控,SQL防火墙,交易监控和用户监控的数据清空。
动态修改参数包括以下几项
- 密码
- 最小连接空闲数
- 最大连接活跃数
- 连接检查时间间隔
- 检测用SQL语句
- 最小可候选连接空闲时间
- 最大可候选连接空闲时间
- 检测是否有效超时时间
- PSCache缓存最大连接数
- 空闲是否检测
- 获取连接是否检测
- 归还连接是否检测
- 是否开启PSCache
- 是否自动遗弃长时间连接
- 是否输出遗弃日志
- 遗弃超时时间
每个可修改项有具体说明,在动态修改在应用重启后失效,即数据源在应用重启后使用应用配置的参数。若产生数据库连接异常或数据库执行异常,都可以点击产生异常事件后的查看按钮进行具体异常查看。
1.3.3. 连接数监控
点击连接数监控标签进入页面,如下图。在监控大盘中我们提供了用户比较关心的空闲连接数,活跃连接数,活跃连接百分比,jdbc提交数,jdbc执行数,jdbc错误数,jdbc回滚数,等待线程数等视图展示。
1.3.4. SQL监控
点击SQL监控标签进入概览页面,如下图。界面分为两个标签页,第一个标签页为SQL语句,第二个标签页为慢SQL。SQL语句标签页展示该应用执行的每一条SQL语句,包括SQL语句,执行次数,总执行时间,最慢执行时间,事务中,错误数等。还可以根据SQL语句做模糊查询,并根据最慢执行时间字段,正序或者倒序的排列出来。
点击某一条SQL语句进入详情页面,如下图。展示包括该SQL语句的详细信息,最新慢查询信息,最新错误信息以及其他。
慢SQL标签页展示了最近较慢的SQL语句信息,包括详细SQL语句、全局流水号、执行时间、发生时间,展示按照执行时间排序,如果当前交易开启了链路跟踪的功能,该SQL语句具有全局流水号并可以直接通过操作的跳转链路按钮,跳转到链路跟踪的展示页。针对Select语句可以进行慢SQL的执行计划查询,查询目前支持MySql与Oracle数据库类型,非Select无法点击操作中的执行计划查询按钮。
1.3.5. SQL防火墙
点击SQL防火墙标签进入页面,如下图。展示数据源的防火墙统计数据,其中防火墙拦截规则示应用配置而定,否则不做拦截。监控数据包括防御统计(黑白名单命中次数,检查次数等),表访问统计(对表的语句执行情况统计,即操作类型和次数等),函数调用统计,白名单(允许执行的语句,包括类型和次数),黑名单(不允许执行的语句,包括类型和次数),风险SQL(全表查询、返回条数过大的SQL)。
风险SQL展示了风险类型、具体SQL语句、全局流水号、记录时间、执行时间、条数,风险类型目前有两种,一是全表查询语句,二是返回超过一万条的语句。如果当前交易开启了链路跟踪功能,可以点击跳转按钮直接跳转到链路跟踪的展示页,否则全局流水号为空且无法跳转。
1.3.6. 交易监控
使用该功能先需要在应用中心->应用探针菜单中,将webServer代理和其下的webStat过滤器打开,或者将dubboServer代理和其下的druidStat过滤器打开。webServer针对的是web应用,如果是dubbo调用的应用则需要打开dubboSever。
点击交易监控进入页面,如下图。不同的应用显示相应的监控内容,应用服务端代理为webServer,则展示spring监控;应用服务端代理为dubboServer,则展示url监控。同时可以对url或者class进行模糊查询。
spring监控包括交易URI,请求次数,请求时间,执行中,最大并发等监控项。
url监控包括接口类,方法,执行数,执行时间,执行中等监控项。
1.3.7. 用户监控
使用该功能先需要在应用中心->应用探针菜单中,将webServer代理下的webStat过滤器打开,同时要在该应用中添加User解析器(继承NtcResolverAdapter类重写resolveUser方法并注入spring容器)。
点击用户监控进入页面,如下图。用户监控以session维度展示用户进行数据库操作的统计信息,包括请求次数,总请求时间,最大并发时间,jdbc执行数等信息。对于登录的用户,可以根据session解析成GsUser的UserId进行模糊查询。
1.3.8. 数据源快照
- 快照列表
快照列表标签页展示了所有已经进行快照的数据源数据。快照的方式在上面已经介绍过了,可以由数据源列表进行批量快照;或者由某个数据源的具体监控中进行快照。快照列表展示了一些字段,包括快照实例编号、JDBC URL、快照记录时间、快照时刻状态,同时可以根据记录时间、实例编号、JDBC URL、记录时刻状态进行条件搜索需要的数据源快照。
当快照时刻有风险项,记录时间的状态即为异常。
- 快照查看
点击快照列表中任一快照的查看按钮,即可进入快照查看界面,界面展示了除监控图表数据外的所有快照时刻数据源数据。
- 快照对比
在快照列表中,选中两个快照并点击对比按钮即可进行两个快照数据的对比。快照数据源的基本信息与相关颜色被规定在对比信息上方,详细对比的蓝色数据和绿色数据,分别关联上方的数据源。
数据源基本信息界面默认显示不同项,点击显示全部按钮可以展示全部对比数据。
SQL监控中的SQL语句会将相同SQL语句做行合并,在一行内显示。
慢SQL则是把两个数据源的所有慢SQL进行汇总,并以执行时间进行排序。快照中的慢SQL语句同样可以进行Select语句的执行计划查询,以及链路页面跳转。
SQL防火墙监控统计中防御、表访问、函数访问、白名单、黑名单也是将相同信息合并到一行内,进行联合展示。风险SQL则是将两个数据源的风险SQL进行汇总,并以执行时间进行排序。对比中的风险SQL可以跳转到响应的链路跟踪页面。
- 快照下载
在快照列表的界面可以对多个数据源快照进行批量下载,也可以在单个快照查看内进行下载,而在快照对比的过程中,也可以对两个快照进行批量下载。下载的快照将以文本的格式,展示基本信息、SQL监控、SQL防火墙统计的数据。
- 快照删除:快照列表中选中多个,点击删除按钮即可对多个快照进行批量删除。
1.3.9. 自检配置
管理数据源自检的默认配置和群组配置。点击新增,选择群组,修改配置项,点击确认,完成群组自检配置新增。
点击默认配置,修改数据源自检默认配置。
注意:默认配置会被群组配置覆盖。
自检配置界面会展示已有的群组配置,配置修改立即生效,点击删除会删除该群组配置。
1.3.10. 其他配置
在数据源列表和快照列表的界面,右上角有一个设置按钮,点击即可进行数据源的配置。
慢Sql保存条数:每个应用实例最多保存多少条慢Sql,每天晚上定时清理,例如设置1000,清理保存时间最近的1000条慢Sql数据。
风险Sql保存条数:每个应用实例最多保存多少条慢Sql,每天晚上定时清理,例如设置1000,清理保存时间最近的1000条风险Sql数据。
Druid快照保存天数:快照保存天数。
慢Sql记录耗时(ms):高于该耗时的慢Sql会被记录。
注意:数据源自检慢查询同样使用该配置