云原生 API 网关是腾讯云基于开源网关推出的一款高性能高可用的云原生 API 网关产品,作为云上流量入口,集成请求分发、API 管理、流量监控、访问限制等功能,是微服务架构和容器架构中的重要组件。
TSE 云原生 API 网关提供多可用区容灾部署、多种接入方式统一管理能力、开箱即用的限流熔断、流量灰度、流量镜像、安全防护等能力。对于存在流量波峰波谷性质的业务,TSE 云原生 API 网关同样支持弹性伸缩和定时伸缩实现对网关节点的伸缩。
● 超强性能:通过云原生 API 网关可以轻松应对百万并发
● 无限的可扩展性:依托开源生态,具有丰富的社区插件,同时支持自定义插件
● 集中且简单的管理:在一个控制台上就能管理服务、路由、安全等配置
● 丰富的流量管理和监控:提供开箱即用的限流、熔断、灰度、流量镜像等流量管理和监控能力
● 原生支持容器和微服务生态:100% Kubernetes原生架构和接口让您充分利用Kubernetes强大能力,支持对接多种注册中心,轻松访问管理您的微服务
● 全链路高可用:网关入口、网关节点,全链路支持多可用区部署,保证高可用
随着微服务架构的普及,一个完整的业务逻辑调用请求的背后可能牵涉后端几个、几十个甚至上百个服务接口,后台服务形成一种复杂的分布式网络。在该场景下,如何在请求发生异常时快速定位问题所在就成为了分布式场景下排障的关键。
在现有的链路追踪能力中,缺少网关到应用服务调用链路的统一的视角,以及全局的唯一标识。网关侧无法看到请求入口经过后端服务的调用路径,调用处理的时间点信息。应用也缺少网关视角,导致全链路不够完整。
TSE 云原生 API 网关推出链路追踪功能,使用者可以通过具体的服务、状态码、响应耗时等查询具体的调用过程,包括调用过程所需要的时间和运行情况。根据这些信息分析在分布式链路调用过程中每个环节的耗时和异常,如:
● 定位耗时较长的服务。
● 不合理的调用逻辑(如一次请求多次调用某服务,建议改为批量调用接口)。
● 从服务应用角度可以清晰知晓网关侧耗时与运行情况,让网关这一跳的详情清晰可见
● APM提供了列表与树状图展示trace数据,作为分布式追踪的典型视图,这些视图允许用户从不同角度查看追踪数据,特别是 Span 间的耗时关系。
● 拓扑图支持点击展现和下钻单个服务的性能统计、Tracing、告警,也可以点击拓扑图中的关系线,展示服务之间、服务示例间的性能 Metrics
1. 登录TSE控制台。
2. 在左侧导航栏单击云原生 API 网关 > 可观测性,在页面上方选择好网关实例。
3. 单击 链接追踪 页签,在页面中间单击立即开启,开启链路追踪。
● 协议:支持 OpenTelemetry (推荐)、SkyWalking、Zipkin、aeger 四种协议。网关默认使用收到请求时客户端指定的链路追踪协议,如客户端未指定,将使用控制台指定的协议。
● API 业务系统:勾选后网关将使用该 APM 业务系统进行链路上报。
● 采样率:取值范围 0-100,0 为不采集,100 为每个请求都采集,默认为 10,采样率配置过高可能会影响性能。
说明:
● 如需展示完整调用链路,请确保网关下游服务使用相同的 APM 业务系统进行上报。应用上报方式请参考 腾讯云可观测平台 通过 OpenTelemetry 增强探针上报-应用性能监控-文档中心-腾讯云。
● 链路追踪由 登录 - 腾讯云 提供,具体计费项查看 腾讯云可观测平台 计费概述-购买指南-文档中心-腾讯云。
开启链路追踪后,在链路追踪页面,可以查看网关实例的调用链及详情。
1. 在调用链查询中,设置好查询条件,单击查询。
● 时间范围:支持特定和自定义时间范围选择。特定时间范围包括:近5分钟、近15分钟、近30分钟、近1小时、近3小时、近12小时和近1天。
● 响应时间:设置响应时间范围。
● Trace ID(可选):Trace ID。
● 服务:单击下拉框,在下拉框中选择要查询的服务,可以输入关键字进行搜索。
● 状态码(可选):状态码。
● 健康情况(可选):
○ 正常:根据响应时间和错误率评估,该调用正常。
○ 慢调用:该调用耗时执行超过2000ms。
○ 异常:该调用返回非 200 HTTP 状态码。
● 业务标签:网关用于链路追踪的标签。
2. 点击调用链的“ID”或者操作列的查看详情,可查看调用链的详细信息,包含调用信息详情和各阶段耗时。
开启链路追踪后,在服务基本信息页面,可以查看服务依赖拓扑图,根据服务拓扑图,您可以直观的了解服务的上下游组件与它们的调用关系,从而更快速地找出应用的瓶颈。
1. 在左侧导航栏选择路由管理,在页面上方选择好网关实例后,单击服务页签。
2. 单击要查看的服务名称,进入服务详情页面,在依赖拓扑模块,设置好时间范围后可以查看服务调用信息。
腾讯云可观测平台(TCOP)包含了云拨测(CAT),云压测(PTS)、前端/终端性能监控 (RUM)、应用性能监控(APM)、Prometheus & Grafana服务、以及云产品基础监控等多个子产品。其中,应用性能监控(APM)的全链路追踪能力,是基于 OpenTelemetry 的标准之上构建的,全面兼容开源标准,支持 OpenTelemetry、Jaeger、Skywalking、Zipkin 等多种Trace 协议上报,并且支持 Java、Python、PHP、Node.js 等多种语言的接入。
APM 的主要应用场景包括:
● 性能监控:实时监控应用程序的性能指标,如响应时间、吞吐量、错误率等,帮助发现性能瓶颈。
● 故障定位:通过链路追踪和异常检测,快速定位故障原因,提高故障处理效率。
● 资源优化:通过对应用程序的资源使用情况进行分析,帮助优化资源分配,提高系统性能。
● 业务洞察:通过分析用户行为和业务数据,为业务决策提供数据支持。
● 持续优化:通过持续监控和分析应用程序性能,为系统优化和架构调整提供依据。
结合 TSE 云原生 API 网关的链路追踪功能和 APM 系统,可以实现全链路性能管理,帮助企业提高应用程序的稳定性、可用性和响应速度,降低运维成本。