当前位置: 首页 > 知识库问答 >
问题:

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

申博厚
2023-03-14

阅读HikariCP维基上有关如何启用拖放向导指标的说明,它说只需在HikariConfigHikari数据源中配置一个指标注册实例。

问题是,在Spring Boot,所有的配置都是由自动配置处理的,所以我根本不用手动配置HikariCP池。

有关于如何做的说明吗?我是否必须通过定义自己的bean并在@Configuration文件中设置所有设置来完全覆盖自动配置?

共有2个答案

干照
2023-03-14

所以我能够通过在java配置文件中手动配置HikariCP来解决这个问题。这使我能够获得对Spring Boot公制的引用,然后我可以在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);
    }
}
秦天宇
2023-03-14

或者让Spring Boot配置您的数据源,@Autowire@Configuration/@SpringBootApplication类中的DataSource和Metric注册表,并将它们连接在@PostConstruct中:

@Autowired
private DataSource dataSource;

@Autowired
private MetricRegistry metricRegistry;


@PostConstruct
public void setUpHikariWithMetrics() {
    if(dataSource instanceof HikariDataSource) {
        ((HikariDataSource) dataSource).setMetricRegistry(metricRegistry);
    }
}
 类似资料:
  • 所以我的问题是。我的Spring Boot应用程序使用Hibernate/JPA和ehCache进行二级缓存。我想用Dropwizard/Coda-Hale指标来检测ehCache,但我不确定如何去做。如果我手动创建缓存实例,那就简单了。您只需使用如下所示的装饰器。但是因为是Spring/Hibernate,我无法控制缓存。你知道我该怎么设置这个吗?

  • 我已经为Postgresql启用了复制,并且正在使用PGPool进行负载平衡。 我在使用HikariCP甚至Apache DBCP连接到Postgres时遇到了问题。 在SpringBoot应用程序中有没有使用PGPool的方法? 请查找堆栈跟踪: 2018-08-10 10:20:19.124信息37879----[main]com.zaxxer.hikari.hikaridatasource:

  • 我是Java新手。在探索监控卡桑德拉的方法时,我发现(https://cassandra.apache.org/doc/latest/operating/metrics.html)“使用Dropwizard度量库管理Cassandra中的度量”。然而,在一些地方,我读到了Codahale度量,这让我对两者之间的区别/关系感到困惑。这些不同的库是在做同样的事情,还是以前称为dropwizard的度量

  • 我正在尝试在我的Spring Boot(1.2.0.m1)应用程序中设置HikariCP,这样我就可以使用它来代替Tomcat DBCP进行测试。我想在application.properties文件中配置连接池,就像使用Tomcat一样,但我不知道应该怎么做。我找到的所有示例都显示JavaConfig样式,或者使用单独的HikariCP属性文件。有人能帮我找出属性名称来在application.

  • 我已经为dropwizard (codehale)度量注册表配置了一个基本的sl4j reporter。这是报告器配置: 我正在接收的日志不是我所期望的(期望使用metricRegistry注册的计时器、计数器的可解析输出)。这是我每30秒实际看到的内容(与报告器配置相匹配): …… java: 55)org.slf4j.helpers.FormattingTuple@39fda09e 无论如何,

  • 我正在使用camel-spring boot starter运行kafka消费者应用程序。SpringBoot应用程序实现CommandLineRunner。在我的应用程序中配置了以下属性。 我试图在端口8080上公开springboot执行器指标,但我在公开endpoint方面面临挑战,因为它是非Web应用程序。urlhttp://localhost:8080/actuator/metrics给