Kong与prometheus和grafana的配置研究

标签:
kongprometheusgrafana指标rps |
分类: kong |
Kong包含了prometheus的插件,该插件可以用来采集kong代理的api的调用日志,并通过使用grafana进行展示。本篇文章的目的不在于如何对三者进行整合配置,整合配置的文章可以参考:https://www.jianshu.com/p/def5fa595a31。对关键的三个配置点说明如下:
1、 Kong产生prometheus的格式日志并对外暴露:kong的prometheus插件主要用来将kong网关产生的日志数据记录并通过kong的admin API(/metrics)进行暴露。配置了该插件后网关可以通过http://127.0.0.1:8001/ metrics查看调用日志数据:
2、 prometheus通过kong的/metrics来读取调用日志,这个配置在prometheus的配置文件中的Targets属性,增加kong网关的管理IP和端口。
3、 Grafana的配置,增加DataBase和DashBoard,其中DataBase的源选择prometheus类型,地址填写prometheus的IP和9090服务端口。DashBoard选择导入,导入时填写7424(这个是kong官方提供的几个监控指标)即可。
通过调用服务得到效果如下,详细的配置请参考最上面给出的文章衔接。
做到这里,可能我们有些人觉得已经满足了,但我们不仅要会配置,还要会使用以及会解读这些指标的含义。Kong官方给出的监控指标如下:
1、 Total requests per second (RPS) 每秒的总请求数,但实际上指标显示的是每30秒统计的所有调用日志的耗时曲线。
2、 RPS per route/service 按路由/服务的每秒请求数,但实际上指标显示的是每30秒统计的按路由/服务分类的耗时曲线。
3、 RPS per route/service by status code 按路由/服务及返回状态码的每秒请求数,但实际上指标显示的是每30秒统计的按路由/服务+状态码分类的耗时曲线。
4、 Latencies 包含9个指标,分别指网关代理时间、请求的时间、上游服务的时间与所有服务(路由+业务+上游)、单个业务服务、单个路由的组合。
5、 Bandwidth 带宽统计,包含三个图表,出入的总带宽流量统计。Egress每个服务/路由流量流出统计。Ingress每个服务/路由流量流入统计。
6、 Caching 缓存统计
7、 Nginx统计,包含连接状态的时间和处理耗时变化的曲线图,总连接数、处理连接数、已接收的连接数的变化曲线。
所有的指标的原始数据都是由kong的prometheus插件生成的,可以看到以上的有些指标数据并不完全符合我们的要求,kong官方提供的Grafana报表也并一定能完全满足我们的业务需要,因此核心还是如何改造kong的插件和如何使用Grafana建立新的报表和图表格式。后面我将写一篇文章专门来介绍。