Dropwizardメトリックを有効にする方法についてHikariCPwikiで 手順 を読むと、MetricsRegistry
またはHikariConfig
でHikariDatasource
インスタンスを構成するだけであると書かれています。
問題は、Spring Bootでは、すべての構成が自動構成によって処理されるため、HikariCPプールを手動で構成していないことです。
これを行う方法についての指示はありますか?独自のBeanを定義し、すべての設定を@Configuration
ファイルに設定して、自動構成を完全にオーバーライドする必要がありますか?
したがって、Java構成ファイルでHikariCPを手動で構成することで、これを理解することができました。これにより、Spring Boot MetricRegistryへの参照を取得でき、HikariConfigで設定できました。これが私の構成クラス:
@Configuration
public class DatasourceConfiguration {
@Value("${spring.datasource.username}")
private String user;
@Value("${spring.datasource.password}")
private String password;
@Value("${spring.datasource.url}")
private String dataSourceUrl;
@Value("${spring.datasource.driverClassName}")
private String driverClassName;
@Value("${spring.datasource.connectionTestQuery}")
private String connectionTestQuery;
@Autowired
private MetricRegistry metricRegistry;
@Bean
public DataSource primaryDataSource() {
Properties dsProps = new Properties();
dsProps.setProperty("url", dataSourceUrl);
dsProps.setProperty("user", user);
dsProps.setProperty("password", password);
Properties configProps = new Properties();
configProps.setProperty("connectionTestQuery", connectionTestQuery);
configProps.setProperty("driverClassName", driverClassName);
configProps.setProperty("jdbcUrl", dataSourceUrl);
HikariConfig hc = new HikariConfig(configProps);
hc.setDataSourceProperties(dsProps);
hc.setMetricRegistry(metricRegistry);
return new HikariDataSource(hc);
}
}
または、SpringBootでデータソースを構成します。@ Configuration/@ SpringBootApplicationクラスでDataSourceとMetricRegistryを@Autowireし、@ PostConstructでそれらを相互に接続します。
@Autowired
private DataSource dataSource;
@Autowired
private MetricRegistry metricRegistry;
@PostConstruct
public void setUpHikariWithMetrics() {
if(dataSource instanceof HikariDataSource) {
((HikariDataSource) dataSource).setMetricRegistry(metricRegistry);
}
}