随着微服务架构的普及,一个完整的业务逻辑调用请求的背后可能牵涉后端几个、几十个甚至上百个服务接口,后台服务形成一种复杂的分布式网络。在该场景下,如何在请求发生异常时快速定义问题所在就成为了分布式场景下排障的关键问题。
云原生 API 网关支持链路追踪功能,使用者可以通过具体的服务、状态码、响应耗时等查询具体的调用过程,包括调用过程所需要的时间和运行情况。根据这些信息分析在分布式链路调用过程中每个环节的耗时和异常,如:
定位耗时较长的服务。
不合理的调用逻辑(如一次请求多次调用某服务,建议改为批量调用接口)。
开启链路追踪
1. 登录微服务引擎 TSE 控制台。
2. 在左侧导航栏单击云原生 API 网关 > 可观测性,在页面上方选择好网关实例。
3. 单击 链接追踪 页签,在页面中间单击立即开启,开启链路追踪。
协议:支持 OpenTelemetry (推荐)、SkyWalking、Zipkin、aeger 四种协议。网关默认使用收到请求时客户端指定的链路追踪协议,如客户端未指定,将使用控制台指定的协议。
API 业务系统:勾选后网关将使用该 APM 业务系统进行链路上报。
采样率:取值范围 0-100,0 为不采集,100 为每个请求都采集,默认为 10,采样率配置过高可能会影响性能。
查询调用链详情
开启链路追踪后,在链路追踪页面,可以查看网关实例的调用链及详情。
1. 在调用链查询中,设置好查询条件,单击查询。
时间范围:支持特定和自定义时间范围选择。特定时间范围包括:近5分钟、近15分钟、近30分钟、近1小时、近3小时、近12小时和近1天。
响应时间:设置响应时间范围。
Trace ID(可选):Trace ID。
服务:单击下拉框,在下拉框中选择要查询的服务,可以输入关键字进行搜索。
状态码(可选):状态码。
健康情况(可选):
正常:根据响应时间和错误率评估,该调用正常。
慢调用:该调用耗时执行超过2000ms。
异常:该调用返回非 200 HTTP 状态码。
业务标签:网关用于链路追踪的标签。
2. 点击调用链的“ID”或者操作列的查看详情,可查看调用链的详细信息,包含调用信息详情和各阶段耗时。
查看依赖拓扑图
开启链路追踪后,在服务基本信息页面,可以查看服务依赖拓扑图,根据服务拓扑图,您可以直观的了解服务的上下游组件与它们的调用关系,从而更快速地找出应用的瓶颈。
1. 在左侧导航栏选择路由管理,在页面上方选择好网关实例后,单击服务页签。
2. 单击要查看的服务名称,进入服务详情页面,在依赖拓扑模块,设置好时间范围后可以查看服务调用信息。