系统上 Kubernetes 之后,服务实例变多、生命周期变短,单靠 SSH 看日志往往不够。Metrics(指标)、Logs(日志)、Traces(链路) 三者互补,目标是把「哪里慢 / 哪里错」从小时级缩到分钟级。
Metrics:先看趋势与告警
- 回答:CPU/内存/延迟/错误率是否异常,是否只在某副本、某区域。
- 适合:容量规划、告警、SLO 视角(例如 P99 延迟)。
Logs:再看当时发生了什么
- 回答:错误码、堆栈、业务关键字段(订单号、用户 ID 等)。
- 建议:结构化日志 + 关联字段(如 trace id),便于跨服务检索。
Traces:把一次请求串起来
- 回答:延迟花在哪段调用(下游 RPC、DB、缓存)。
- 适合:微服务拆分后跨服务慢查询、重复调用、异常传播。
实际使用顺序(常见)
- 告警 / 大盘 发现异常(Metrics)。
- 用 Trace 定位到具体服务与 span。
- 在同一时间窗口内 查日志 对齐细节。
落地提示
- 三者都贵,先保证「能关联」(同一 trace id、同一时间戳),再追求大而全。
- 采样策略要设计:全量链路在高峰期可能拖垮集群与存储。