如何在线上快速定位bug(干货)

想必有许多人都想我刚进公司一样不会快速定位线上bug吧,不会快速定位bug会大大降低我们的开发效率,随之而来的就是工作质量下降、业绩下滑。

我总结了一些我常用的线上定位技巧,希望能帮助到大家!

我这里以使用阿里云日志分析作为例子

对于不同的业务场景,肯定有着不同的定位关键词,但是跟踪号是通用的,无论你的公司是做什么业务的,对于每个请求一定会有一个唯一跟踪号

我们可以去抓取请求的跟踪号:

但是光凭跟踪号是无法做到精准定位的!通过跟踪号来查看日志,一个跟踪号就能查到两百多条,你可能觉得还好,一条一条日志翻能看完,但是这是涉及到的上下游业务链不多,有些一个跟踪号可以查到1千多条日志记录,你也一条一条看嘛,很显然这不现实,所以我需要通过一些技巧来快速定位bug的位置!!!

1. 跟踪号 + 日志级别

一般来说出现bug,选着error即可,我们看这里这个请求没有bug,所以我选着了warn的日志级别,可以看到日志板块瞬间干爽了。从原来的2百多条直接干到了1条

2. 系统错误码定位

这种方式可以不用加跟踪号,因为它这里的请求码是系统给出的报错,可以理解为就是从日志里把报错的状态码展示出来了。这种情况下直接搜索它即可

3. 跟踪号 + 微服务模块

这种方式的粒度比较大,一般适用于你很清楚它是那个环节出错了的时候选用。

还是以刚刚那个请求跟踪号为例,我任意选着一个微服务后,可以看到日志条数直将为了3条,也就是说在这个业务模块产生了3条日志记录,在去查找这个业务模块的错误就比较简单了。

4. 跟踪号 + 请求日志/响应日志

这种情况比较适用于你清楚是那个业务环节出错了的情况,比如说我在些代码的时候就对于某个字段没有做空指针处理,当测试没有传入那肯定就报错了呀。这种也是比较细的粒度,一般来说只会有一到两条日志。  可以看到定位直接精准

这里就是我比较常用的日志定位技巧,这些技巧对于公司日志量庞大的也使用,其实上线的bug大多源自你对业务流程已经一些业务名词没有搞清楚而造成的,空指针也是最常见的问题,希望大家看完这里能对大家有一些启发帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/362468.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Linux] 文件/目录命令

pwd print working directory cd change directory cd #返回主目录 cd ..返回上级目录 cd . 不动 cd ~ 用户名 进入某用户的主目录 mkdir mkdir 目录名 mkdir -p xx/yy/zz #一次创建多重目录 rmdir remove directory 删除空目录,只能删除空目录,别的不能…

2021年12月电子学会青少年软件编程 中小学生Python编程等级考试三级真题解析(选择题)

2021年12月Python编程等级考试三级真题解析 选择题(共25题,每题2分,共50分) 1、小明在学习计算机时,学习到了一个十六进制数101,这个十六进制数对应的十进制数的数值是 A、65 B、66 C、256 D、257 答案&#xff…

Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程

方法一:PHP_diseval_extension禁用 Linux CentOS 禁用php的eval函数详细图文教程_centos php 禁用 eval-CSDN博客 这个方法make报错,懒得费时间处理,直接用第二种 方法二:suhosin禁用 不支持PHP8,官方只支持PHP7以下…

# bash: chkconfig: command not found 解决方法

bash: chkconfig: command not found 解决方法 一、chkconfig 错误描述: 这个错误表明在 Bash 环境下,尝试执行 chkconfig 命令,但是系统找不到这个命令。chkconfig 命令是一个用于管理 Linux 系统中服务的启动和停止的工具,通常…

MySQL周内训参照4、触发器-插入-修改-删除

触发器 1、用户购买商品时,要求库存表中的库存数量自动修改 详细示例 delimiter $$ create trigger stock_change after -- 事件触发在 下订单之后 insert -- 监视插入事件 on stock -- 监视 order订单表 for each row begin update stock set stockstock-new.st…

2024年6月27日 (周四) 叶子游戏新闻

老板键工具来唤去: 它可以为常用程序自定义快捷键,实现一键唤起、一键隐藏的 Windows 工具,并且支持窗口动态绑定快捷键(无需设置自动实现)。 喜马拉雅下载工具: 字面意思 Steam国产“类8番”游戏《永恒逃脱:暗影城堡》…

多路h265监控录放开发-(14)通过PaintCell自定义日历控件继承QCalendarWidget的XCalendar类

首先创建一个新类XCalendar继承QCalendarWidget类&#xff0c;然后在UI视图设计器中把日历提升为XCalendar&#xff0c;通过这个函数自己设置日历的样式 xcalendar.h #pragma once #include <QCalendarWidget> class XCalendar :public QCalendarWidget { public:XCal…

C#udpClient组播

