springboot|springboot 2.x集成prometheus

一、遇到的坑 本人在使用springboot2.0.6版本集成prometheus时,如果直接导入

io.micrometer micrometer-registry-prometheus

【springboot|springboot 2.x集成prometheus】启动时,就会直接报错。
Caused by: java.lang.NoClassDefFoundError: io/prometheus/client/CollectorRegistry at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.8.0_60] at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) ~[na:1.8.0_60] at java.lang.Class.getDeclaredMethods(Class.java:1975) ~[na:1.8.0_60] at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:641) ~[spring-core-5.0.10.RELEASE.jar:5.0.10.RELEASE] ... 20 common frames omitted Caused by: java.lang.ClassNotFoundException: io.prometheus.client.CollectorRegistry at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_60] at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_60] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_60] at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_60] ... 24 common frames omitted

试着使用springboot1.x集成prometheus的方式,还是不行。
后来直接查看springboot2.1.x版本的所依赖的jar包及版本,直接拿过来springboot2.0.6版本中,发现可以使用。具体解决方式如下所示。
二、如何解决 1、在pom中加入依赖包 1.1、基于springboot 2.0.x版本
org.springframework.boot spring-boot-starter-actuator io.micrometer micrometer-core io.micrometer micrometer-core 1.1.0 io.micrometer micrometer-registry-prometheus 1.1.0 io.micrometer micrometer-core

1.2、基于springboot 2.1.x 及以上版本
io.micrometer micrometer-registry-prometheus

2、放开端点访问
management: endpoints: web: exposure: include: "*"

3、验证 打开浏览器,访问 http://ip:port/actuator/prometheus
三、其他 其实springboot-2.0.6.RELEASE reference 文档 文档中,对应的micrometer-registry-prometheus版本是1.0.7,但是为啥不行,还没有找到原因。

    推荐阅读