Springboot整合p6spy实现sql监控

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Springboot整合p6spy实现sql监控

P6Spy是一个框架,该框架使数据库数据可以无缝地被拦截和记录,而无需对应用程序进行任何代码更改


     在开发的过程中,我们经常会遇到由于sql语句书写错误导致的bug,那么如何来解决这种困扰呢?如果方法执行完了可以打印出完整的sql语句,就可以方便我们判断执行的是否正确,所以我们希望有一个可以打印sql语句的插件。p6spy就是一款这样的工具,下面给大家介绍一下p6spy的使用。

因为mybatis在打印SQL语句的时候参数为?而我们需要查看参数的具体数值,所以我们要加入我们的SQL日志打印工具p6spy


在项目的pom文件中引入p6spy所需jar包的坐标



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

    在配置文件中修改数据库连接池的地址,本次使用的是application.yml


    在数据库连接URL中加入p6spy




    定义一个自定义打印日志类P6SpyLogger

    public class P6SpyLogger implements MessageFormattingStrategy {
        private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
        @Override
        public String formatMessage(int connectionId, String now, long elapsed, String category, String prepared, String sql, String s4) {
            return !"".equals(sql.trim()) ? this.format.format(new Date()) + " | took " + elapsed + "ms | " + category + " | connection " + connectionId + "\n " + sql + ";" : "";
        }
    }

    之后在resources文件夹下新建一个spy.properties文件

    module.log=com.p6spy.engine.logging.P6LogFactory,com.p6spy.engine.outage.P6OutageFactory
    # 自定义日志打印
    logMessageFormat=com.tfjybj.lap.common.log.P6SpyLogger //自定义P6SpyLogger类的地址
    # 使用日志系统记录sql
    appender=com.p6spy.engine.spy.appender.StdoutLogger
    ## 配置记录Log例外
    excludecategories=info,debug,result,batc,resultset
    # 设置使用p6spy driver来做代理
    deregisterdrivers=true
    # 日期格式
    dateformat=yyyy-MM-dd HH:mm:ss
    # 实际驱动
    driverlist=com.mysql.cj.jdbc.Driver
    # 是否开启慢SQL记录
    outagedetection=true
    # 慢SQL记录标准 秒
    outagedetectioninterval=2

    之后进行测试,就可以查看我们查询的具体参数了


    相关实践学习
    日志服务之使用Nginx模式采集日志
    本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
    目录
    相关文章
    |
    2月前
    |
    SQL 监控 druid
    springboot-druid数据源的配置方式及配置后台监控-自定义和导入stater(推荐-简单方便使用)两种方式配置druid数据源
    这篇文章介绍了如何在Spring Boot项目中配置和监控Druid数据源,包括自定义配置和使用Spring Boot Starter两种方法。
    |
    3月前
    |
    SQL 安全 Java
    揭秘Spring Boot安全防线:如何巧妙抵御XSS与SQL注入的双重威胁?
    【8月更文挑战第29天】随着互联网技术的发展,Web应用已成为社会不可或缺的一部分。Spring Boot作为高效构建Web应用的框架备受青睐,但同时也面临安全挑战,如XSS攻击和SQL注入。本文介绍如何在Spring Boot应用中防范这两种常见安全漏洞。针对XSS攻击,可通过输入验证、输出编码及使用安全API来加强防护;对于SQL注入,则应利用预编译语句、参数化查询及最小权限原则来确保数据库安全。示例代码展示了具体实现方法,帮助开发者提升应用安全性。
    247 2
    |
    17天前
    |
    SQL 数据采集 监控
    局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
    在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
    15 2
    |
    7天前
    |
    SQL 监控 安全
    员工上网行为监控软件:SQL 在数据查询监控中的应用解析
    在数字化办公环境中,员工上网行为监控软件对企业网络安全和管理至关重要。通过 SQL 查询和分析数据库中的数据,企业可以精准了解员工的上网行为,包括基础查询、复杂条件查询、数据统计与分析等,从而提高网络管理和安全防护的效率。
    20 0
    |
    1月前
    |
    监控 Dubbo Java
    dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
    这篇文章详细介绍了如何将Spring Boot与Dubbo和Zookeeper整合,并通过Dubbo管理界面监控服务注册情况。
    79 0
    dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
    消息中间件 缓存 监控
    116 0
    |
    3月前
    |
    SQL 监控 Java
    SQL质量监控
    为帮助用户管理和优化SLS中的SQL查询,提供了用户级SQL质量监控功能,集成于CloudLens for SLS。开启服务后约10分钟,用户可在「报表中心 / SQL质量监控」中查看数据。 该功能包括: SQL健康分和使用报告:反馈总体质量。 服务指标:如请求PV数、平均延时等,用于业务分析。 运行指标:如并发请求、处理数据量等。 SQL Pattern分析:提炼SQL语义特征,识别业务特征。 质量优化建议:基于请求成功率和错误码分布给出改进建议。 监控功能以分钟为单位聚合分析数据,不包括JDBC接入和ScheduledSQL流量,并可能随产品发展而调整。这些功能有助于用户全面掌握SQL
    SQL质量监控
    |
    3月前
    |
    SQL Java 关系型数据库
    SpringBoot 系列之 MyBatis输出SQL日志
    这篇文章介绍了如何在SpringBoot项目中通过MyBatis配置输出SQL日志,具体方法是在`application.yml`或`application.properties`中设置MyBatis的日志实现为`org.apache.ibatis.logging.stdout.StdOutImpl`来直接在控制台打印SQL日志。
    SpringBoot 系列之 MyBatis输出SQL日志
    WXM
    |
    4月前
    |
    SQL 运维 分布式计算
    如何做好SQL质量监控
    为满足用户对SQL分析行为的监控和质量管理需求,我们推出了用户级SQL质量监控功能。此功能集成于CloudLens for SLS中,可轻松开启以监控和管理所有SLS相关资源(包括采集接入、读写操作、作业、配额、SQL、计费等)。
    WXM
    34 2
    如何做好SQL质量监控
    |
    3月前
    |
    Java Spring 监控
    Spring Boot Actuator:守护你的应用心跳,让监控变得触手可及!
    【8月更文挑战第31天】Spring Boot Actuator 是 Spring Boot 框架的核心模块之一,提供了生产就绪的特性,用于监控和管理 Spring Boot 应用程序。通过 Actuator,开发者可以轻松访问应用内部状态、执行健康检查、收集度量指标等。启用 Actuator 需在 `pom.xml` 中添加 `spring-boot-starter-actuator` 依赖,并通过配置文件调整端点暴露和安全性。Actuator 还支持与外部监控工具(如 Prometheus)集成,实现全面的应用性能监控。正确配置 Actuator 可显著提升应用的稳定性和安全性。
    125 0