类org.springframework.boot.actuate.metrics.cache.CacheMeterBinderProvider源码实例Demo

下面列出了怎么用org.springframework.boot.actuate.metrics.cache.CacheMeterBinderProvider的API类实例代码及写法,或者点击链接到github查看源代码。

@Test
public void whenCachingNotEnabledThenCacheStatisticsNotLoaded() {
    loadContext(EmptyConfiguration.class);

    assertThatThrownBy(() ->
            this.context.getBean("memcachedCacheMeterBinderProvider", CacheMeterBinderProvider.class)
    )
            .isInstanceOf(NoSuchBeanDefinitionException.class)
            .hasMessage("No bean named 'memcachedCacheMeterBinderProvider' available");
}
 
@Test
public void whenCacheTypeIsNoneThenCacheStatisticsNotLoaded() {
    loadContext(CacheConfiguration.class, "spring.cache.type=none");

    assertThatThrownBy(() ->
            this.context.getBean("memcachedCacheMeterBinderProvider", CacheMeterBinderProvider.class)
    )
            .isInstanceOf(NoSuchBeanDefinitionException.class)
            .hasMessage("No bean named 'memcachedCacheMeterBinderProvider' available");
}
 
@Test
public void whenNoCustomCacheManagerThenCacheStatisticsLoaded() {
    loadContext(MemcachedAutoConfigurationTest.CacheConfiguration.class);

    CacheMeterBinderProvider provider = this.context.getBean("memcachedCacheMeterBinderProvider", CacheMeterBinderProvider.class);

    assertThat(provider).isNotNull();
}
 
@Test
public void whenMemcachedCacheManagerBeanThenCacheStatisticsLoaded() {
    loadContext(CacheWithMemcachedCacheManagerConfiguration.class);

    CacheMeterBinderProvider provider = this.context.getBean(
            "memcachedCacheMeterBinderProvider", CacheMeterBinderProvider.class);

    assertThat(provider).isNotNull();

    CacheManager cacheManager = this.context.getBean(CacheManager.class);
    Cache books = cacheManager.getCache("books");

    MeterBinder metrics = provider.getMeterBinder(books, expectedTag);

    MeterRegistry registry = new SimpleMeterRegistry();
    metrics.bindTo(registry);

    FunctionCounter hits = registry.get("cache.gets").tags(expectedTag).tag("result", "hit").functionCounter();
    FunctionCounter misses = registry.get("cache.gets").tags(expectedTag).tag("result", "miss").functionCounter();
    FunctionCounter puts = registry.get("cache.puts").tags(expectedTag).functionCounter();
    double availableServersCount = registry.get("available_servers_count").gauge().value();

    assertThat(hits.count()).isEqualTo(0);
    assertThat(misses.count()).isEqualTo(0);
    assertThat(puts.count()).isEqualTo(0);
    assertThat(availableServersCount).isEqualTo(1.0);

    getCacheKeyValues(books, "a", "b", "b", "c", "d", "c", "a", "a", "a", "d");

    assertThat(hits.count()).isEqualTo(6);
    assertThat(misses.count()).isEqualTo(4);
    assertThat(puts.count()).isEqualTo(0);
    assertThat(availableServersCount).isEqualTo(1.0);
}
 
 类所在包
 同包方法