2017-10-14 23 views
1

SpringBoot Actuatorによる特定のデータソースの監視を無効にする方法があるかどうかを知りたいと思います。ヘルスチェック用の特定のデータソースを監視しない

シナリオ: 一つMicroserviceは3つのデータソースを使用していますが、一部の業務上の理由、そのうちの1つのデータソースのために、春ブーツヘルス・インディケーターで監視する必要はありません。

特定のデータソースの監視を無効にする方法はありますか?事前

フアン・アントニオ・

答えて

1

多くのおかげで私はあなたがこのプロパティで行うことができ、デフォルトのデータソースの健全性指標を、無効にする必要があるだろうと思う:その後、

management.health.db.enabled=false 

および構成します興味のあるデータソースにのみ対応する独自の健康指標、おそらくこのようなもの:

@Autowired 
private DataSource dataSourceA; 

@Autowired 
private DataSource dataSourceB; 

@Bean 
public DataSourceHealthIndicator dataSourceHealthIndicatorA() { 
    return new DataSourceHealthIndicator(dataSourceA); 
} 

@Bean 
public DataSourceHealthIndicator dataSourceHealthIndicatorB() { 
    return new DataSourceHealthIndicator(dataSourceB); 
} 

または、AbstractHealthIndicatorを拡張して監視することに興味のあるDatasourcesのみを挿入して、独自の「複数のデータソースヘルスインジケータ」を作成してください。 HealthIndicatorの任意のSpring Beanはhealthアクチュエータに自動的に登録されるため、SpringがカスタムHealthIndicatorを作成するだけで、アクチュエータによってエクスポーズされるようにする必要があります。

バックグラウンドでは、Springがどのようにデフォルトのデータソースヘルスチェックを設定しているかを見ることができます:org.springframework.boot.actuate.autoconfigure.DataSourcesHealthIndicatorConfiguration

+0

こんにちは@glitch、コメントをいただきありがとうございます。 Spring BootのどのクラスがすべてのBeanにデータソースを追加するのか知っていますか? – jabrena

+0

@jabrena Re:「Spring BootのどのクラスがデータソースについてすべてのBeanを追加するのか」...このクラスは、org.springframework.boot.actuate.autoconfigure.DataSourcesHealthIndicatorConfiguration'を開始するのに適していると思います。 'org.springframework.boot.actuate.autoconfigure.DataSourcesHealthIndicatorConfiguration'は、Springアプリケーションコンテキストで発見されたすべての' DataSource'インスタンスを含まなければなりません。 – glytching

関連する問題