图形网站建设软件,互联网黄页广告,wordpress php7,做女装的看哪个网站好最近公司在推Prometheus#xff0c;记录下如何与SpringBoot项目做整合。 Prometheus上图均取自于Prometheus官网#xff0c;关于Prometheus是什么怎么用#xff0c;官网都有很清晰的说明。在其特征描述中可以看到#xff1a;以调用HTTP接口的形式#xff0c;拉取已经被收集…最近公司在推Prometheus记录下如何与SpringBoot项目做整合。Prometheus上图均取自于Prometheus官网关于Prometheus是什么怎么用官网都有很清晰的说明。在其特征描述中可以看到以调用HTTP接口的形式拉取已经被收集好的时序数据。简单来讲业务集成Prometheus这个事情分为两步- 第一步业务方Prometheus tragets收集好指标metrics后以接口的形式暴露出来。- 第二步Prometheus Server会对业务方暴露的接口发起HTTP调用pull metrics最后Prometheus拿到业务方收集好的指标后以图形化界面展示出来Prometheus web UI、Grafana作为业务方需要清楚如何收集自己服务的指标并以接口的形式暴露。初期接入Prometheus考虑只收集一些系统级指标业务级指标可根据官网文档自己实现。而系统指标的收集比如虚拟机线程、堆的使用情况SpringBoot已经为我们提供了这个能力Spring Boot Actuator。Spring Boot Actuator在Spring官网有对Spring Boot Actuator的说明最新的2.3.0.RELEASE文档。使用也很简单引入依赖即可org.springframework.boot spring-boot-starter-actuatorSpring Boot Actuator中存在Endpoints的概念上图为官网给出的endpoints。比如常用的健康检查接口以/actuator/health暴露对应的endpoints为/health。在2.3.0.RELEASE版本中暴露的接口路径统一前缀为/actuator。由于这些endpoints都是服务内部敏感的接口在2.3.0.RELEASE中默认只暴露/helath和/info接口如果想暴露其他接口需要在配置文件中开启。开启暴露endpoints配置例如/beans和/metricsmanagement: endpoints: web: exposure: include: - beans - metrics其中的endpoints metrics暴露当前服务的指标看起来很适合提供给Prometheus以获取指标。但是Prometheus对获取的指标数据格式是要求的而metrics暴露的指标数据格式是JSON与要求的指标格式不匹配。不过Spring Boot Actuator在2.3.0.RELEASE版本中已经为我们考虑到了这一点至于是从哪个版本开始支持的 。只需要引入micrometer-registry-prometheus的依赖即可记得在配置文件中开启/prometheus接口的暴露io.micrometer micrometer-registry-prometheus 1.5.1简单demo启动服务后访问/actuator/prometheus接口可以看到Micrometer替我们收集到的指标2.3.0.RELEASE版本很顺利但是问题来了生产用的SpringBoot是1.5.4.RELEASE版本而1.5.4.RELEASE版本文档没有提供对endpoints /prometheus的支持。最后在Micrometer官网找到了解决的办法。MicrometerMicrometer整合SpringBoot1.5.X版本的文档文档中有详细描述SpringBoot1.5.X项目如何暴露Prometheus接口只需要再引入Micrometer为低版本SpringBoot项目提供的适配依赖注意版本一致io.micrometer micrometer-registry-prometheus 1.0.5 io.micrometer micrometer-spring-legacy 1.0.5简单demo启动服务后访问/prometheus接口可以看到Micrometer收集到的指标现在2.3.0.RELEASE和1.5.4.RELEASE版本的服务都可以成功暴露出一个给Prometheus拉取指标的接口只需要在Prometheus上进行配置即可在Prometheus WEB UI上看到效果。但生产环境的真实情况不可能只收集一个服务的指标是否再需要一个代理服务该服务用来收集所有微服务的指标后再统一暴露接口给Prometheus需要再根据生产环境使用情况考虑。