请求某个依赖的下游服务(假设其名字是 a),发现超时了,打印了超时日记,但是无法区分是网络的问题导致的,还是就是 a 服务返回的慢了。此时,你肯定很想知道 a 服务当前是否康健,a 服务的各项 SLI 是否正常,如果 a 服务的 SLI 都正常,大概就是网络链路问题,如果 a 服务的 SLI 也不正常,那很大概就是 a 服务的问题了。
但是,TMD,我不知道去哪里看 a 服务的 SLI 啊…我甚至都不知道 a 服务是否对外袒露了 SLI 指标!!!
这个问题很常见,许多公司都建设了 Zabbix、Prometheus、Nightingale 等监控体系,但是却没有一个统一的地方查看各个服务的 SLI,其实,服务的 SLI 指标远比机器的 CPU、内存等指标来得紧张。最佳实践是什么?
SLI 最佳实践