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

如何在 Spring Boot 应用程序中为 ehCache 配置 Dropwizard/CodaHale 指标?

童冠玉
2023-03-14

所以我的问题是。我的Spring Boot应用程序使用Hibernate/JPA和ehCache进行二级缓存。我想用Dropwizard/Coda-Hale指标来检测ehCache,但我不确定如何去做。如果我手动创建缓存实例,那就简单了。您只需使用如下所示的装饰器。但是因为是Spring/Hibernate,我无法控制缓存。你知道我该怎么设置这个吗?

共有1个答案

习高格
2023-03-14

好吧,我相信我终于想通了。事实证明,在Spring JavaConfig for cacheManager中添加返回Spring类ehCacheCacheManager仍然可以用来访问底层的ehCache类并装饰它们。以下是我如何让它工作

@Bean
public EhCacheCacheManager ehCacheCacheManager() {
    final EhCacheCacheManager ehCacheCacheManager = new EhCacheCacheManager(ehCacheManagerFactoryBean().getObject());
    net.sf.ehcache.CacheManager cacheManager = ehCacheCacheManager.getCacheManager();
    String[] cacheNames = cacheManager.getCacheNames();
    for (String cacheName : cacheNames) {
        Cache cache = cacheManager.getCache(cacheName);
        cacheManager.replaceCacheWithDecoratedCache(cache, InstrumentedEhcache.instrument(metricRegistry, cache));
    }
    return ehCacheCacheManager;
}


@Bean
public EhCacheManagerFactoryBean ehCacheManagerFactoryBean() {

    EhCacheManagerFactoryBean cacheManagerFactoryBean = new EhCacheManagerFactoryBean();

    cacheManagerFactoryBean.setConfigLocation(new ClassPathResource("ehcache.xml"));
    cacheManagerFactoryBean.setShared(true);

    return cacheManagerFactoryBean;
}
 类似资料:
  • 阅读HikariCP维基上有关如何启用拖放向导指标的说明,它说只需在或中配置一个实例。 问题是,在Spring Boot,所有的配置都是由自动配置处理的,所以我根本不用手动配置HikariCP池。 有关于如何做的说明吗?我是否必须通过定义自己的bean并在文件中设置所有设置来完全覆盖自动配置?

  • 我已经为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给

  • 在我的dropwizard rest应用程序中,我的指标配置是这样的,(hello-world.yml) 这是一个SLF4J记者,我把它放在了我的YAML配置文件中。当我想获取这个值并在我的应用程序文件中使用它时。我看到的唯一选择是将此作为< code >地图阅读 此问题与graphite服务器配置的Dropwizard Yaml相同。但是这个问题还是没有答案,所以我创造了一个新问题来试试运气。

  • 我正在使用Guice和Dropwizard开发一个应用程序,在其中我们创建了不同的包,如Guice包、migrations包等,并将它们添加到initialize()方法中的bootstrap中。 注意:我知道另一种方法,您可以在run()方法中创建Module类的对象,用于创建注入器(配置和环境对象在MyModule类的构造函数中作为参数传递)。但这需要我在run()方法中注册所有托管对象和所有

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