Skip to content

Commit 4e65e0a

Browse files
committed
#1: Autoconfigure metric registry support
- rename metric to observation - new condition changes Signed-off-by: Sunny <hmtang@gmail.com> [resolves #1]
1 parent 135fa4e commit 4e65e0a

File tree

4 files changed

+30
-14
lines changed

4 files changed

+30
-14
lines changed

spring-grpc-core/pom.xml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,19 +67,13 @@
6767
<artifactId>grpc-stub</artifactId>
6868
</dependency>
6969

70-
<dependency>
71-
<groupId>io.micrometer</groupId>
72-
<artifactId>micrometer-core</artifactId>
73-
</dependency>
74-
7570
<dependency>
7671
<groupId>org.junit.jupiter</groupId>
7772
<artifactId>junit-jupiter</artifactId>
7873
<version>${junit.version}</version>
7974
<scope>test</scope>
8075
</dependency>
8176

82-
8377
</dependencies>
8478

8579

spring-grpc-spring-boot-autoconfigure/pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,16 @@
7575
<artifactId>spring-boot-starter</artifactId>
7676
<scope>provided</scope>
7777
</dependency>
78+
<dependency>
79+
<groupId>io.micrometer</groupId>
80+
<artifactId>micrometer-observation</artifactId>
81+
<optional>true</optional>
82+
</dependency>
83+
<dependency>
84+
<groupId>io.micrometer</groupId>
85+
<artifactId>micrometer-core</artifactId>
86+
<optional>true</optional>
87+
</dependency>
7888

7989
<!-- test dependencies -->
8090
<dependency>
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,16 @@
77
import org.springframework.boot.autoconfigure.AutoConfiguration;
88
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
99
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
10+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
1011
import org.springframework.context.annotation.Bean;
1112
import org.springframework.grpc.server.ServerBuilderCustomizer;
1213

13-
@AutoConfiguration
14-
@ConditionalOnClass(ObservationGrpcServerInterceptor.class)
14+
@AutoConfiguration(
15+
afterName = "org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration")
16+
@ConditionalOnClass(value = { ObservationRegistry.class, ObservationGrpcServerInterceptor.class })
1517
@ConditionalOnBean(ObservationRegistry.class)
16-
public class GrpcServerMetricAutoConfiguration {
18+
@ConditionalOnProperty(value = "spring.grpc.server.observation.enabled", matchIfMissing = true)
19+
public class GrpcServerObservationAutoConfiguration {
1720

1821
@Bean
1922
public ServerInterceptor observationGrpcServerInterceptor(ObservationRegistry observationRegistry) {
Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import io.grpc.ServerBuilder;
44
import io.grpc.ServerInterceptor;
5-
import io.micrometer.core.instrument.binder.grpc.ObservationGrpcServerInterceptor;
65
import io.micrometer.observation.ObservationRegistry;
76
import org.junit.jupiter.api.Test;
87
import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -11,20 +10,20 @@
1110

1211
import static org.assertj.core.api.Assertions.assertThat;
1312

14-
class GrpcServerMetricAutoConfigurationTests {
13+
class GrpcServerObservationAutoConfigurationTests {
1514

1615
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
17-
.withConfiguration(AutoConfigurations.of(GrpcServerMetricAutoConfiguration.class));
16+
.withConfiguration(AutoConfigurations.of(GrpcServerObservationAutoConfiguration.class));
1817

1918
@Test
20-
void whenObservationRegistryNotProvided_thenMetricsInterceptorNotConfigured() {
19+
void whenObservationRegistryNotProvided_thenObservationInterceptorNotConfigured() {
2120
this.contextRunner.run(context -> {
2221
assertThat(context).doesNotHaveBean(ServerBuilderCustomizer.class);
2322
});
2423
}
2524

2625
@Test
27-
void whenMetricsInterceptorConfigured_thenServerBuilderCustomizerConfigured() {
26+
void whenObservationInterceptorConfigured_thenServerBuilderCustomizerConfigured() {
2827
this.contextRunner.withBean(ObservationRegistry.class, ObservationRegistry::create).run(context -> {
2928
assertThat(context).hasSingleBean(ServerBuilderCustomizer.class);
3029
assertThat(context).hasSingleBean(ServerInterceptor.class);
@@ -36,4 +35,14 @@ void whenMetricsInterceptorConfigured_thenServerBuilderCustomizerConfigured() {
3635
});
3736
}
3837

38+
@Test
39+
void whenObservationPropertyDisabled_thenServerBuilderCustomizerNotConfigured() {
40+
this.contextRunner.withPropertyValues("spring.grpc.server.observation.enabled=false")
41+
.withBean(ObservationRegistry.class, ObservationRegistry::create)
42+
.run(context -> {
43+
assertThat(context).doesNotHaveBean(ServerBuilderCustomizer.class);
44+
assertThat(context).doesNotHaveBean(ServerInterceptor.class);
45+
});
46+
}
47+
3948
}

0 commit comments

Comments
 (0)