没有 @EnableAutoConfiguration 的 Spring Actuator 指标问题 [英] Problem with Spring Actuator metrics without @EnableAutoConfiguration

查看:117
本文介绍了没有 @EnableAutoConfiguration 的 Spring Actuator 指标问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我基于 Springboot 的应用程序中,我不能使用 @EnableAutoConfiguration 因此我必须手动将所有配置添加到 @Import 注释.我知道如何启用通用端点 /actuator 和其他一些像 /actuator/health/actuator/env (下面的例子).然而,即使我尝试了数千个选项,我也无法使 metrics 工作(使用 @EnableAutoConfiguration 它可以工作).我的配置如下:

In my Springboot-based app I cannot use @EnableAutoConfiguration therefore I must add all configurations manually to @Import annotation. I know how to enable general endpoint /actuator and some others like /actuator/health or /actuator/env (example below). However even though I tried thousands options I cannot make metrics working (with @EnableAutoConfiguration it works). My config is as follows:

@SpringBootConfiguration
@ComponentScan(excludeFilters = { @ComponentScan.Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
        @ComponentScan.Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
@Import({
        ServletWebServerFactoryAutoConfiguration.class,
        DispatcherServletAutoConfiguration.class,
        WebMvcAutoConfiguration.class,

        ManagementContextAutoConfiguration.class,
        EndpointAutoConfiguration.class,
        WebEndpointAutoConfiguration.class,

        HealthIndicatorAutoConfiguration.class,
        HealthEndpointAutoConfiguration.class,

        EnvironmentEndpointAutoConfiguration.class,

        //---------- configs metrics related: 
        MetricsAutoConfiguration.class,
        CompositeMeterRegistryAutoConfiguration.class,
        JvmMetricsAutoConfiguration.class,
        MetricsEndpointAutoConfiguration.class,
        SystemMetricsAutoConfiguration.class,
        SimpleMetricsExportAutoConfiguration.class,
        WebMvcMetricsAutoConfiguration.class
}
)
public class Application {

    public static void main(String[] args) {
        ApplicationContext ctx = SpringApplication.run(Application.class, args);
    }

}

使用这样的配置,即使我可以看到 /actuator 页面上列出的 metrics 端点:执行器主页

With such config even though I can see metrics endpoint listed on /actuator page: actuator main page

如果我去那里,它会显示空集合:无指标

if I go there it it shows empty collection: no metrics

并且它应该包含系统和 jvm 指标(以及第一次 http 调用后的 http 端点指标).知道我应该怎么做才能启用 Spring Actuator 指标吗?

And it should contain system and jvm metrics (and http endpoints metrics after first http call). Any idea what I should do in order to enable Spring Actuator metrics?

推荐答案

我找到了解决办法,metrics导入的顺序不对,顺序应该如下:

I found a solution, the order of metrics imports was incorrect, the order should be as follows:

        MetricsAutoConfiguration.class,
        SimpleMetricsExportAutoConfiguration.class,
        CompositeMeterRegistryAutoConfiguration.class,
        JvmMetricsAutoConfiguration.class,
        MetricsEndpointAutoConfiguration.class,
        SystemMetricsAutoConfiguration.class,
        WebMvcMetricsAutoConfiguration.class

这篇关于没有 @EnableAutoConfiguration 的 Spring Actuator 指标问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