RPC拓扑-服务高级视角

RPC拓扑-服务高级视角

背景

当前“RPC拓扑”支持“服务视角”和“流量视角”,所谓视角即输入什么参数来查询拓扑。“服务视角”是输入服务名来查看拓扑,“流量视角”是输入入口url来查看拓扑。

他们分别对应着不同的用户需求,例如服务的开发人员关注的是自己的服务,他们会从自己服务的视角出发来看整张拓扑;而关注端到端稳定性的同学则会从“流量视角”出发,看端上http请求的健康程度,比如耗时长不长,错误率高不高,如果发生故障,那么根因在哪个节点。总体来说,两种视角是呈现拓扑的两种方式,给不同的人看不同的东西。

目前两个视角在产品上都有优化的空间,这个方案主要聚焦在“服务视角”上。目前“服务视角”拓扑的生成是从CK中拉取若干条相关的链路详情,聚合生成拓扑图,业内把这种方案称为“离线即兴采样生成拓扑”。这种方案的不足主要有两点:

  1. 采样出来的若干条链路不能保证生成完整的拓扑,可能遗漏一些调用关系。
  2. 离线即兴采样生成的拓扑没有相关的性能指标。只有拓扑的骨架而没有性能指标,没有做到多种信号的关联,所提供的可观测性信息有限。

目标

在3-4月的迭代中,“流量视角”的底层和数据基座已经开发完毕。“服务视角”的优化思路就是将“服务视角”和“流量视角”进行融合,以“服务视角为主”、“流量视角”为辅助,形成“服务高级视角”。

原型图

  • “服务名”是必选的第一个参数,所以“服务高级视角”仍然是从服务视角出发。
  • “接口名”是可选的参数。填写了“接口名”,则展示接口级别拓扑,否则展示服务级别拓扑。
  • “流量入口“一般是网关层的http请求url。这是一个下拉选择输入框。可选项是根据”服务名“和”接口名“自动拉取的一个列表,可多选。默认为全部,表示展示该服务所有流量入口下的拓扑。
  • “聚焦展示”默认为自适应,表示当拓扑图节点超过阈值后(大拓扑),仅展示用户输入的“服务名”节点的直接上游和直接下游。用户可以点选其他节点,更改聚焦展示的目标节点,同时更改“服务名”、“接口名”并触发“流量入口”查询。
  • “边”表示上游到下游的调用关系,边上有性能指标。点击边有相关操作。
  • “节点”表示一个服务或者接口。通过颜色表示不同的状态,需要标注的状态有:QPS放大比例高、耗时长、错误率不为0、cpu负载高,出度高(依赖复杂),入度高(被很多服务依赖)。点击节点有相关操作。

总览:

44fdaa375722b9dc40a1e4420fa49f55.png

聚焦展示:

6dbc030050c76233ffc63a0b2dc24043.png

点击边的操作:

e9b829191aff7ba1fd91ecae4c656aa4.png

点击节点的操作:

e2b9583cfa5689e1256c4c4026f9d600.png

其中点击节点和边的操作选项以类似抽屉的方式从右边弹出,具体展示信息如下:

90ee48e8bf77d6e7ec53c606308c6d88.png