Skip to content

Commit cb24a49

Browse files
committed
Apply workaround for spring-projects/spring-boot#26630
1 parent 7d6c744 commit cb24a49

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.izeye.sample.config;
2+
3+
import io.micrometer.core.instrument.MeterRegistry;
4+
import io.micrometer.core.instrument.binder.MeterBinder;
5+
import org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties;
6+
import org.springframework.boot.actuate.metrics.data.MetricsRepositoryMethodInvocationListener;
7+
import org.springframework.boot.actuate.metrics.data.RepositoryTagsProvider;
8+
import org.springframework.context.annotation.Bean;
9+
import org.springframework.context.annotation.Configuration;
10+
import org.springframework.context.annotation.Lazy;
11+
12+
/**
13+
* Configuration for metrics.
14+
*
15+
* @author Johnny Lim
16+
*/
17+
@Configuration
18+
public class MetricsConfig {
19+
20+
@Bean
21+
public MeterBinder myMeterBinder() {
22+
return (registry) -> registry.counter("binder.test");
23+
}
24+
25+
// FIXME: See https://github.com/spring-projects/spring-boot/issues/26630
26+
@Bean
27+
public static MetricsRepositoryMethodInvocationListener metricsRepositoryMethodInvocationListener(
28+
MetricsProperties metricsProperties, @Lazy MeterRegistry registry, RepositoryTagsProvider tagsProvider) {
29+
MetricsProperties.Data.Repository properties = metricsProperties.getData().getRepository();
30+
return new MetricsRepositoryMethodInvocationListener(registry, tagsProvider, properties.getMetricName(),
31+
properties.getAutotime());
32+
}
33+
34+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.izeye.sample.config;
2+
3+
import io.micrometer.core.instrument.MeterRegistry;
4+
import org.junit.jupiter.api.Test;
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.boot.test.context.SpringBootTest;
7+
8+
import static org.assertj.core.api.Assertions.assertThat;
9+
10+
@SpringBootTest
11+
class MetricsConfigTests {
12+
13+
@Autowired
14+
private MeterRegistry registry;
15+
16+
@Test
17+
void userDefinedMeterBinderWorks() {
18+
assertThat(this.registry.find("binder.test").counter()).isNotNull();
19+
}
20+
21+
}

0 commit comments

Comments
 (0)