一种API网关实现链路跟踪的方法及系统与流程

专利2024-03-26  87

一种api网关实现链路跟踪的方法及系统
技术领域
:1.本发明涉及软件开发
技术领域
:,具体地说是一种api网关实现链路跟踪的方法及系统。
背景技术
::2.随着云计算、人工智能和大数据行业的快速发展,越来越多的应用程序接口通过api网关技术开放给互联网开发者调用,开放后端能力,将自身优势转化为经济价值。3.当使用api网关的时候,如果某个注册接口返回结果错误或者请求响应延迟高,并不能直接观测哪个环节出现问题,此时就需要将整条api链路请求串连起来并保证整个链路拓扑数据准确。技术实现要素:4.本发明的技术任务是针对以上不足之处,提供一种api网关实现链路跟踪的方法及系统,能够实时监控api的调用情况,多维展示从网关到上游端点的拓扑关系,方便api提供者分析api性能,提升系统稳定性。5.本发明解决其技术问题所采用的技术方案是:6.一种api网关实现链路跟踪的方法,基于kong自定义插件、kubernetes和kong-plugin-skywalking插件实现api网关链路跟踪的功能,对api网关注册接口调用各项指标进行性能监控;7.该方法的实现包括skywalking插件安装、监控数据上报以及链路拓扑图查看,api网关控制台链路拓扑插件安装页面点击安装插件,安装成功后跳转到链路拓扑图展示页面;当api调用时,api网关通过skywalking插件上报采集数据到apmserver;通过链路拓扑图展示页面查看指定时间内api性能监控拓扑数据。8.skywalking是一种分布式系统的应用程序性能监视系统,专为微服务、云原生架构和基于容器(docker、k8s)架构而设计。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。9.本方法中api网关基于skywalking实现链路跟踪,从而实现实时监控api的调用情况,多维展示从网关到上游端点的拓扑关系,方便api提供者分析api性能,提升系统稳定性。10.优选的,当api安装skywalking插件时,控制台后端生成插件所需要的配置,包括:11.链路跟踪数据上报地址,调用api时,通过该地址将采集的链路数据上报给apmserver;12.服务名称和服务实例名称,用于在上报数据后筛选出每条api的链路跟踪数据;13.apm项目id,即安装skywalking插件时,选择的项目所对应的id;14.调用上报数据地址时apmserver权限认证信息,该参数通过调用apm获取licencekey接口获得;15.采样率,安装插件时可自定义采样率大小,不定义则采用随机采样的方式上报数据。16.进一步的,每个api的服务实例名称都是唯一的。17.优选的,api安装skywalking插件时,创建skywalking插件配置,并随其他配置发布到线上环境。网关检测到配置更新后启用skywalking插件,当用户调用网关api时,skywalking插件采集api链路跟踪的信息并上报到apmserver。18.优选的,skywalking监控java、golang、node、.net语言的链路都是采用sdk或者agent的方式将数据上报到skyalking后端;采用grpc的方式与后端交互。19.skywalking-kong-plugin考虑到nginx足以胜任10k以上并发连接响应,并没有采用grpc的方式,因此可通过http请求上报数据。20.优选的,skywalking基于tracing、logging和metrics三个维度实现遥测分析、度量聚合和可视化一体化解决方案,21.tracing:在单次请求的范围内处理信息,任何的数据、元数据信息都被绑定到系统中的单个事务上;例如:一次调用远程服务的rpc执行过程;一次实际的sql查询语句;一次http请求的业务性id;22.logging:日志,记录处理的离散事件;比如我们应用的调试信息或者错误信息等发送到es;审计跟踪时间信息通过kafka处理送到bigtable等数据仓储等等,大多数情况下记录的数据很分散,并且相互独立,也许是错误信息,也许仅仅只是记录当前的事件状态,或者是警告信息等等。23.metrics:即一段时间内某个度量(计数器或者直方图)的原子或者是元数据。当我们想知道我们服务的请求qps是多少,或者当天的用户登录次数等等,这时我们可能需要将一部分事件进行聚合或计数,也就是我们说的metrics。可聚合性即是metrics的特征,它们是一段时间内某个度量(计数器或者直方图)的原子或者是元数据。例如接收的http数量可以被建模为计数器,每次的http请求即是我们的度量元数据,可以进行简单的加法聚合,当持续了一段时间我们又可以建模为直方图。24.优选的,前端通过调用apm链路拓扑相关接口获取链路拓扑指标数据,根据选择时间范围,拓扑图中可展示从用户调用经过api网关再到上游服务的拓扑信息,网关节点可展示平均响应耗时、请求成功率和每分钟请求次数信息。25.优选的,该方法实现的过程如下:26.1)、控制台安装skywalking插件;27.2)、网关检测到配置更新启用skywalking插件;28.3)、用户请求网关api;29.4)、skywalking插件采集链路跟踪数据并上报给apmserver;30.5)、拓扑图查看api链路拓扑数据。31.进一步的,该方法的实现包括api管理部分和链路拓扑部分,api管理部分包括api的创建、修改、发布、下线以及删除;链路拓扑部分包括skywalking插件安装、拓扑图展示和解绑插件;当api安装skywalking插件后,链路拓扑功能才能使用。32.本发明还要求保护一种api网关实现链路跟踪的系统,该系统实现上述的api网关实现链路跟踪的方法。33.本发明的一种api网关实现链路跟踪的方法及系统与现有技术相比,具有以下有益效果:34.本方法中api网关基于skywalking实现链路跟踪,当启用skywalking插件后,通过跟踪采集api的链路信息,可多维展示从网关到上游端点的拓扑关系,方便api提供者分析api性能,提升系统稳定性。附图说明35.图1是本发明实施例提供的api网关实现链路跟踪的方法实现流程示图。具体实施方式36.下面结合附图和具体实施例对本发明作进一步说明。37.本发明实施例提供了一种api网关实现链路跟踪的方法,基于kong自定义插件、kubernetes和kong-plugin-skywalking插件实现api网关链路跟踪的功能,对api网关注册接口调用各项指标进行性能监控。38.本方法的实现包括api管理部分和链路拓扑部分,api管理部分包括api的创建、修改、发布、下线以及删除;链路拓扑部分包括skywalking插件安装、拓扑图展示和解绑插件;当api安装skywalking插件后,链路拓扑功能才能使用。39.skywalking是一种分布式系统的应用程序性能监视系统,专为微服务、云原生架构和基于容器(docker、k8s)架构而设计。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。40.本方法中api网关基于skywalking实现链路跟踪,包括:41.控制台,42.主要包括skywalking插件安装,监控数据上报以及链路拓扑图查看。api网关控制台skywalking插件安装页面点击安装插件,安装成功后跳转到链路拓扑图展示页面;当api调用时,api网关通过链路拓扑插件上报采集数据到apmserver,这时可通过链路拓扑图展示页面查看指定时间内api性能监控拓扑数据。43.插件配置,44.当api安装skywalking插件时,控制台后端生成插件所需要的配置。45.以下是插件配置信息[0046][0047]配置说明:[0048]backend_http_uri为链路跟踪数据上报地址,调用api时,通过该地址将采集的链路数据上报给apmserver;[0049]service_name和service_instance_name为服务实例名称,为了在上报数据后筛选出每条api的链路跟踪数据,这里每个api服务实例名称都是唯一的;[0050]project_id为apm项目id,此处项目id是安装skywalking插件时,选择的项目所对应的id;[0051]authentication为调用上报数据地址时,apmserver权限认证信息,该参数通过调用apm获取licencekey接口获得;[0052]sample_ratio为采样率,安装插件时可自定义采样率大小,不定义则采用随机采样的方式上报数据。[0053]网关,[0054]api安装skywalking插件时,创建skywalking插件配置,并随其他配置发布到线上环境。网关检测到配置更新后启用skywalking插件,当用户调用网关api时,skywalking插件采集api链路跟踪的信息并上报到apmserver。[0055]skywalking监控java、golang、node、.net语言的链路都是采用了sdk或者agent的方式将数据上报到skyalking后端,不过都是采用grpc的方式和后端交互,skywalking-kong-plugin考虑到nginx足以胜任10k以上并发连接响应,并没有采用grpc的方式,因此可通过http请求上报数据。[0056]skywalking基于tracing、logging和metrics三个维度实现遥测分析、度量聚合和可视化一体化解决方案。[0057]tracing:在单次请求的范围内处理信息。任何的数据、元数据信息都被绑定到系统中的单个事务上。例如:一次调用远程服务的rpc执行过程;一次实际的sql查询语句;一次http请求的业务性id;[0058]logging:日志。logging即是记录处理的离散事件,比如我们应用的调试信息或者错误信息等发送到es;审计跟踪时间信息通过kafka处理送到bigtable等数据仓储等等,大多数情况下记录的数据很分散,并且相互独立,也许是错误信息,也许仅仅只是记录当前的事件状态,或者是警告信息等等。[0059]metrics:当我们想知道我们服务的请求qps是多少,或者当天的用户登录次数等等,这时我们可能需要将一部分事件进行聚合或计数,也就是我们说的metrics。可聚合性即是metrics的特征,它们是一段时间内某个度量(计数器或者直方图)的原子或者是元数据。例如接收的http数量可以被建模为计数器,每次的http请求即是我们的度量元数据,可以进行简单的加法聚合,当持续了一段时间我们又可以建模为直方图。[0060]链路拓扑,[0061]前端通过调用apm链路拓扑相关接口获取链路拓扑指标数据。根据选择时间范围,拓扑图中可展示从用户调用经过api网关再到上游服务的拓扑信息,网关节点可展示平均响应耗时、请求成功率和每分钟请求次数信息。[0062]如图1所示,该方法实现的过程如下:[0063]1)、控制台安装skywalking插件;[0064]2)、网关检测到配置更新启用skywalking插件;[0065]3)、用户请求网关api;[0066]4)、skywalking插件采集链路跟踪数据并上报给apmserver;[0067]5)、拓扑图查看api链路拓扑数据。[0068]本方法中api网关基于skywalking实现链路跟踪,从而实现实时监控api的调用情况,多维展示从网关到上游端点的拓扑关系,方便api提供者分析api性能,提升系统稳定性。[0069]本发明实施例还提供了一种api网关实现链路跟踪的系统,该系统实现上述实施例中所述的api网关实现链路跟踪的方法。[0070]通过上面具体实施方式,所述
技术领域
:的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述
技术领域
:的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。[0071]除说明书所述的技术特征外,均为本专业技术人员的已知技术。当前第1页12当前第1页12
技术特征:
1.一种api网关实现链路跟踪的方法,其特征在于,基于kong自定义插件、kubernetes和kong-plugin-skywalking插件实现api网关链路跟踪的功能,对api网关注册接口调用各项指标进行性能监控;该方法的实现包括skywalking插件安装、监控数据上报以及链路拓扑图查看,api网关控制台链路拓扑插件安装页面点击安装插件,安装成功后跳转到链路拓扑图展示页面;当api调用时,api网关通过skywalking插件上报采集数据到apm server;通过链路拓扑图展示页面查看指定时间内api性能监控拓扑数据。2.根据权利要求1所述的一种api网关实现链路跟踪的方法,其特征在于,当api安装skywalking插件时,控制台后端生成插件所需要的配置,包括:链路跟踪数据上报地址,调用api时,通过该地址将采集的链路数据上报给apm server;服务名称和服务实例名称,用于在上报数据后筛选出每条api的链路跟踪数据;apm项目id,即安装skywalking插件时,选择的项目所对应的id;调用上报数据地址时apm server权限认证信息,该参数通过调用apm获取licencekey接口获得;采样率,安装插件时可自定义采样率大小,不定义则采用随机采样的方式上报数据。3.根据权利要求2所述的一种api网关实现链路跟踪的方法,其特征在于,每个api的服务实例名称都是唯一的。4.根据权利要求1所述的一种api网关实现链路跟踪的方法,其特征在于,api安装skywalking插件时,创建skywalking插件配置,并随其他配置发布到线上环境;网关检测到配置更新后启用skywalking插件,当用户调用网关api时,skywalking插件采集api链路跟踪的信息并上报到apm server。5.根据权利要求4所述的一种api网关实现链路跟踪的方法,其特征在于,skywalking监控java、golang、node、.net语言的链路都是采用sdk或者agent的方式将数据上报到skyalking后端;采用grpc的方式与后端交互。6.根据权利要求4或5所述的一种api网关实现链路跟踪的方法,其特征在于,skywalking基于tracing、logging和metrics三个维度实现遥测分析、度量聚合和可视化一体化解决方案,tracing:在单次请求的范围内处理信息,任何的数据、元数据信息都被绑定到系统中的单个事务上;logging:日志,记录处理的离散事件;metrics:即一段时间内某个度量的原子或者元数据。7.根据权利要求1所述的一种api网关实现链路跟踪的方法,其特征在于,前端通过调用apm链路拓扑相关接口获取链路拓扑指标数据,根据选择时间范围,拓扑图中可展示从用户调用经过api网关再到上游服务的拓扑信息,网关节点可展示平均响应耗时、请求成功率和每分钟请求次数信息。8.根据权利要求1或2或4或7所述的一种api网关实现链路跟踪的方法,其特征在于,该方法实现的过程如下:1)、控制台安装skywalking插件;
2)、网关检测到配置更新启用skywalking插件;3)、用户请求网关api;4)、skywalking插件采集链路跟踪数据并上报给apm server;5)、拓扑图查看api链路拓扑数据。9.根据权利要求8所述的一种api网关实现链路跟踪的方法,其特征在于,该方法的实现包括api管理部分和链路拓扑部分,api管理部分包括api的创建、修改、发布、下线以及删除;链路拓扑部分包括skywalking插件安装、拓扑图展示和解绑插件;当api安装skywalking插件后,链路拓扑功能才能使用。10.一种api网关实现链路跟踪的系统,其特征在于,该系统实现权利要求1-9任一项所述的api网关实现链路跟踪的方法。

技术总结
本发明公开了一种API网关实现链路跟踪的方法及系统,属于软件开发技术领域,该方法的实现包括Skywalking插件安装、监控数据上报以及链路拓扑图查看,API网关控制台链路拓扑插件安装页面点击安装插件,安装成功后跳转到链路拓扑图展示页面;当API调用时,API网关通过Skywalking插件上报采集数据到APM Server;通过链路拓扑图展示页面查看指定时间内API性能监控拓扑数据。本发明能够实时监控API的调用情况,多维展示从网关到上游端点的拓扑关系,方便API提供者分析API性能,提升系统稳定性。提升系统稳定性。提升系统稳定性。


技术研发人员:栗凯 朱璐 张旭 玄德
受保护的技术使用者:浪潮云信息技术股份公司
技术研发日:2022.07.05
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-7359.html

最新回复(0)