修:日志级别过滤反了

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

开始练习 →

修:重启策略判反了

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

开始练习 →

修:健康又放水了

场景:~/svc/app.py 的健康判断把 all(...) 写成了 any(...),有依赖挂了也报 200。 任务:把它改回 all,让 python3 ~/svc/app.py --health 在有依赖挂时如实报 503。改好运行

开始练习 →

交付:三处维护都做好

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

开始练习 →

无提示排障靠什么

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

开始练习 →

证据指向坏掉的依赖

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

开始练习 →

查:哪个依赖坏了

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

开始练习 →

查:首个错误在第几行

场景:~/svc/access.log 里藏着 ERROR,没告诉你在哪。 任务:跑 python3 ~/svc/mon.py --errors,读它报的 首错行 = L,到 ~/对照表.txt 查 L 填进来。 (判分只看你在受控容器里的

开始练习 →

查:几个请求出过错

场景:同一份日志,要数出过错的不同请求有几个。 任务:跑 python3 ~/svc/mon.py --errors,读它报的 出错请求 = N(去重),到 ~/对照表.txt 查 N 填进来。 (判分只看你在受控容器里的真机产物,纯本机、

开始练习 →

查:采样超阈几次

场景:~/svc/samples.txt 是采样,阈值在 ~/说明.txt,没告诉你告警没告警。 任务:跑 python3 ~/svc/mon.py --alert,读它报的 超阈 = N,到 ~/对照表.txt 查 N 填进来。 (判分只

开始练习 →