稳定性-从端到端观测开始
上一篇:稳定性-从稳定性架构说起 ,我们聊到了从对象+活动的模式出发,识别稳定性保障对象的上游、下游,明确谁会影响到我、我会影响到谁;从场景出发穷举可能的影响程度,建立起分布式系统中的认知。
什么是端到端观测
当我们识别出了稳定性保障对象的前、后、左、右对象之后,就像围棋中的棋子的"气"一样,那么这些"气"在实际业务活动中是如何流转的呢?从哪里开始、经过哪些节点、最终在哪里结束,这样包含全部调用过程的路径,我们称之为端到端,这是基本的观测原则。要想确保稳定性就需要覆盖全部的端到端节点,这些节点就是观测的范围。
观测的三个层次
搞清楚了确定观测对象范围的基本原则之后,我们需要定义观测的三个主要层次:
- 业务层次
业务层次是差别最大的,不同的业务观测指标完全不同。但是,确定哪些指标需要成为业务指标也是有一定的基本原则的:
1)有哪些调用来源,比如根据渠道来,微信小程序、网站、App 等等
2)有哪些服务场景,比如注册、登陆、搜索、推荐、下单、支付、物流等等
针对具体的来源+场景,通常需要建立调用量(qps/tps)、成功率(successRate)、耗时(tp99)、错误数(errorCount) - 应用层次
应用层次相对比较简单,通常是
1)调用量(qps/tps)、成功率(successRate)、耗时(tp99)、错误数(errorCount)四个指标阈值
2)调用量(qps/tps)、成功率(successRate)、耗时(tp99)、错误数(errorCount)四个指标波动
这里的波动通常需要跟上一个时刻比,跟前一天/周/月相比 - 技术层次
技术层次更多是从资源供给角度进行监控,主要是
1)资源利用率,CPU、Mem、Storage、Network 四个主要资源的利用率
2)资源使用成功率,如 Pod 创建成功率
3)资源使用效率,如 K8S Pod 调度时长、Pull Image 时长
4)资源虚拟化率,如 CPU、Mem 超卖比例
观测的三个核心维度
观测的三个核心维度:
- Log,日志是最基本的观测数据载体
- Metric,指标是基于日志计算出的各种统计维度
- Trace,链路是分布式系统中观测的最核心要素
1)基于对服务场景的梳理,从请求开始到请求结束,每个环节的异常都需要打印日志,便于在线诊断。
2)对于限流、熔断等规则生效时,也需要打印日志,便于从监控感知。
3)业务异常时,打印关键字日志,便于从监控感知