首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SpringBoot2.0 Prometheus向后兼容性

SpringBoot2.0 Prometheus向后兼容性
EN

Stack Overflow用户
提问于 2018-03-30 08:11:43
回答 2查看 4K关注 0票数 9

我正在迁移到SpringBoot2.0,并且我的Prometheus有问题。

我知道MicroMeter是一种新的做事方式,它不像普罗米修斯那样清脆,但没问题。

我的问题是,如果我现在不想改变我的指标,我就不能升级到SpringBoot2.0。我说的对吗?

我尝试了以下几点:

1号试验

  • 保持我的实现“原样”
  • 将新的依赖项io.micrometer:micrometer-registry-prometheus:1.0.2添加到我的应用程序中(执行器已经在其中)
  • 更改application.properties中的内容以获得对端点actuator/prometheus的访问

=>,我的Counters和过去的Gauges被忽视了。好的,我从技术角度理解这一点。

试验2号

  • 保持我的实现“原样”
  • 添加“旧”'io.prometheus‘依赖项并删除微米依赖项
  • 更改application.properties中的内容以获得对端点actuator/prometheus的访问

=>,现在我得到以下的补充:

代码语言:javascript
复制
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.actuate.endpoint.AbstractEndpoint
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_161]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_161]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338) ~[na:1.8.0_161]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_161]
... 37 common frames omitted

因此,我的问题是:是否有一种“软迁移”的方式有效?

EN

回答 2

Stack Overflow用户

发布于 2018-03-31 21:47:56

要使第1号试验有效,只需将Prometheus默认注册表添加为千分尺能够利用的bean即可。

代码语言:javascript
复制
@Bean
public CollectorRegistry collectorRegistry() {
    return CollectorRegistry.defaultRegistry;
}

千分表在默认情况下不使用默认注册表,因为它不允许不注册仪表,并且会使单元测试相当困难。

要使第2号试运行,需要重新实现prometheus执行器端点,因为这个类随着SpringBoot 2而发生了巨大的变化,我不推荐这种方法。

票数 5
EN

Stack Overflow用户

发布于 2019-06-03 12:02:29

我花了很长时间才找到真正的问题,相反,我不得不调试Spring代码来解决这个问题。这里是解决方案,您需要将“微米-核心”从“弹簧启动-启动-执行器”中排除,并添加“微米-注册表-普罗米修斯”,具体如下:

代码语言:javascript
复制
  <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-registry-prometheus</artifactId>
    </dependency>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49570812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档