一、0udpClient 控件&#xff1a; button&#xff08;打开&#xff0c;关闭&#xff0c;发送&#xff09;&#xff0c;textbox&#xff0c;richTextBox 打开UDP&#xff1a; UdpClient udp: namespace _01udpClient {public partial class Form1 : Form{public Form1(){Initi…

最新Adobe2024全家桶下载,PS/PR/AE/AI/AU/LR/ID详细安装教程

如大家所熟悉的&#xff0c;Adobe全家桶系列常用的软件有Photoshop&#xff08;PS&#xff09;、Premiere&#xff08;PR&#xff09;、After Effects&#xff08;AE&#xff09;、illustrator&#xff08;AI&#xff09;、Audition&#xff08;AU&#xff09;、Lightroom&…

计算机视觉-期末复习-简答/名词解释/综合设计

目录 第一讲--计算机/机器视觉概述 名词解释 简答 第二讲--图像处理概述 名词解释 简答 第三讲没划重点习题 第四讲--特征提取与选择 名词解释 简答 综合题 第五讲--不变特征 名词解释 简答 第六讲--物体分类与检测 简答 综合题 第七讲--视觉注意机制 简答 …

操纵系统的特征-线程的六种状态

线程的六种状态 线程是操作系统进行运算调度的最小单位&#xff0c;它可以分为六种状态 新建状态&#xff08;NEW&#xff09; 用new创建一个线程对象&#xff0c;这时候处于新建状态 可运行状态&#xff08;RUNNABLE&#xff09; 可运行状态又分为两种状态&#xff1a;就绪…

公司新来了个半吊子测试,没想到居然是个卷王!

最近招了一个测试坐我旁边&#xff0c;想着好好培养一下&#xff0c;要她有什么不懂可以来问我&#xff0c;但工作几天了也没看她来问问题什么的&#xff0c;以为他是个半吊子测试&#xff0c;结果有一天我发现&#xff0c;她竟然趁我不在的时候偷偷努力…&#xff0c;原来她这…

机器学习之集成学习

一&#xff1a;概念 顾名思义集成学习就是用多个其他的算法结合起来使用 对于“其他算法”有同类和同质的区别&#xff0c;同质指的是所用的算法都是同一类型的&#xff0c;比如决策树和神经网络&#xff0c;这种也叫基学习器。反之亦然&#xff0c;但一般使用的是同质的。 …

【Redis】三大Redis内存分析工具介绍(Redisinsight、RDR、RMA)

一、RedisInsight工具介绍 RedisInsight是一款Redis官方开源的可视化管理工具&#xff0c;旨在帮助开发人员和管理员更轻松地设计、开发和优化Redis应用程序。以下是关于RedisInsight的详细介绍&#xff1a; 1、工具概述 定义&#xff1a;RedisInsight是一个直观且高效的Red…

数据库层持久化

数据持久化层 冷热分离 冷热分离&#xff1a;将常用的“热”数据和不常使用的“冷”数据分开存储 冷热分离就是在处理数据时将数据库分成冷库和热库&#xff0c;冷库存放那些走到终态、不常使用的数据&#xff0c;热库存放还需要修改、经常使用的数据 业务需求出现了以下情况…

基于ssh框架的个人博客源码

基于ssh的个人博客源码&#xff0c;页面清爽简洁&#xff0c;原先有部分bug,运行不了&#xff0c;现已修复 1.博客首页 &#xff08;本地访问地址 :localhost:8080/Blog/index/index&#xff09; 2.关于我 3.慢生活 4.留言板 5.我的相册 微信扫码下载源码

【PTA】7-1 网红点打卡攻略(C/C++)代码实现 反思

解题细节分析&#xff1a; 0.比较图的两种存储方法&#xff0c;通过邻接矩阵存储更便于查找给定两点之间的关系 1.注意理解清楚题义&#xff1a;“访问所有网红点”中所有不是指攻略中所有&#xff0c;而是存在的全部的网红点 代码见下&#xff1a;// 需要注明的是&#xff…

M4V文件损坏无法播放?一招轻松修复损坏视频文件!

M4V是一个标准视频文件格式&#xff0c;此种格式常在iPod 、 iPhone 和 PlayStation Portable等设备上使用&#xff0c;同时此格式基于MPEG-4编码第二版&#xff0c;是MP4格式的一种特殊类型&#xff0c;有时可能会因为各种原因而损坏&#xff0c;导致无法正常播放。M4V文件出现…

13 Redis-- MySQL 和 Redis 的数据一致性

Redis-- MySQL 和 Redis 的数据一致性 先抛一下结论&#xff1a;在满足实时性的条件下&#xff0c;不存在两者完全保存一致的方案&#xff0c;只有最终一致性方案。

PID算法介绍以及代码实现过程说明

写在正文之前 在上一篇文章就说会在这两天会基于PID写一个文章&#xff0c;这里的原理部分值得大家都看一下&#xff0c;代码部分的实现是基于python的&#xff0c;但是对于使用其他编程语言的朋友&#xff0c;由于我写的很通俗易懂&#xff0c;所以也值得借鉴。 一、PID算法…