Skip to content

Commit 2839b21

Browse files
committed
Maybe
1 parent ce53a3b commit 2839b21

3 files changed

Lines changed: 14 additions & 11 deletions

File tree

instrumentation/thrift-0.13/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/thrift/v0_13/ThriftAsyncClientInstrumentation.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,14 +70,9 @@ public static TProtocolFactory onEnter(
7070
@Advice.Origin("#t") Class<?> declaringClass,
7171
@Advice.Argument(0) TProtocolFactory protocolFactory,
7272
@Advice.Argument(2) TNonblockingTransport transport) {
73-
Class<?> serviceClass = declaringClass;
74-
if (serviceClass.getDeclaringClass() != null) {
75-
serviceClass = serviceClass.getDeclaringClass();
76-
}
77-
7873
return new ClientProtocolDecorator.Factory(
7974
protocolFactory,
80-
serviceClass.getName(),
75+
ThriftSingletons.thriftServiceName(declaringClass),
8176
ThriftSingletons.clientInstrumenter(),
8277
getPropagators(),
8378
transport);

instrumentation/thrift-0.13/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/thrift/v0_13/ThriftServiceClientInstrumentation.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,11 @@ public static Object[] onExit(
4848
@Advice.This TServiceClient serviceClient,
4949
@Advice.FieldValue("iprot_") TProtocol inProtocol,
5050
@Advice.FieldValue("oprot_") TProtocol outProtocol) {
51-
Class<?> serviceClass = serviceClient.getClass();
52-
if (serviceClass.getDeclaringClass() != null) {
53-
serviceClass = serviceClass.getDeclaringClass();
54-
}
5551
ClientProtocolDecorator.AgentDecorator agentDecorator =
5652
new ClientProtocolDecorator.AgentDecorator(
57-
serviceClass.getName(), ThriftSingletons.clientInstrumenter(), getPropagators());
53+
ThriftSingletons.thriftServiceName(serviceClient.getClass()),
54+
ThriftSingletons.clientInstrumenter(),
55+
getPropagators());
5856
return new Object[] {
5957
agentDecorator.decorate(inProtocol), agentDecorator.decorate(outProtocol)
6058
};

instrumentation/thrift-0.13/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/thrift/v0_13/ThriftSingletons.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,15 @@ public static ContextPropagators getPropagators() {
3636
return GlobalOpenTelemetry.get().getPropagators();
3737
}
3838

39+
/**
40+
* Returns the enclosing thrift service class name (e.g. {@code com.example.MyService}) for an
41+
* inner client class such as {@code com.example.MyService$Client}; falls back to the class itself
42+
* when there is no enclosing class.
43+
*/
44+
public static String thriftServiceName(Class<?> clientClass) {
45+
Class<?> declaring = clientClass.getDeclaringClass();
46+
return declaring != null ? declaring.getName() : clientClass.getName();
47+
}
48+
3949
private ThriftSingletons() {}
4050
}

0 commit comments

Comments
 (0)