下图是我利用 Prometheus 和 SpringBoot 搭的一个指标监控架构,这块内容包括实现的源码可以看我的 Github,如果对你有帮助可以点个 Star 支持一下。下面主要说明一下 SpringBoot 如何和 Prometheus 对接,这么做的目的是什么呢?我们知道 Prometheus 可以做到监控报警的功能,但如果你自己想扩展,比如想用钉钉的方式去报警,就必须自己扩展。下面解释一下处理的逻辑。
后台处理的流程为,首先运维人员需要安装目标监控对象对应 Exporter,也就是在目标服务器上安装上 Agent,并做好对应配置,将指标信息能够发送到 Prometheus;
之后 Prometheus 会以 Pull 的方式拉取 Exporter 采集的指标;接下来需要在 Prometheus 配置你自己的监控规则,之后 Prometheus 会以 Push 的方式推送到 Alertmanager;
下一步配置 Alertmanager 报警的规则,当达到报警要求时,Alertmanager 会通过 Webhook 的方式发送给 SpringBoot 后端,在由 SpringBoot 通过钉钉、邮箱、短信的方式通知对应的人,还会根据传来的报警信息的 Label,进行数据的写入,以及相关操作,为之后的业务提供基础。
下图为该流程的时序图。