查:哪个依赖坏了

查:哪个依赖坏了

场景:~/svc/health.json 里各依赖探测结果混着,但没告诉你是哪个坏。 任务:跑 python3 ~/svc/mon.py --health,读它报的 坏的 = X(没过的那个依赖名),

阅读更多 →
证据指向坏掉的依赖

证据指向坏掉的依赖

真机:health.json 里 db 探测 ok、cache 探测失败。mon.py --health 报的 坏的 = X 是哪个依赖? (判分只看你在受控容器里的真机产物,纯本机、纯 Python

阅读更多 →
无提示排障靠什么

无提示排障靠什么

没人告诉你哪坏了,排障最靠得住的是【0】。 (判分只看你在受控容器里的真机产物,纯本机、纯 Python,没有公网。)

阅读更多 →
交付:三处维护都做好

交付:三处维护都做好

场景:~/svc/app.py 埋了三处 bug——错误阈值 400(应 500)、日志过滤 == "INFO"(应 !=)、重启 == 0(应 !=)。 任务:三处都修好,让 -

阅读更多 →
修:健康又放水了

修:健康又放水了

场景:~/svc/app.py 的健康判断把 all(...) 写成了 any(...),有依赖挂了也报 200。 任务:把它改回 all,让 python3 ~/svc/app.py --healt

阅读更多 →
修:重启策略判反了

修:重启策略判反了

场景:~/svc/app.py 的 on-failure 重启把 exit_code != 0 写成了 == 0,成功退出反倒重启、崩了反倒不管。 任务:把它改回 != 0,让 --restart o

阅读更多 →
修:日志级别过滤反了

修:日志级别过滤反了

场景:~/svc/app.py 的日志过滤把「至少 WARN 才留」写成了 level == "INFO",反倒只留 INFO、把 WARN/ERROR 丢了。 任务:把过滤改成留

阅读更多 →
修:错误统计把 4xx 也算了

修:错误统计把 4xx 也算了

场景:~/svc/app.py 的错误统计把 status >= 500 写成了 >= 400,把 4xx(客户端错)也当成服务错误,错误率虚高。 任务:把阈值改回 500,让 --met

阅读更多 →
查:这批的 p95

查:这批的 p95

场景:另一批访问日志,要看这段时间延迟的长尾。 任务:跑 python3 ~/svc/mon.py --metrics,读它报的 p95 = M ms,到 ~/对照表.txt 查 M 填进来。 (判分

阅读更多 →
查:故障从第几个采样起

查:故障从第几个采样起

场景:同一批采样,要找出从哪个采样开始持续超阈(连续超线的起点)。 任务:跑 python3 ~/svc/mon.py --onset,读它报的 起点 = K(第几个采样,从 1 数),到 ~/对照表

阅读更多 →