当前位置: 首页 > news >正文

问题排查复盘

5月份中旬一天晚上,业务需求上线后反馈,该业务对应的搜索功能有问题,晚上10点多开始排查,到凌晨2点,最后大致定位了问题,并行修改后恢复,虽然问题不是很大,但是当时上线的业务对业绩比较重要,当时公司很多大佬都在等问题的解决,亚历山大,最后定位到的问题很简单,就是下游某个服务超时,但是整体过程离奇曲折,特此记录,总结经验。
首先最大的问题,下游服务那么多,具体是哪个服务出问题导致了最后的问题,这个当下无法通过工具定位,是最大的问题,公司里虽然工具都有,链路工具tracing skywalking,日志工具elk,链路工具基本平时不使用,因为不好用,有些线程都没有串起来,所以当第一步无法定位大致的问题服务时,就靠大胆猜测,结果还猜错了,在错误的问题上折腾了一个小时。
第二,排查到出问题的下游链路时,由于接口没有对超时打日志,所以无法很明确的定位问题,只能临时继续加日志上线,另外,线上日志全部打开后,日志量太多导致有的被遗弃,没有收集起来,还得去机器上看日志。
最终虽然解决了问题,但是能看出来,这是一个工程问题,下次还是无法避免,所以我们要建设一些工具,另外,还需要体系化的建设排查问题的方法论。
1.工具:
tracing:要善于使用skywalking,在错误请求上把链路id打出来,根据链路id先定位大致的错误的服务。
logging:现在打日志是纵向的,开一个应用的日志,就把这个应用模块所有访问的日志都打出来了,只需要打印错误链路的日志,而且需要横向的在各服务上把错误链路的日志都打出来。
2.方法论:
首先做程序员代码就是最大的确定性,不能靠猜哪里有问题,再去看,猜其实是先有的手段无法满足定位,所以只能靠猜,这是下下策。最好的方式是通过metrics—>tracing—>logging的顺序分析问题,比直接去查日志更高效,首先得加上监控告警,通过告警发现问题,第二,通过tracing发现该问题发生在微服务链路的哪个环节,最后,在根据日志找到最根本的问题。

相关文章:

  • C++第十九弹---string模拟实现(下)
  • Python语法(全)
  • 南京观海微电子----升压和降压模块电路解析
  • web及网络基础图文详解
  • 内网渗透(不出网上线CS)
  • HCIP-Datacom-ARST自选题库__BGP/MPLS IP VPN单选【21道题】
  • 【教程】Linux部署Android安卓模拟器
  • 蓝桥杯练习系统(算法训练)ALGO-934 序列
  • 文件批量重命名利器:一键轻松替换文本间内容,高效管理文件不再是难题!
  • 【LLM多模态】综述Visual Instruction Tuning towards General-Purpose Multimodal Model
  • MSSM手动段空间管理(Manual Segment Space Management)解析
  • 语雀——云知识库/笔记
  • 贪心算法4(c++)
  • SpringMVC相关知识集锦----1
  • Oracle数据库中的Freelist解析
  • 【Leetcode】104. 二叉树的最大深度
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 2017届校招提前批面试回顾
  • angular学习第一篇-----环境搭建
  • chrome扩展demo1-小时钟
  • create-react-app做的留言板
  • JavaScript 一些 DOM 的知识点
  • js如何打印object对象
  • Python利用正则抓取网页内容保存到本地
  • Swift 中的尾递归和蹦床
  • Vue ES6 Jade Scss Webpack Gulp
  • 百度地图API标注+时间轴组件
  • 仿天猫超市收藏抛物线动画工具库
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 官方解决所有 npm 全局安装权限问题
  • 解析 Webpack中import、require、按需加载的执行过程
  • 码农张的Bug人生 - 见面之礼
  • 入手阿里云新服务器的部署NODE
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • linux 淘宝开源监控工具tsar
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​io --- 处理流的核心工具​
  • #if #elif #endif
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (02)Unity使用在线AI大模型(调用Python)
  • (06)Hive——正则表达式
  • (12)Linux 常见的三种进程状态
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (七)c52学习之旅-中断
  • (三分钟)速览传统边缘检测算子
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转) Android中ViewStub组件使用
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • ****三次握手和四次挥手
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .Net Core 微服务之Consul(二)-集群搭建