springboot结合p6spy进行SQL监控

news/2024/12/22 17:58:49/

1.学习p6spy的相关链接

英文文档:Integrating P6Spy — p6spy 3.9.2-SNAPSHOT documentationicon-default.png?t=O83Ahttps://p6spy.readthedocs.io/en/latest/integration.html

github链接:GitHub - p6spy/p6spy: P6Spy is a framework that enables database data to be seamlessly intercepted and logged with no code changes to the application.icon-default.png?t=O83Ahttps://github.com/p6spy/p6spy

mybatis-plus相关介绍:

SQL分析与打印 | MyBatis-Plus (baomidou.com)icon-default.png?t=O83Ahttps://baomidou.com/guides/p6spy/

2.p6spy简介

2.1p6spy是什么

P6Spy 是一款开源的 Java 框架,是一个强大的数据库监控工具。可以帮助开发者监控并分析应用程序与数据库之间的交互行为。

2.2p6spy能做什么

  • 像往常一样正常使用mybatisplus或mybatisflex,p6spy在幕后帮我们记录所有的SQL及其执行时间。
  • 通过配置进行慢SQL检测
  • 自定义输出SQL相关性能的日志格式
  • 对日志输出进行控制,可输出到控制台或者文件系统

3.p6spy整合springboot

1.在pom.xml文件引入依赖:

   <dependency><groupId>p6spy</groupId><artifactId>p6spy</artifactId><version>3.9.1</version></dependency>

2.在application.yml文件修改数据库相关配置:

配置之前:

spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatis-flex?username: rootpassword: 123456

修改配置后:

spring:datasource:driver-class-name: com.p6spy.engine.spy.P6SpyDriverurl: jdbc:p6spy:mysql://localhost:3306/mybatis-flex?username: rootpassword: 123456

3.在application.yml同级创建spy.properties文件,内容如下:

module.log=com.p6spy.engine.logging.P6LogFactory,com.p6spy.engine.outage.P6OutageFactory
# 使用日志系统记录sql
appender=com.p6spy.engine.spy.appender.Slf4JLogger
## 配置记录Log例外
excludecategories=info,debug,result,batc,resultset
# 设置使用p6spy driver来做代理
deregisterdrivers=true
# 日期格式
dateformat=yyyy-MM-dd HH:mm:ss
# 实际驱动
driverlist=com.mysql.jdbc.Driver
# 是否开启慢SQL记录
outagedetection=true
# 慢SQL记录标准 秒
outagedetectioninterval=2
logMessageFormat=com.p6spy.engine.spy.appender.CustomLineFormat
customLogMessageFormat=%(currentTime) | SQL耗时: %(executionTime) ms | 连接信息: %(category)-%(connectionId) | 执行语句: %(sql)

4.启动后查询数据库中的数据,控制台会自动打印内容如下:


http://www.ppmy.cn/news/1528240.html

相关文章

rancher 图形化界面

概念 rancher就是图形化界面进行k8s集群的管理。它自带普罗米修斯监控 安装rancher 在三台节点主机上把rancher包拖进去 docker load -i rancher.tar 在master主节点上 docker pull rancher/rancher:v2.5.7 docker run -d --restartunless-stopped -p 80:80 -p 443:443 …

Serverless 安全新杀器:云安全中心护航容器安全

作者&#xff1a;胡志广(独鳌) 云安全中心对于 Serverless 容器用户的价值 从云计算发展之初&#xff0c;各大云厂商及传统安全厂商就开始围绕云计算的形态来做安全解决方案。传统安全与云计算安全的形态与做法开始发生变化&#xff0c;同时随着这 10 多年的发展&#xff0c;…

LeetCode337. 打家劫舍III

// 很好的一道题目&#xff0c;既考察递归又考察动归 // 这个版本超时了&#xff0c;原因是暴搜 // 很显然这里使用的是前序&#xff0c;那是不是应该考虑后序&#xff1f;class Solution {public int rob(TreeNode root) {if (root null) {return 0;}if (root.left null &am…

远程访问NAS速度慢??那是因为你没用对。。。

虽然局域网&#xff08;内网&#xff09;、公网&#xff08;外网&#xff09;经常被提到&#xff0c;但很多人依旧搞不懂分不清楚。。。 其实&#xff0c;简单的方法就是把局域网IP比喻成公司的内部通讯&#xff0c;公网IP看作公共通讯平台。 这样拥有公网IP能被直接远程访问&…

【南方科技大学】CS315 Computer Security 【Lab3 Format String Vulnerability】

目录 Lab OverviewLab TasksTask 1: The Vulnerable ProgramTask 2: Understanding the Layout of the StackTask 3: Crash the ProgramTask 4: Print Out the Server Program’s MemoryTask 5: Change the Server Program’s MemoryTask 6: Inject Malicious Code into the Se…

二叉树的顺序存储和基本操作实现

写代码&#xff1a;定义顺序存储的二叉树&#xff08;数组实现&#xff0c;树的结点从数组下标1开始存储&#xff09; 基于上述定义&#xff0c;写一个函数 int findFather ( i ) &#xff0c;返回结点 i 的父节点编号 基于上述定义&#xff0c;写一个函数 int leftChild ( i…

怎样把PPT上顽固的图标删了

例如&#xff1a; 解决&#xff1a; 首先打开下载好的PPT模板&#xff0c;然后在视图选项卡里面找到幻灯片母版。 进入幻灯片母版后&#xff0c;找到第一页母版页就会看到LOGO了&#xff0c;这时使用鼠标就可以选中删除啦。

前端发布 CDN缓存

公司给服务器加了CDN&#xff0c;导致有时前端代码上传打包后&#xff0c;正式环境页面效果却不更新。每次都需要去找运维刷CDN…让我彻底记住了CDN缓存 CDN&#xff08;Content Delivery Network&#xff0c;内容分发网络&#xff09;是一种广泛使用的互联网技术&#xff0c;…