Skip to content

Commit 49aaa7f

Browse files
committed
Centralize HTTP response customizer suppression
1 parent 6cd600c commit 49aaa7f

4 files changed

Lines changed: 27 additions & 30 deletions

File tree

instrumentation/netty/netty-3.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v3_8/server/HttpServerResponseTracingHandler.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import io.opentelemetry.context.Scope;
1212
import io.opentelemetry.instrumentation.api.util.VirtualField;
1313
import io.opentelemetry.instrumentation.netty.common.internal.NettyErrorHolder;
14-
import io.opentelemetry.javaagent.bootstrap.ExceptionLogger;
1514
import io.opentelemetry.javaagent.bootstrap.http.HttpServerResponseCustomizerHolder;
1615
import io.opentelemetry.javaagent.instrumentation.netty.v3_8.NettyRequest;
1716
import org.jboss.netty.channel.Channel;
@@ -49,11 +48,7 @@ public void writeRequested(ChannelHandlerContext ctx, MessageEvent msg) throws E
4948
}
5049

5150
private static void customizeResponse(Context context, HttpResponse response) {
52-
try {
53-
HttpServerResponseCustomizerHolder.getCustomizer()
54-
.customize(context, response, NettyHttpResponseMutator.INSTANCE);
55-
} catch (Throwable t) {
56-
ExceptionLogger.logSuppressedError("Failed to customize Netty 3.8 HTTP server response", t);
57-
}
51+
HttpServerResponseCustomizerHolder.getCustomizer()
52+
.customize(context, response, NettyHttpResponseMutator.INSTANCE);
5853
}
5954
}

instrumentation/netty/netty-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/server/HttpServerResponseTracingHandler.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import io.opentelemetry.context.Scope;
1818
import io.opentelemetry.instrumentation.netty.common.internal.NettyErrorHolder;
1919
import io.opentelemetry.instrumentation.netty.common.v4_0.internal.NettyCommonRequest;
20-
import io.opentelemetry.javaagent.bootstrap.ExceptionLogger;
2120
import io.opentelemetry.javaagent.bootstrap.http.HttpServerResponseCustomizerHolder;
2221
import io.opentelemetry.javaagent.instrumentation.netty.v4_0.AttributeKeys;
2322
import javax.annotation.Nullable;
@@ -52,11 +51,7 @@ private static void end(Channel channel, HttpResponse response, @Nullable Throwa
5251
}
5352

5453
private static void customizeResponse(Context context, HttpResponse response) {
55-
try {
56-
HttpServerResponseCustomizerHolder.getCustomizer()
57-
.customize(context, response, NettyHttpResponseMutator.INSTANCE);
58-
} catch (Throwable t) {
59-
ExceptionLogger.logSuppressedError("Failed to customize Netty 4.0 HTTP server response", t);
60-
}
54+
HttpServerResponseCustomizerHolder.getCustomizer()
55+
.customize(context, response, NettyHttpResponseMutator.INSTANCE);
6156
}
6257
}

instrumentation/netty/netty-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/NettyHttpServerResponseBeforeCommitHandler.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import io.netty.handler.codec.http.HttpResponse;
99
import io.opentelemetry.context.Context;
1010
import io.opentelemetry.instrumentation.netty.v4_1.internal.server.HttpServerResponseBeforeCommitHandler;
11-
import io.opentelemetry.javaagent.bootstrap.ExceptionLogger;
1211
import io.opentelemetry.javaagent.bootstrap.http.HttpServerResponseCustomizerHolder;
1312

1413
public enum NettyHttpServerResponseBeforeCommitHandler
@@ -17,11 +16,7 @@ public enum NettyHttpServerResponseBeforeCommitHandler
1716

1817
@Override
1918
public void handle(Context context, HttpResponse response) {
20-
try {
21-
HttpServerResponseCustomizerHolder.getCustomizer()
22-
.customize(context, response, new NettyHttpServerResponseMutator());
23-
} catch (Throwable t) {
24-
ExceptionLogger.logSuppressedError("Failed to customize Netty 4.1 HTTP server response", t);
25-
}
19+
HttpServerResponseCustomizerHolder.getCustomizer()
20+
.customize(context, response, new NettyHttpServerResponseMutator());
2621
}
2722
}

javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentInstaller.java

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import io.opentelemetry.javaagent.bootstrap.AgentClassLoader;
2323
import io.opentelemetry.javaagent.bootstrap.BootstrapPackagePrefixesHolder;
2424
import io.opentelemetry.javaagent.bootstrap.DefineClassHelper;
25+
import io.opentelemetry.javaagent.bootstrap.ExceptionLogger;
2526
import io.opentelemetry.javaagent.bootstrap.InstrumentedTaskClasses;
2627
import io.opentelemetry.javaagent.bootstrap.LambdaTransformer;
2728
import io.opentelemetry.javaagent.bootstrap.LambdaTransformerHolder;
@@ -307,16 +308,27 @@ private static void addHttpServerResponseCustomizers(ClassLoader extensionClassL
307308
load(HttpServerResponseCustomizer.class, extensionClassLoader);
308309

309310
HttpServerResponseCustomizerHolder.setCustomizer(
310-
new HttpServerResponseCustomizer() {
311-
@Override
312-
public <T> void customize(
313-
Context serverContext, T response, HttpServerResponseMutator<T> responseMutator) {
314-
315-
for (HttpServerResponseCustomizer modifier : customizers) {
316-
modifier.customize(serverContext, response, responseMutator);
317-
}
311+
createHttpServerResponseCustomizer(customizers));
312+
}
313+
314+
static HttpServerResponseCustomizer createHttpServerResponseCustomizer(
315+
List<HttpServerResponseCustomizer> customizers) {
316+
return new HttpServerResponseCustomizer() {
317+
@Override
318+
public <T> void customize(
319+
Context serverContext, T response, HttpServerResponseMutator<T> responseMutator) {
320+
321+
for (HttpServerResponseCustomizer modifier : customizers) {
322+
try {
323+
modifier.customize(serverContext, response, responseMutator);
324+
} catch (Throwable t) {
325+
ExceptionLogger.logSuppressedError(
326+
"Failed to customize HTTP server response with " + modifier.getClass().getName(),
327+
t);
318328
}
319-
});
329+
}
330+
}
331+
};
320332
}
321333

322334
private static void addSqlCommenterCustomizers(ClassLoader extensionClassLoader) {

0 commit comments

Comments
 (0)