Andrzej Bednarz
Andrzej Bednarz

Reputation: 21

Problem with Spring Actuator metrics without @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);
    }

}

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

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?

Upvotes: 1

Views: 1441

Answers (1)

Andrzej Bednarz
Andrzej Bednarz

Reputation: 21

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

Upvotes: 1

Related Questions