高级软件工程师教会小白的那些事(20)

我认为,你自然而然地就会知道哪些东西是值得记录的。这位高级软件工程师和我的记录之间有很大不同。我认为请求—响应日志就足够了,而他有很多度量,比如查询执行时间,代码所做的一些特定内部调用,以及何时轮换日志,所有这些都已整理出来。

在没有日志的情况下进行debug几乎是不可能的——如果你连系统所处的状态都不知道,又谈何重新创建一个出来?

度量标准可以从日志中产生,也可以在代码中独立存在。(例如将事件发送到AWS CloudWatch和Grafana)。你可以自己决定度量并在代码运行时把那些数字发送出去。

在一个好的监控系统中,警报是将所有内容整合在一起的粘合剂。如果一个度量是当前参与生产的机器数量,当这个数字下降到50%时,将是一个很严重的警报——你就知道出问题了。

失败计数超过某个阈值?是的,另一个警报。

由于知道如果出错了那么警报就会叫醒我,所以我在晚上能安然入睡。(等等,什么?)

这暗示了另一种需要培养的习惯。当你修复bug时,你不仅仅是专注于如何修复这个bug,而且要思考,为什么没有早点弄清楚?警报设置到位吗?如何更好地监控以防止类似问题再次出现?

推荐阅读