我先分享下我们小厂是怎么玩的
所有服务节点都接了 pinponit ,然后结合 kibana 收集的线上日志+traceid
分享几张今天新鲜出炉的 bug 图
今天发现根据这个 pp 的日志就很快定位到有查全表的场!
![]() | 1 opengps 162 天前 ![]() 小厂未必用得上你的这么高级的工具。分析办法全靠经历事故来积累经验 |
![]() | 2 Pythoner666666 162 天前 ![]() 日志收集 + 监控,剩下的全靠个人经验了 |
![]() | 3 darksword21 PRO printf |
4 5261 OP @darksword21 大佬啊 |
5 ala2008 162 天前 ![]() |
6 littlesky87906 162 天前 sentry |
![]() | 7 7gugu 162 天前 ![]() 后端就是靠 TraceId 看链路+日志上报 web 就是看 JS 堆栈+日志上报来分析 |
8 MuSeCanYang 162 天前 ![]() 23333 ,在全球五百强。 我们现在都没用上你这一套东西。 |
9 Ljxtt 162 天前 推荐之前看到的一篇文章 [线上故障应急处理:4 年多 on call 经验总结]( https://jt26wzz.com/posts/0007-online-firefighting-real-world-lessions-from-4-years-on-call/),虽然不是什么具体的工具,但感觉思路还是可以的。 |
11 5261 OP @littlesky87906 好,晚点我也去看下 |
12 Ljxtt 162 天前 ![]() @Ljxtt 我去,怎么多了个空格,[线上故障应急处理:4 年多 on call 经验总结]( https://jt26wzz.com/posts/0007-online-firefighting-real-world-lessions-from-4-years-on-call/) |
13 ssiitotoo 162 天前 skywalking |
![]() | 14 jimmzhou 162 天前 ![]() var_dump();die; phper 就是任性 |
15 tpopen 162 天前 tail -f xxxx | xargs grep xxx |
16 dddd1919 162 天前 ![]() 以前写 ruby ,都是直接生产 rails console 执行代码调试主打一个胆大心细 |
![]() | 17 pkoukk 162 天前 kibana + trace_id 搜就行了,没空搞这些花里胡哨的,开发自己用的工具不算 KPI ,能用就行,懒得搞 |
![]() | 18 msg7086 162 天前 ![]() 我们都是 tail -f 大法 |
19 kevinxzhao 162 天前 大盘监控 + 链路追踪 + 查日志。 |
![]() | 20 darkengine 162 天前 tail -f, grep 哦不对,我们不是大厂 |
21 lawler 162 天前 splunk |
![]() | 22 wxw752 162 天前 ![]() 就以我们公司这点微服务体量,闭着眼睛都能知道大概哪里的问题 |
23 wahaha3010 162 天前 监控+指标+数据+日志 |
![]() | 24 hello321 162 天前 ![]() 楼上都是大佬,我们小小小公司项目发现问题,都靠客户... 客户不反馈=项目无 bug,反馈了不能复现出来,就不算问题. |
25 Leon777 162 天前 ![]() 我们小厂有时候要测试开发产品三方会诊才能确定这到底是 feature 还是 bug |
26 foolishcrab 162 天前 via iPhone 这种代码问题导致的单点故障基本上依靠基建都是非常好排查的。 稍微难一点的是上下游变更导致离变更节点非常远的地方异常,这种基本是排查时间点附近的变更并结合业务专家经验来看。 最难的是变更后很久才能发现的业务一致性问题,基本就靠人力慢慢推理了 |
27 nevermoreluo 162 天前 小厂,先大致确定问题服务是哪组,开发查日志,问题严重需要联系运营找群里论坛里看有没有用户发复现操作,测试尝试复现。 拿到大致复现逻辑或者可能根本无法复现的,运维切备用线路,也可能问题太大先切,看运维和运营把控。 如果没有备用线路,看情况问运营争取关掉外网网关一段时间。至于该不该有备用是事后开会讨论的事。 如果日志查不出来就再拿其他工具分析旁路分析 tcpdump ,proc, gstack ,实在不行就找写这部分代码的开发一起调试吧,反正用户已经切备用线路了。 动态语言可以上一些 console ,或者一些内部接口实现一些简单的 runtime script ,例如动态读取一个脚本文件 or 语句执行 静态语言例如 c++就 ci 再 build 个 RelWithDebInfo ,该调试调试,该 dump 就 dump 当然上面说的运维+测试+看日志的+写这部分代码的人,可能都是你( bushi |
![]() | 28 lepig 162 天前 ![]() vim 20250430.log /errorText (回车) 找吧就... |
![]() | 29 1yndonn3u 162 天前 ![]() 多说无益,先摇人。 |
30 whoami9426 162 天前 虽然不是大厂,但也是我们公司内部开源出来的一种解决方案,实时的告警和全链路的追溯 https://github.com/GuangYiDing/exception-notify |
31 Greendays 162 天前 太高级了,看不懂( |
![]() | 32 js2854 162 天前 直接腾讯云低频 CLS 不香么 |
![]() | 33 server 162 天前 跟着赶脚走 |
36 freeup 162 天前 一般就看堆栈,异常类型,结合函数签名与功能,与最近相关改动,加上点日常经验,基本能解决 99%的问题 |
37 imokkkk 162 天前 一般的问题就是群里监控告警,一般告警的时候会携带异常的采样,拿到 traceId 之类的去阿里云 SLS 查日志。 严重的问题就是 GOC 拉群摇人 |
![]() | 38 DUNAI 162 天前 先看大动脉有没有被裁 |
40 whoami9426 162 天前 |
41 Lockroach 162 天前 tail -f xxx.log | grep xxx --color |
![]() | 42 8355 162 天前 全链路+网关+告警啊 |
43 whoami9426 162 天前 |
![]() | 44 VVVYGD 162 天前 skywalking + 自研类似 skywalking 项目 + EBPF + 知识图谱系图数据资产 |
45 vincentWdp 162 天前 一边复现, 一边看日志 |
46 craftsmanship 162 天前 via Android 这帖子看得我笑中带泪啊 |
47 Sanow 162 天前 arthas 直接排查 |
![]() | 48 Rainwater 162 天前 less xxx.log; xx%; page down... |
49 layxy 162 天前 日志+监控基本能够排查绝大部分故障 |
50 yc8332 162 天前 接口响应时间+服务器的各种监控告警。。 |
51 lilyou 162 天前 @whoami9426 q 请问这个怎么实现的 |
![]() | 53 AlexBob 162 天前 docker service logs -t app 打开,测试你再点一下 |
54 crackidz 162 天前 线上直接 debug |
![]() | 55 declandragon 162 天前 php lumen 框架 error handle 写日志 filebeat 收集上报 elk python 每 20 分钟定时统计,有错误发通知到群里 |
56 whoami9426 162 天前 @lilyou readm 中有介绍原理,主要是通过 @AfterThrowing |
![]() | 57 SethShi 162 天前 小厂直接上阿里云的 tracing 就行了, 很便宜, 全量 30 天存储一个月几千块 ![]() https://www.shiguopeng.cn/posts/2024032815/ 不过上了之后, 又发现一个别的 bug >_ |
![]() | 58 SethShi 162 天前 |
![]() | 59 supuwoerc 162 天前 less run.log :G :?error |
61 spritecn 162 天前 @seth19960929 SLS 是不差钱的公司才用得起的 |
62 5261 OP @seth19960929 我们有小项目是接的阿里云的日志系统,总感觉没有自己搭建的 elk 灵活 |
63 njmaojing 162 天前 |
64 weilai99 162 天前 @littlesky87906 自托管的 sentry 57 个容器,是认真的吗? |
![]() | 65 luciankaltz 162 天前 说存 ELK 的能问下数据规模和成本吗( |
![]() | 66 lu5je0 162 天前 via Android 各种监控埋点 |
![]() | 67 kNmNP3O7G4Tm3ehH 162 天前 前端+app 一套探针探测组件性能上报,后端 Apm 探针,堆栈链路分析工具,云 LTS 日志存储检索,基础设施性能,中间件慢日志,队列堆积监测等,可观测性系统加混沌工程定期测试,每个月应急演练。 |
68 R77 162 天前 小厂,接口,服务器监控,人肉 log 分析 |
![]() | 69 AmaQuinton 162 天前 kubectl -n namespace logs -f pod-name --since=1h |
70 pigf 162 天前 @MuSeCanYang 尾大不掉 |
72 BestPix 162 天前 @whoami9426 感谢分享,很有用! |
![]() | 73 proxychains 162 天前 journalctl -xeu myapp | grep -i err |
74 5261 OP @luciankaltz 成本确实有点大,光 es 3 个节点 就要不少费用 |
![]() | 75 Grocker 162 天前 SLS |
![]() | 76 NathanInMac 162 天前 最简单就 Sentry + SLS + OpenTelemetry |
![]() | 78 qbmiller 162 天前 楼主用的 elk 那套吗。 loki 那套 看好多用的 |
![]() | 79 Youko 162 天前 arthas 挺好用 |
![]() | 80 SethShi 162 天前 @spritecn SLS 还挺便宜的, https://sls.console.aliyun.com/lognext/tools/calculator 100G 30 天保存, 一天 40 块 @5261 #62 没感觉有什么灵活的, 反正比自建省事, 毕竟 k8s 也用阿里云的 |
![]() | 81 Charlie17Li 162 天前 纵坐标是啥,我们都是 SLS 查关键字 |
![]() | 82 tudou1514 162 天前 牛逼的用眼看,其余的 grep -i xxx.log |less |
![]() | 83 iguess 162 天前 第一阶段: 看日志 |
84 bli22ard 162 天前 @whoami9426 #40 这个是不是 javaagent 实现的? |
85 whoami9426 162 天前 @bli22ard 基于 aop 实现的, aop + git blame + webhook |
86 spinlock 162 天前 代码注释 二分查找 |
88 Alliot 162 天前 总的来说就是可观测性那一套 Metrics+Log+tracing. 用得多的就是 Promethues 全家桶,ELK 那套日志, 加 APM. 往细节上, 除去系统性能指标那些,还加上了应用/业务指标的监控。 网关层面的状态码监控。 再加上数据库慢 SQL 之类的监控。 最后还有就是波测,SaaS 多地监控。 |
89 bli22ard 162 天前 @whoami9426 #85 git blame 只有在编译阶段才有吧, 难道你们每次编译生成了一个代码行和 git blame 的对应关系,出现异常 ,用堆栈类+行号 取找 git blame 的信息,然后生成通知信息? |
90 whoami9426 162 天前 @bli22ard #89 是直接请求 git 平台的 git blame api , 根据仓库,分支 实时读取的最新的代码 |
91 bli22ard 162 天前 @whoami9426 #90 厉害了。 |
![]() | 94 quzard 162 天前 via iPhone 完全用 SLS 来排查和运维 |
![]() | 96 zcl0621 162 天前 ![]() @JoeDH kafka ,redis ,pg ,clickhouse 全部拆出去部署;需要修改 selfhosting 的脚本,compose 文件,还有几个 py 文件;以及手动去执行 kafka ,pg ,clickhouse 的初始化文件;其他那些组件都跑在一台 16c 还是 32c 的机器上(目前离职一段时间了,我不太记得了);还需要调整 container 的数量。总之 selfhosting 的坑贼多,文档也很少,只能自己摸索。 |
![]() | 97 wogogoing PRO |
98 jukanntenn 162 天前 ![]() 我们公司是 try: ... except: pass 没有报错就没有 bug |
99 kid1412621 162 天前 via iPhone @proxychains #73 加下 no-pager |
100 kid1412621 162 天前 via iPhone |