Bug地狱 #2 构建监控平台查看系统运行与SQL执行情况

本文主要是介绍Bug地狱 #2 构建监控平台查看系统运行与SQL执行情况,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

补救 构建监控平台查看系统运行与SQL执行情况

关于系统的可观测性,有logs(日志),traces(跟踪),metrics(指标)。

系统频繁宕机,可能的原因有:1.慢sql;2.代码语法调用低级,如循环调用外部api;3.循环调用sql语句。

为了从系统情况和代码两个层面对系统进行监控,需要通过log,traces,metrics来监控系统。

此篇不是说明搭建,而是对系统排查的过程进行记录和总结,提供一些参考参考。

Prometheus、Grafana展示监控数据

在23年中下旬,遇到频繁宕机时,其中最严重的导致系统停机4、5个小时以上。当前公司内部只有ELK和Zipkin,可以查看细致的日志和调用链,但是无法查看系统当前的运行情况。所以搭建了指标系统,对服务器和重要服务进行监控。当发现系统负载较高是,可以排查到是具体的哪个服务产生了异常导致系统雪崩。进而可以使用zipkin和log进行细化排查。

logs 搭建ELK(Elastic Search、Logstash、Kibana)构建日志监控系统

在入职公司时,已经搭建了ELK系统,可以通过Kibana监控系统的日志,分析错误。

切换数据源为druid,监控慢sql

当系统宕机,只看到满屏的服务降级,没有办法找到改进的方向。当前系统使用的是springboot默认的数据库连接HikariCP。HikariCP的性能比druid好,但是功能没有druid强大,我们需要对sql进行监控来调优。对部分系统服务更换druid也没有产生性能问题,就把所有的系统进行了更换。更换druid后,可以打开druid的打印sql功能,通过日志监控sql执行情况,也可以通过druid提供的监控面板对慢sql进行排序。

通过此举,除了部分统计sql优化比较困难,其余的慢sql都得到了优化。

traces 使用Zipkin对调用链进行监控

除了优化sql外,代码因为个人能力,或者工期等原因,其中部分代码存在质量问题。

在入职公司时,已经搭建了zipkin,通过zipkin,可以查看调用时长最长的接口,再查看源码,寻找缓慢的原因。

如果肉眼无法查看到问题,可以通过arthas进行排查。

arthas 阿里开源的java诊断工具

arthas是阿里开源的java诊断工具,可以通过arthas对java应用进行诊断,包括查看方法调用,修改变量值,查看线程状态等。

通过arthas提供的IDEA插件,生成trace命令,查看长耗时的部分,再进行优化。

总结

通过新搭建的promutheus,结合已有的ELk和Zipkin。并且切换为druid连接池提供有意义的慢sql日志信息。结合arthas进行代码排查。

这篇关于Bug地狱 #2 构建监控平台查看系统运行与SQL执行情况的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/697383

相关文章

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

解密SQL查询语句执行的过程

《解密SQL查询语句执行的过程》文章讲解了SQL语句的执行流程,涵盖解析、优化、执行三个核心阶段,并介绍执行计划查看方法EXPLAIN,同时提出性能优化技巧如合理使用索引、避免SELECT*、JOIN... 目录1. SQL语句的基本结构2. SQL语句的执行过程3. SQL语句的执行计划4. 常见的性能优

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi