CN111639010A - 一种基于Kong的Prometheus插件的改造方法 - Google Patents
一种基于Kong的Prometheus插件的改造方法 Download PDFInfo
- Publication number
- CN111639010A CN111639010A CN202010497958.1A CN202010497958A CN111639010A CN 111639010 A CN111639010 A CN 111639010A CN 202010497958 A CN202010497958 A CN 202010497958A CN 111639010 A CN111639010 A CN 111639010A
- Authority
- CN
- China
- Prior art keywords
- api
- plug
- prometheus
- kong
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000011426 transformation method Methods 0.000 title abstract description 4
- 238000012544 monitoring process Methods 0.000 claims abstract description 28
- 238000000034 method Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 5
- 230000000007 visual effect Effects 0.000 claims description 4
- 238000002372 labelling Methods 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 2
- 230000001131 transforming effect Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 6
- 239000000178 monomer Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000002715 modification method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种基于Kong的Prometheus插件的改造方法,属于网关监控领域,本发明基于Kong开发的API网关中发布的API绑定监控插件即Prometheus来监控API的一些指标,主要利用Prometheus的服务发现功能。修改插件源码,去掉不需要的metrics,完善API指标信息,实现了根据监控统计需求更改监控的API指标从而进行统计上报以监控API信息。
Description
技术领域
本发明涉及网关监控技术,尤其涉及一种基于Kong的Prometheus插件的改造方法。
背景技术
单体应用满足不了日趋增长的需求之后,微服务出现了。我们利用微服务的思想,将原来的单体应用进行微服务化。将原来集中于一体的功能(如商品、订单服务)进行拆分,每个功能模块又各自的自成体系的发布、运维等功能。这样就解决了单体应用的弊端。微服务化后就必须有统一的出入口,这种情况下,API网关就出现了。API网关很好的解决了微服务下调用、统一接入等问题。
Kong是一个在Nginx运行的Lua应用程序,由lua-nginx-module实现。Kong和OpenResty一起打包发行,其中已经包含了lua-nginx-module。OpenResty不是Nginx的分支,而是一组扩展其功能的模块。
Kong有着强大的RESTful API管理接口可通过插件扩展,插件使用lua编写,可自定义插件,也有很多自带的插件,比如Prometheus插件则是一个监控插件。这些插件可以支持安全认证、流量控制、日志等功能。
Kong官网的Prometheus插件提供的指标有很多,在实际应用中,并非每一个都会用到,目前的指标比较繁琐,API指标信息不完善。
发明内容
为了解决以上技术问题,本发明提供了一种基于Kong的Prometheus插件的改造方法,对API进行监控指标统计时,更好地兼容各业务,同时简洁API指标详情,提高可读性以及利用率。
本发明主要用于基于Kong开发的API网关中发布的API绑定监控插件即Prometheus来监控API的一些指标,主要利用Prometheus的服务发现功能。为了简洁化指标,修改插件源码,去掉不需要的metrics,完善API指标信息。本发明实现了根据监控统计需求更改监控的API指标从而进行统计上报以监控API信息。
本发明的技术方案是:
一种基于Kong的Prometheus插件的改造方法,其特征在于,
包括如下步骤:
1)、以Kong为核心,搭建好API网关平台,发布API时,为API绑定各个所需的插件,以及本文提到的Prometheus监控插件,用来对API进行监控,在创建pod的时候的yml文件中进行了配置,包括service,route,plugin等,在service上配置url即创建API是的后端地址;在route中绑定前面的服务,同时配置请求路径;在plugin里配置所用的插件,即本文中提到的Prometheus监控插件等。
2)、用户在发布API成功之后对API进行调用,每次调用后都会生产大量数据,这些信息全部被监控插件拿到。进行之后的加工操作,输出需要的API指标。
3)、插件将所有信息暂存,对同一类型的数据进行分类统计,划分为不同统计类型,比如次数类,量值类,状态类等。这也是Prometheus服务发现的功能,对各个值进行区分,合理的划分种类。
4)、对同一类信息进行标签化处理,添加标志,以及每个指标输出的格式样式进行改造。达到目标的需求。对接各业务,更加高可用。根据需求,对标签重新进行定义,以及修改标签等等。
5)、接下来就需要将每一类信息进行处理,同一类中,留下需求计划内的,删除不需要,最后整合这些数据,输出结果。
进一步的,
配置kong.yml文件,在里面配置一套服务包括service,route,plugin,插件配置好Prometheus监控插件。
修改kong.conf.default中plugins配置项,删掉后面的配置,加上Prometheus。
进一步的,
修改Prometheus源码,根据需求,筛选指标,删除不需要的指标,为指标重新进行定义,以及修改标签等等。
进一步的,
重新安装插件,重启Kong。
进行验证,执行curl命令,请求之前配置好的服务,curl http://localhost:8000+路径,例如步骤1中的route配置路径为/123,则发送请求为curl http://localhost:8000/123,则返回http://baidu.com的结果。然后执行命令curl http://locathost:8001/metrics即可返回所需的指标详情。
Prometheus提供了可视化的graph,在上述步骤5之后可在网页中输入地址,虚机ip+9090端口即可在页面中进行查看所需指标。更清晰简介。
本发明的有益效果是
符合自身网关所需要的监控指标,简洁化视觉效果,更高效地统计。并且在实际应用中,需要和其他业务进行对接,要有更好的兼容性,为了适应,为了需求,则更需要次方法进行完善,更好的满足需求。
附图说明
图1是进行统计上报以监控API信息的流程示意图;
图2是改造模拟流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在API网关中注册的API需要提供API的相关指标,从而很好的监控API,以进行相应的措施。但本身所用的已有的监控插件并不是根据自身的需求去量身定做每个指标,这就需要我们自己进行修改,完善。Kong是一个在Nginx运行的Lua应用程序,由lua-nginx-module实现。Kong的插件使用lua编写,需要熟悉lua语言,从而可根据自身需求,进行修改和完善API的监控指标
本发明公开了一种基于Kong的Prometheus插件改造方法。该方法主要用于基于Kong的无数据库模式开发的API网关中发布的API绑定监控插件即Prometheus来监控API的一些指标,主要利用Prometheus的服务发现功能。Kong官网的Prometheus插件提供的指标有很多,在实际应用中,并非每一个都会用到,为了简洁化指标,修改插件源码,对插件进行改造,完善API指标信息。
本发明实现了根据监控统计需求更改返回的API指标从而进行统计上报以监控API信息。如图1所示,详细过程如下:
1)、以Kong为核心,搭建好API网关平台,发布API时,为API绑定各个所需的插件,以及本文提到的Prometheus监控插件,用来对API进行监控,在创建pod的时候的yml文件中进行了配置,包括service,route,plugin等,在service上配置url即创建API时的后端地址;在route中绑定前面的服务,同时配置请求路径;在plugin里配置所用的插件,即本文中提到的Prometheus监控插件等。
2)、用户在发布API成功之后对API进行调用,每次调用后都会生产大量数据,这些信息全部被监控插件拿到。进行之后的加工操作,输出需要的API指标。
3)、插件将所有信息暂存,对同一类型的数据进行分类统计,划分为不同统计类型,比如次数类,量值类,状态类等。这也是Prometheus服务发现的功能,对各个值进行区分,合理的划分种类。
4)、对同一类信息进行标签化处理,添加标志,以及每个指标输出的格式样式进行改造。达到目标的需求。对接各业务,更加高可用。根据需求,对标签重新进行定义,以及修改标签等等。
5)、接下来就需要将每一类信息进行处理,同一类中,留下需求计划内的,删除不需要,最后整合这些数据,输出结果。
插件主要改造的就是上面两步处理阶段,流程如图2,改造模拟步骤如下(在虚机中创建一个缩小版的模型来叙述):
1)以Kong为核心,搭建好环境,配置kong.yml文件,在里面配置一套服务。
2)在Kong文件夹下,修改kong.conf.default(可自己修改为kong.conf)里的plugins配置项,删掉后面的配置,加上Prometheus。
3)修改Prometheus源码,在虚机中或者本地都可,本文介绍在本地。主要修改其中的exporter.lua和prometheus.lua。注:kong的所有插件都为lua语言编写,还需要了解lua语言才可去修改代码。exporter.lua中主要定义了指标的名称,标签,注释,调用等等。prometheus.lua中主要实现了具体的调用方法,计算方法等。
根据需求,筛选指标,删除不需要的指标,为指标重新进行定义,以及修改标签等等。
4)修改完后保存,将源码文件拖到虚机中,覆盖之前的插件,在此文件下,执行luarocks make命令进行重新安装,然后执行kong restart命令重启Kong(若未配置全局,则到Kong下再重启)。
5)进行验证成果,执行curl命令,请求之前配置好的服务,然后执行命令curlhttp://locathost:8001/metrics即可返回改造后的指标详情。
6)、Prometheus提供了可视化的graph,可在页面中进行查看所需指标。进行结果验证。更清晰简介。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种基于Kong的Prometheus插件的改造方法,其特征在于,
包括如下步骤:
1)以Kong为核心,搭建好API网关平台,发布API时,为API绑定各个所需的插件,以及Prometheus监控插件,用来对API进行监控,在创建pod的时候的yml文件中进行配置,包括service,route,plugin,在service上配置url即创建API时的后端地址;在route中绑定前面的服务,同时配置请求路径;在plugin里配置所用的插件,即Prometheus监控插件;
2)、在发布API成功之后对API进行调用,每次调用后生产的数据部被监控插件拿到;进行之后的加工操作,输出需要的API指标;
3)、插件将所有信息暂存,对同一类型的数据进行分类统计,划分为不同统计类型;
4)、对同一类信息进行标签化处理,添加标志,以及每个指标输出的格式样式进行改造;根据需求,对标签重新进行定义,以及修改标签;
5)、将每一类信息进行处理,同一类中,留下需求计划内的,删除不需要,最后整合这些数据,输出结果。
2.根据权利要求1所述的方法,其特征在于,
配置kong.yml文件,在里面配置一套服务即service,route,plugin,配置Prometheus监控插件。
3.根据权利要求2所述的方法,其特征在于,
修改kong.conf.default中plugins配置项,删掉后面的配置,加上Prometheus。
4.根据权利要求3所述的方法,其特征在于,
修改Prometheus源码,根据需求,筛选指标,删除不需要的指标,为指标重新进行定义,以及修改标签,修改完后保存。
5.根据权利要求4所述的方法,其特征在于,
重新安装插件,重启Kong。
6.根据权利要求5所述的方法,其特征在于,
若未配置全局,则到Kong下再重启。
7.根据权利要求5或6所述的方法,其特征在于,
进行验证,执行curl命令,请求之前配置好的服务,然后执行命令curl http://locathost:8001/metrics即可返回所需的指标详情。
8.根据权利要求7所述的方法,其特征在于,
Prometheus提供了可视化的graph,可在页面中进行查看所需指标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010497958.1A CN111639010A (zh) | 2020-06-04 | 2020-06-04 | 一种基于Kong的Prometheus插件的改造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010497958.1A CN111639010A (zh) | 2020-06-04 | 2020-06-04 | 一种基于Kong的Prometheus插件的改造方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111639010A true CN111639010A (zh) | 2020-09-08 |
Family
ID=72329687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010497958.1A Pending CN111639010A (zh) | 2020-06-04 | 2020-06-04 | 一种基于Kong的Prometheus插件的改造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111639010A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553740A (zh) * | 2022-03-11 | 2022-05-27 | 以萨技术股份有限公司 | 一种跨网监控的方法、系统、可读存储介质及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110856040A (zh) * | 2019-11-07 | 2020-02-28 | 网易(杭州)网络有限公司 | 客户端中监控数据的处理方法和装置 |
US20200137029A1 (en) * | 2018-10-29 | 2020-04-30 | Hewlett Packard Enterprise Development Lp | Secure channel for cloud deployment unit |
CN111176948A (zh) * | 2019-12-30 | 2020-05-19 | 苏州思必驰信息科技有限公司 | 个性化业务指标的监控方法及系统 |
-
2020
- 2020-06-04 CN CN202010497958.1A patent/CN111639010A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200137029A1 (en) * | 2018-10-29 | 2020-04-30 | Hewlett Packard Enterprise Development Lp | Secure channel for cloud deployment unit |
CN110856040A (zh) * | 2019-11-07 | 2020-02-28 | 网易(杭州)网络有限公司 | 客户端中监控数据的处理方法和装置 |
CN111176948A (zh) * | 2019-12-30 | 2020-05-19 | 苏州思必驰信息科技有限公司 | 个性化业务指标的监控方法及系统 |
Non-Patent Citations (2)
Title |
---|
忙碌的柴少: "Prometheus对标签的操作(五)", 《柴少的官方网站》 * |
李飘柔: "聊一聊微服务网关kong近期的模型变迁", 《知乎》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553740A (zh) * | 2022-03-11 | 2022-05-27 | 以萨技术股份有限公司 | 一种跨网监控的方法、系统、可读存储介质及设备 |
CN114553740B (zh) * | 2022-03-11 | 2023-11-10 | 以萨技术股份有限公司 | 一种跨网监控的方法、系统、可读存储介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109284251A (zh) | 日志管理方法、装置、计算机设备以及存储介质 | |
CN102693127B (zh) | 用于描述并执行图形用户界面中的管理任务的数据驱动模式 | |
CN111666490A (zh) | 基于kafka的信息推送方法、装置、设备及存储介质 | |
CN105094754A (zh) | 基于标签的程序开发方法、页面请求响应方法及其装置 | |
CN108399072A (zh) | 应用页面更新方法和装置 | |
CN109146095A (zh) | 多业务系统问题的处理方法和装置 | |
CN110895472A (zh) | 一种识别业务变更的方法和装置 | |
CN109814896A (zh) | 服务器升级方法、装置、计算机系统及可读存储系统 | |
CN111198892A (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN112017007A (zh) | 用户行为数据的处理方法及装置、计算机设备、存储介质 | |
CN103946794A (zh) | 数据特征的滚动升级的系统和方法 | |
CN104052626A (zh) | 配置网元数据的方法、装置和系统 | |
CN114844792A (zh) | 基于lua语言的动态监控方法、装置、设备及存储介质 | |
CN113535677B (zh) | 数据分析查询管理方法、装置、计算机设备及存储介质 | |
CN111639010A (zh) | 一种基于Kong的Prometheus插件的改造方法 | |
CN110765610B (zh) | Pdm集成方法、装置、计算机设备及存储介质 | |
CN111338717B (zh) | 接口调用方法、应用程序升级方法及服务器和客户端 | |
CN113434175A (zh) | 数据处理方法、装置、存储介质及设备 | |
CN111045928B (zh) | 一种接口数据测试方法、装置、终端及存储介质 | |
WO2021189766A1 (zh) | 数据可视化方法及相关设备 | |
CN107133040A (zh) | 一种标准产品业务装置及业务模块扩展置换方法 | |
CN112132641A (zh) | 电子发票生成系统及方法 | |
CN101635711B (zh) | 可编程字符通讯方法 | |
CN116360769A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN116450723A (zh) | 数据提取方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200908 |
|
RJ01 | Rejection of invention patent application after publication |