技术新讯 > 电子通信装置的制造及其应用技术 > 一种API网关监控方法及系统与流程  >  正文

一种API网关监控方法及系统与流程

  • 国知局
  • 2024-10-09 15:43:22

本发明涉及云原生,具体为一种api网关监控方法及系统。

背景技术:

1、在云原生领域,api网关是重要的组成部分,它是流量的入口,也承担着安全防护、控制限流等职责。随着api网关在云原生系统中的作用日益突出,对api的指标监控也愈发引起人们的重视。api网关可以与众多的指标监控系统直接集成,实现指标监控的功能。比如可以与prometheus集成,实现api网关指标监控。集成方案简便可靠且得到行业验证,在一般的应用场景可以满足需求,但当需要对api网关指标监控进行深度定制,且考虑性能与稳定性时,则往往需要另行开发。

2、现有技术中,在《一种基于kong的api网关监控方法及系统》的专利中,通过kong的插件对api的性能指标进行监控,当客户端对api网关请求时,网关插件中的指标累计器开始计数,并将数据存储到共享空间。api网关会在定时器中将共享空间的数据上报后台服务,完成指标数据的存储。用户则可以通过api网关对指标进行查询统计。在上述专利中,指标的收集存储是通过共享空间与后台服务共同完成的。当api网关与共享空间,或者api网关与后台服务出现网络连接问题时,可能导致指标丢失。同时,先将指标存储到共享空间,再通过定时器将指标上报到后台服务的两阶段处理过程,存在数据一致性的风险和性能隐患。

3、因此,需要一种api网关监控方法及系统,用来解决现有api网关监控方法存在数据一致性的风险和性能隐患的问题;可以满足api网关指标监控的深度定制,同时提供高稳定性、高性能的能力。

技术实现思路

1、本发明的目的在于提供一种api网关监控方法及系统,以解决上述背景技术中提出的现有api网关监控方法存在数据一致性的风险和性能隐患的问题;可以满足api网关指标监控的深度定制,同时提供高稳定性、高性能的能力。

2、为实现上述目的,本发明提供如下技术方案:一种api网关监控方法,所述方法包括以下步骤:

3、多维度的指标定义;

4、通过时序数据库记录与统计指标;

5、通过定时器与队列将指标写入时序数据库。

6、优选的,多维度的指标定义的具体操作包括:

7、api网关的扩展插件采用功能逻辑与配置数据独立的设计模式,用户定义的业务指标项统统在配置文件中定义,在功能组件中,则对指标进行处理。

8、优选的,通过时序数据库记录与统计指标的具体操作包括:

9、时序数据库选用influxdb,将指标数据组建为influxdb要求的数据格式,influxdb的指标格式如下:

10、measurement_name,tag_key=tag_value field_key=field_value timestamp;

11、measurement:测量名称,类似于关系数据库中的表;

12、tag set:标签集,在measurement之后紧接着逗号隔开,用作查询的索引;

13、field set:字段集,是实际需要写入的指标数据;

14、timestamp:时间戳。

15、优选的,api网关与时序数据库的功能结构中,扩展插件封装influxdb的写入接口,将指标写入时序数据库,influxdb支持批量写入,单次请求最大写入5000行数据,为实现批量写入,除了api网关扩展插件除了需要封装批量写入接口,还要组装批量数据;由于api网关插件的生命周期隶属于api的调用的生命周期中,因此,批量数据需要存储在共享内存,在api网关中共享内存是通过share_dict实现,具体的数据结构是queue;

16、api网关通过扩展插件完成指标写入的功能,同时提供管理接口供指标查询,api网关的管理接口是对influxdb读取接口的封装,实现按照不同索引、时间范围对已经存储的监控指标进行统计查询,influxdb支持常见的统计函数,如count()、sum(),同时也支持模糊查询。

17、优选的,通过定时器与队列将指标写入时序数据库的具体操作包括:

18、api网关通过share_dict的共享内存存储不同api调用指标数据,数据以队列形式存储,而api网关通过定时器扫描队列数据,并将队列数据构建为批量数据,将其写入influxdb,将高并发调用期间的获取的指标数据先存储到队列。

19、一种api网关监控系统,所述系统由指标定义模块、指标统计模块以及指标存储模块组成;

20、指标定义模块,用于多维度的指标定义;

21、指标统计模块,用于通过时序数据库记录与统计指标;

22、指标存储模块,用于通过定时器与队列将指标写入时序数据库。

23、优选的,所述指标定义模块,api网关的扩展插件采用功能逻辑与配置数据独立的设计模式,用户定义的业务指标项统统在配置文件中定义,在功能组件中,则对指标进行处理。

24、优选的,所述指标统计模块,时序数据库选用influxdb,将指标数据组建为influxdb要求的数据格式,influxdb的指标格式如下:

25、measurement_name,tag_key=tag_value field_key=field_value timestamp;

26、measurement:测量名称,类似于关系数据库中的表;

27、tag set:标签集,在measurement之后紧接着逗号隔开,用作查询的索引;

28、field set:字段集,是实际需要写入的指标数据;

29、timestamp:时间戳。

30、优选的,所述指标统计模块,api网关与时序数据库的功能结构中,扩展插件封装influxdb的写入接口,将指标写入时序数据库,influxdb支持批量写入,单次请求最大写入5000行数据,为实现批量写入,除了api网关扩展插件除了需要封装批量写入接口,还要组装批量数据;由于api网关插件的生命周期隶属于api的调用的生命周期中,因此,批量数据需要存储在共享内存,在api网关中共享内存是通过share_dict实现,具体的数据结构是queue;

31、api网关通过扩展插件完成指标写入的功能,同时提供管理接口供指标查询,api网关的管理接口是对influxdb读取接口的封装,实现按照不同索引、时间范围对已经存储的监控指标进行统计查询,influxdb支持常见的统计函数,如count()、sum(),同时也支持模糊查询。

32、优选的,所述指标存储模块,api网关通过share_dict的共享内存存储不同api调用指标数据,数据以队列形式存储,而api网关通过定时器扫描队列数据,并将队列数据构建为批量数据,将其写入influxdb,将高并发调用期间的获取的指标数据先存储到队列。

33、与现有技术相比,本发明的有益效果是:

34、本发明提出的api网关监控方法及系统,通过多维度的指标定义,可以丰富api指标数据,为api指标的多维度监控奠定数据基础;通过引入时序数据库,而不是简单的集成常见的指标监控软件,可以实现指标数据的灵活处理,实现api指标监控的个性化定制,方便对api网关监控性能优化。时序数据库提供的批量写入接口,是实现指标写入性能优化的重要前提,减少了api网关与时序数据库的交互次数,节省了网络通信成本。通过存储队列+定时器的设计,采用生产者-消费者的模式,解耦指标获取与指标写入两个过程。在api调用过程中产生的指标写入存储队列,定时器则扫描存储队列,完成将指标写入influxdb的过程,不仅提高了api调用的效率,而且通过存储队列践行了批量写入时序数据库的接口;对api指标数据与influxdb数据做兼容性适配。同时,面对可能的网络通信问题,api网关将无法正常通信期间积压在存储队列的数据写入磁盘文件,并在检测到通信恢复时,将数据重新载入存储队列,继而将其写入influxdb,从而满足稳定性要求。

本文地址:https://www.jishuxx.com/zhuanli/20240929/309745.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。