Skip to content

RPC 服务巡检工作流

0x01 日常 RED 面板巡检

蓝鲸监控基于「RPC 指标规范」为 RPC 服务提供基于 RED 指标体系的标准监控面板查询语句,包括:

  • 请求量(request_total)
  • 成功率 / 超时率 / 异常率(success_rate / timeout_rate / exception_rate)
  • 平均耗时(avg_duration)
  • 耗时分布(p50_duration / p95_duration / p99_duration)

基于 Calculate By Range 的接口能力,提供 RED 指标按时间范围的汇总表格视图。

查询语句可用于日常 RPC 服务的健康状态巡检,帮助开发/运维人员及时发现和定位服务异常,以下列举部分巡检最佳实践。

a. 基于 calculate_by_range 进行维度下钻的通用技巧

通过 calculate_by_range 接口的维度过滤和分组功能,可以实现对 RED 指标的多维度下钻分析,帮助快速定位问题根因。

1)一般从 callee_method 开始,对返回数据按 callee_method 维度分组,并对指标查询结果进行排序,找出异常指标值突出的 TOP N 接口。

2)增加异常接口作为过滤条件,分析其他维度是否存在异常:

  • code:分析是否为特定业务错误码引起的问题。
  • instance:分析是否为特定实例引起的问题,比如具体某个 CVM 或容器实例异常。
  • 【仅适用于主调】callee_server & callee_service:分析是否为特定被调服务引起的问题。
  • 【仅适用于被调】caller_server & caller_service:分析是否为特定主调服务引起的问题。

3)时间对比:找出引发异常维度组合,增加一天前(1d),一周前(7d)等时间范围对比,确认是否为新出现的问题。

4)调用链:

  • 查询异常 Span:使用异常维度组合作为过滤条件,查询调用链中的错误、耗时长的 Span,获取更详细的调用信息。
  • 查询异常 Trace:基于典型 Span,查询完整 Trace 详情,分析调用链上下游服务的影响。

4)提升排查效率的技巧:

  • 优先使用单维度下钻,确认单个维度枚举值数量 < 100 时,再考虑多维度组合下钻,避免数据量过大导致查询超时。
  • 结合时间范围缩小查询粒度,优先排查近 1 小时或 30 分钟内的异常,再根据需要扩大时间范围。

b. RED 指标趋势分析和维度下钻

通过时序数据,观察请求量、耗时(P99)、超时率、异常率等指标的变化趋势,识别潜在的性能瓶颈和异常波动:

  • 请求量骤增可能预示流量攻击或业务异常。
  • 超时率/异常率上升可能预示服务不可用或性能下降。
  • 耗时(P99)上升可能预示性能瓶颈或资源不足。

场景 1 - 曲线存在明显波动或毛刺

选取波动段作为时间范围,参考「a. 基于 calculate_by_range 进行维度下钻的通用技巧」,逐步缩小范围定位异常根因。

场景 2 - 曲线平稳但指标异常

参考「a. 基于 calculate_by_range 进行维度下钻的通用技巧」:

  • 结合时间对比,确认是否为新出现的问题。
  • 进行下钻排查,并给出典型的异常接口,如果有多个,可列出 TOP N 接口。