Skip to content

Commit d2cd322

Browse files
authored
Add gRPC authority info to the observation context (#3510)
Add and populate the gRPC authority information in both server and client.
1 parent bfab8fb commit d2cd322

File tree

5 files changed

+26
-1
lines changed

5 files changed

+26
-1
lines changed

micrometer-core/src/main/java/io/micrometer/core/instrument/binder/grpc/GrpcClientObservationContext.java

+10
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ public class GrpcClientObservationContext extends RequestReplySenderContext<Meta
4343
@Nullable
4444
private Code statusCode;
4545

46+
private String authority;
47+
4648
public GrpcClientObservationContext(Setter<Metadata> setter) {
4749
super(setter);
4850
}
@@ -88,4 +90,12 @@ public void setStatusCode(Code statusCode) {
8890
this.statusCode = statusCode;
8991
}
9092

93+
public String getAuthority() {
94+
return this.authority;
95+
}
96+
97+
public void setAuthority(String authority) {
98+
this.authority = authority;
99+
}
100+
91101
}

micrometer-core/src/main/java/io/micrometer/core/instrument/binder/grpc/GrpcServerObservationContext.java

+12
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ public class GrpcServerObservationContext extends RequestReplyReceiverContext<Me
4343
@Nullable
4444
private Code statusCode;
4545

46+
@Nullable
47+
private String authority;
48+
4649
public GrpcServerObservationContext(Getter<Metadata> getter) {
4750
super(getter);
4851
}
@@ -88,4 +91,13 @@ public void setStatusCode(Code statusCode) {
8891
this.statusCode = statusCode;
8992
}
9093

94+
@Nullable
95+
public String getAuthority() {
96+
return this.authority;
97+
}
98+
99+
public void setAuthority(@Nullable String authority) {
100+
this.authority = authority;
101+
}
102+
91103
}

micrometer-core/src/main/java/io/micrometer/core/instrument/binder/grpc/ObservationGrpcClientInterceptor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public <ReqT, RespT> ClientCall<ReqT, RespT> interceptCall(MethodDescriptor<ReqT
8080
}
8181
context.setFullMethodName(fullMethodName);
8282
context.setMethodType(methodType);
83-
83+
context.setAuthority(next.authority());
8484
return context;
8585
};
8686

micrometer-core/src/main/java/io/micrometer/core/instrument/binder/grpc/ObservationGrpcServerInterceptor.java

+1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ public <ReqT, RespT> Listener<ReqT> interceptCall(ServerCall<ReqT, RespT> call,
8383
}
8484
context.setFullMethodName(fullMethodName);
8585
context.setMethodType(methodType);
86+
context.setAuthority(call.getAuthority());
8687

8788
return context;
8889
};

micrometer-core/src/test/java/io/micrometer/core/instrument/binder/grpc/GrpcObservationTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,7 @@ void verifyServerContext(String serviceName, String methodName, String contextua
400400
assertThat(serverContext.getMethodName()).isEqualTo(methodName);
401401
assertThat(serverContext.getFullMethodName()).isEqualTo(contextualName);
402402
assertThat(serverContext.getMethodType()).isEqualTo(methodType);
403+
assertThat(serverContext.getAuthority()).isEqualTo("localhost");
403404
});
404405
}
405406

@@ -411,6 +412,7 @@ void verifyClientContext(String serviceName, String methodName, String contextua
411412
assertThat(clientContext.getMethodName()).isEqualTo(methodName);
412413
assertThat(clientContext.getFullMethodName()).isEqualTo(contextualName);
413414
assertThat(clientContext.getMethodType()).isEqualTo(methodType);
415+
assertThat(clientContext.getAuthority()).isEqualTo("localhost");
414416
});
415417
}
416418

0 commit comments

Comments
 (0)