一、概述
在常规的运维配置中,每新增一个应用,我们就需要修改Prometheus 的配置文件,重启Prometheus,在这种情况下对于运维监控带来操作不便及较大的维护成本。针对以上问题,Prometheus能不能每新增一个服务可以进行服务发现,自动的去获取服务信息并进行监控呢?
二、实现思路
目前我们项目的配置与注册中心使用的是nacos,更改nacos源码和监控nacos,难度大,作用小。通过nacos+gateway 实现动态路由配置的方案,再gateway上实现Prometheus 对服务自动监控。
本文的思路根据 开源项目:
https://github.com/chen-gliu/nacos-consul-adapter 的思路,进行一些改进。
在gateway进行路由监听时,同时将Prometheus所需要的参数组装,发送至服务器,进行注册监听。具体实现请看插件nacos-consul-adapter 的 源码 。
监听并发现服务:
组装成对应的监控信息:
在Prometheus 只需要配置gateway 服务的监控即可:
其效果为:
省去了新增服务就需要修改Prometheus配置文件的问题。