一吏垮、遇到的坑
本人在使用springboot2.0.6版本集成prometheus時障涯,如果直接導入
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
啟動時,就會直接報錯膳汪。
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版本中粘我,發(fā)現(xiàn)可以使用。具體解決方式如下所示痹换。
二征字、如何解決
1、在pom中加入依賴包
1.1娇豫、基于springboot 2.0.x版本
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<exclusions>
<exclusion>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>1.1.0</version>
<exclusions>
<exclusion>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
</exclusion>
</exclusions>
</dependency>
1.2匙姜、基于springboot 2.1.x 及以上版本
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
2、放開端點訪問
management:
endpoints:
web:
exposure:
include: "*"
3冯痢、驗證
打開瀏覽器氮昧,訪問 http://ip:port/actuator/prometheus
三、其他
其實springboot-2.0.6.RELEASE reference 文檔 文檔中浦楣,對應的micrometer-registry-prometheus版本是1.0.7郭计,但是為啥不行,還沒有找到原因椒振。