1. ホーム
  2. java

Spring Bootアクチュエータ(Spring Bootなし

2024-01-01 09:18:40

質問

Spring/Spring MVCアプリケーションに取り組んでいて、パフォーマンスメトリクスを追加したいと考えています。私はSpring Boot Actuatorに出会い、それは素晴らしいソリューションのように見えます。しかし、私のアプリケーションは、Spring Bootアプリケーションではありません。私のアプリケーションは、従来のコンテナであるTomcat 8で実行されています。

次の依存関係を追加しました。

// Spring Actuator
compile "org.springframework.boot:spring-boot-starter-actuator:1.2.3.RELEASE"

以下のようなコンフィグクラスを作成しました。

@EnableConfigurationProperties
@Configuration
@EnableAutoConfiguration
@Profile(value = {"dev", "test"})
@Import(EndpointAutoConfiguration.class)
public class SpringActuatorConfig {

}

を追加するところまで行った。 @EnableConfigurationProperties を追加してみました。しかし、それは何もしませんでした。エンドポイントはまだ作成されず、404 を返します。

どのように解決するのですか?

Spring bootを使わなくても、actuatorを使うことができます。 pom.xmlに以下を追加してください。

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

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>4.3.5.RELEASE</version>
</dependency>

そして、設定クラスで

@Configuration
@EnableWebMvc
@Import({
        EndpointAutoConfiguration.class , PublicMetricsAutoConfiguration.class , HealthIndicatorAutoConfiguration.class
})
public class MyActuatorConfig {

    @Bean
    @Autowired
    public EndpointHandlerMapping endpointHandlerMapping(Collection<? extends MvcEndpoint> endpoints) {
        return new EndpointHandlerMapping(endpoints);
    }

    @Bean
    @Autowired
    public EndpointMvcAdapter metricsEndPoint(MetricsEndpoint delegate) {
        return new EndpointMvcAdapter(delegate);
    }
}

そして、アプリケーションでメトリクスを見ることができます。

http://localhost:8085/metrics