读《监控的自我修养,过去十年和未来十年》有感
拜读《监控的自我修养,过去十年和未来十年》,有一些感想。
nginx 对 2xx 日志采样
背景
一些场景下,我们并不需要记录 nginx 所有的 2xx 日志。
但需记录所有
4xx、5xx。
网上搜索到的方案,要么不记录 2xx,要么采样所有日志,都不满足需求。
下面我们使用 ngx_lua
来达成这样的目标:
- 对于 1xx、2xx、3xx,按照一定的百分比采样
- 对于 4xx、5xx,100% 的记录
用 map 实现 nginx 的动态 upstream
背景
在我们的场景下,nginx 的 upstream servers 是一堆容器。 容器的主机名不变,但其 ip 可能发生变化。 我希望在容器 ip 发生变化时,无需变更 nginx 的配置。
Get Funcname and Callername in Golang
背景
在 golang 中,往往需要获知当前的函数名及其调用者。
例如在监控场景,自动获取函数名的需求比较常见。