Skip to content

Commit 7d20681

Browse files
committed
Autowire client observation convention if available
Fixes #295
1 parent c931077 commit 7d20681

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

spring-grpc-client-spring-boot-autoconfigure/src/main/java/org/springframework/boot/grpc/client/autoconfigure/GrpcClientObservationAutoConfiguration.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package org.springframework.boot.grpc.client.autoconfigure;
1818

19+
import org.springframework.beans.factory.ObjectProvider;
1920
import org.springframework.boot.autoconfigure.AutoConfiguration;
2021
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2122
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -24,11 +25,11 @@
2425
import org.springframework.context.annotation.Bean;
2526
import org.springframework.grpc.client.GlobalClientInterceptor;
2627

28+
import io.micrometer.core.instrument.binder.grpc.GrpcClientObservationConvention;
2729
import io.micrometer.core.instrument.binder.grpc.ObservationGrpcClientInterceptor;
2830
import io.micrometer.observation.ObservationRegistry;
2931

30-
@AutoConfiguration(
31-
afterName = "org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration")
32+
@AutoConfiguration(afterName = "org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration")
3233
@ConditionalOnGrpcClientEnabled
3334
@ConditionalOnClass({ ObservationRegistry.class, ObservationGrpcClientInterceptor.class })
3435
@ConditionalOnBean(ObservationRegistry.class)
@@ -39,8 +40,13 @@ public final class GrpcClientObservationAutoConfiguration {
3940
@Bean
4041
@GlobalClientInterceptor
4142
@ConditionalOnMissingBean
42-
ObservationGrpcClientInterceptor observationGrpcClientInterceptor(ObservationRegistry observationRegistry) {
43-
return new ObservationGrpcClientInterceptor(observationRegistry);
43+
ObservationGrpcClientInterceptor observationGrpcClientInterceptor(ObservationRegistry observationRegistry,
44+
ObjectProvider<GrpcClientObservationConvention> convention) {
45+
ObservationGrpcClientInterceptor interceptor = new ObservationGrpcClientInterceptor(observationRegistry);
46+
if (convention.getIfAvailable() != null) {
47+
interceptor.setCustomConvention(convention.getIfAvailable());
48+
}
49+
return interceptor;
4450
}
4551

4652
}

spring-grpc-client-spring-boot-autoconfigure/src/test/java/org/springframework/boot/grpc/client/autoconfigure/GrpcClientAutoConfigurationTests.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
*
6464
* @author Chris Bono
6565
*/
66-
@SuppressWarnings({ "unchecked", "rawtypes" })
66+
@SuppressWarnings({ "unchecked" })
6767
class GrpcClientAutoConfigurationTests {
6868

6969
private ApplicationContextRunner contextRunner() {
@@ -407,7 +407,6 @@ void inProcessChannelFactoryAutoConfiguredWithCustomizers() {
407407
builder, InProcessGrpcChannelFactory.class);
408408
}
409409

410-
@SuppressWarnings("unchecked")
411410
private <T extends ManagedChannelBuilder<T>> void channelFactoryAutoConfiguredWithCustomizers(
412411
ApplicationContextRunner contextRunner, ManagedChannelBuilder<T> mockChannelBuilder,
413412
Class<?> expectedChannelFactoryType) {

0 commit comments

Comments
 (0)