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,但是为啥不行,还没有找到原因。
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- Spring集成|Spring集成 Mina
- springboot使用redis缓存
- springboot整合数据库连接池-->druid
- SpringBoot中YAML语法及几个注意点说明
- springboot结合redis实现搜索栏热搜功能及文字过滤
- springboot中.yml文件的值无法读取的问题及解决