简体   繁体   English

如何在Spring Boot应用程序中配置HikariCP和Dropwizard / Coda-Hale指标

[英]How do I configure HikariCP and Dropwizard/Coda-Hale metrics in Spring Boot application

Reading the instructions on the HikariCP wiki about how to enable the Dropwizard metrics, it says to just configure a MetricsRegistry instance in HikariConfig or HikariDatasource. 阅读关于如何启用Dropwizard指标的HikariCP wiki上的说明,它说只需在HikariConfig或HikariDatasource中配置MetricsRegistry实例。 Problem is, in Spring Boot, all the configuration is handled by autoconfiguration so I'm not manually configuring the HikariCP pool at all. 问题是,在Spring Boot中,所有配置都由自动配置处理,因此我根本不会手动配置HikariCP池。 Any instructions on how to do this? 有关如何执行此操作的任何说明? Do I have to completely override the autoconfiguration by defining my own bean and setting all the settings in a @Configuration file? 我是否必须通过定义自己的bean并在@Configuration文件中设置所有设置来完全覆盖自动配置?

So I was able to figure this out by manually configuring HikariCP in a java configuration file. 所以我能够通过在java配置文件中手动配置HikariCP来解决这个问题。 That allowed me to get a reference to the Spring Boot MetricRegistry, which I could then set in HikariConfig. 这让我得到了Spring Boot MetricRegistry的引用,然后我可以在HikariConfig中设置它。 Here's my configuration class: 这是我的配置类:

@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);
    }
}

Or let Spring Boot configure your data source, @Autowire the DataSource and MetricRegistry in your @Configuration/@SpringBootApplication class and wire them together in a @PostConstruct: 或者让Spring Boot在@ Configuration / @ SpringBootApplication类中配置您的数据源@Autowire DataSource和MetricRegistry,并在@PostConstruct中将它们连接在一起:

@Autowired
private DataSource dataSource;

@Autowired
private MetricRegistry metricRegistry;


@PostConstruct
public void setUpHikariWithMetrics() {
    if(dataSource instanceof HikariDataSource) {
        ((HikariDataSource) dataSource).setMetricRegistry(metricRegistry);
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 "如何在 application.properties 文件中的 Spring Boot 应用程序中配置 HikariCP?" - How do I configure HikariCP in my Spring Boot app in my application.properties files? 在Websphere Application Server 7中使用Coda Hale Yammer Metrics库 - Using Coda Hale Yammer Metrics library in Websphere Application Server 7 Spring Boot 2:如何使用application.properties文件配置HikariCP - Spring Boot 2: How to configure HikariCP using application.properties file 如何使用Hibernate和Spring Boot配置和监视HikariCP - How to configure and monitor HikariCP with Hibernate and Spring Boot 使用 JTDS 在 Spring Boot 中配置 HikariCP - Configure HikariCP in Spring Boot with JTDS 如何在 mySpringBoot application.yml 中配置 HikariCP? - How do I configure HikariCP in mySpringBoot application.yml? 您如何配置prometheus.yml文件以在Spring-Boot应用程序中收集Prometheus指标? - How do you configure prometheus.yml file to collect Prometheus metrics in a Spring-Boot application? 如何自动将 Dropwizard Metrics @Timed 添加到 spring 启动应用程序中的所有 API 方法中? - How to automatically add Dropwizard Metrics @Timed into all APIs method in spring boot application? 如何用spring-boot显示Dropwizard Metrics Servlet? - How to show Dropwizard Metrics Servlet with spring-boot? Dropwizard指标注释在Spring Boot 1.5中不起作用 - Dropwizard metrics annotations are not working in Spring Boot 1.5
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM