Spring Boot Actuator для не загрузочного приложения - измените базовый путь конечных точек

Мы разрабатываем веб-приложение на основе Spring (4.1.1), и я пытаюсь интегрировать Actuator, чтобы получить от него полезную информацию.

Наш стек: Spring 4.1.1

Это не загрузочное приложение, поэтому после прочтения множества вопросов и статей я добавил следующий код:

pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-actuator</artifactId>
    <version>1.1.12.RELEASE</version>
</dependency>

ActuatorConfig.java

@Configuration
@Import(EndpointAutoConfiguration.class)
public class ActuatorConfig {


    @Bean
    @Autowired
    public ManagementServerProperties myManagementServerProperties() {
        ManagementServerProperties manag = new ManagementServerProperties();
        manag.setContextPath("/actuator");

        return manag;
    }

    @Bean
    @Autowired
    // Define the HandlerMapping similar to RequestHandlerMapping to expose the
    @DependsOn("myManagementServerProperties")
    public EndpointHandlerMapping endpointHandlerMapping(Collection<? extends MvcEndpoint> endpoints) {
        return new EndpointHandlerMapping(endpoints);
    }

    @Bean
    @Autowired
    // define the HealthPoint endpoint
    @DependsOn("myManagementServerProperties")
    public HealthMvcEndpoint healthMvcEndpoint(HealthEndpoint delegate) {
        return new HealthMvcEndpoint(delegate);
    }

    @Bean
    @Autowired
    // define the Info endpoint
    @DependsOn("myManagementServerProperties")
    public EndpointMvcAdapter infoMvcEndPoint(InfoEndpoint delegate) {
        return new EndpointMvcAdapter(delegate);
    }

    @Bean
    @Autowired
    // define the beans endpoint
    @DependsOn("myManagementServerProperties")
    public EndpointMvcAdapter beansEndPoint(BeansEndpoint delegate) {
        return new EndpointMvcAdapter(delegate);
    }

    @Bean
    @Autowired
    // define the mappings endpoint
    @DependsOn("myManagementServerProperties")
    public EndpointMvcAdapter requestMappingEndPoint(RequestMappingEndpoint delegate) {
        return new EndpointMvcAdapter(delegate);
    }

    @Bean
    @Autowired
    // define the HealthPoint endpoint
    @DependsOn("myManagementServerProperties")
    public EndpointMvcAdapter dumpMvcEndpoint(DumpEndpoint delegate) {
        return new EndpointMvcAdapter(delegate);
    }

    @Bean
    @Autowired
    // define the MetricsEndpoint endpoint
    @DependsOn("myManagementServerProperties")
    public MetricsMvcEndpoint metricsMvcEndpoint(MetricsEndpoint delegate) {
        return new MetricsMvcEndpoint(delegate);
    }

    @Bean
    @Autowired
    @DependsOn("myManagementServerProperties")
    public EnvironmentMvcEndpoint environmentMvcEndpoint(EnvironmentEndpoint delegate) {
        return new EnvironmentMvcEndpoint(delegate);
    }

С этой конфигурацией я могу фактически назвать те конечные точки, которые я объявил:

2018-02-09 12:33:47,083 [localhost-startStop-1] INFO  org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping - Mapped "{[/dump],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2018-02-09 12:33:47,084 [localhost-startStop-1] INFO  org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping - Mapped "{[/metrics/{name:.*}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.MetricsMvcEndpoint.value(java.lang.String)
2018-02-09 12:33:47,084 [localhost-startStop-1] INFO  org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping - Mapped "{[/metrics],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2018-02-09 12:33:47,084 [localhost-startStop-1] INFO  org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping - Mapped "{[/beans],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2018-02-09 12:33:47,084 [localhost-startStop-1] INFO  org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping - Mapped "{[/health],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.invoke()
2018-02-09 12:33:47,084 [localhost-startStop-1] INFO  org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping - Mapped "{[/info],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2018-02-09 12:33:47,084 [localhost-startStop-1] INFO  org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping - Mapped "{[/mappings],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2018-02-09 12:33:47,085 [localhost-startStop-1] INFO  org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping - Mapped "{[/env/{name:.*}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EnvironmentMvcEndpoint.value(java.lang.String)
2018-02-09 12:33:47,085 [localhost-startStop-1] INFO  org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping - Mapped "{[/env],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()

Чего я хочу добиться - это изменить базовый путь всех этих конечных точек на что-то вроде \ actator, чтобы я мог вызвать:

https://mydomain:8443/myapp/api/actuator/dump
https://mydomain:8443/myapp/api/actuator/metrics

То, что я попробовал после просмотра в Интернете, учитывая, что это не загрузочное приложение, добавляет эту конфигурацию и мой класс ActuatorConfig:

@Bean
        @Autowired
        public ManagementServerProperties myManagementServerProperties() {
            ManagementServerProperties manag = new ManagementServerProperties();
            manag.setContextPath("/actuator");

            return manag;
        }

Я пытался использовать @DependsOn аннотация, чтобы убедиться, что myManagementServerProperties был создан перед конечными точками привода, но ничего не изменилось.

Что я делаю неправильно?

0 ответов

Другие вопросы по тегам