
io.opentelemetry.javaagent.instrumentation.netty.v3_8.server.NettyServerSingletons Maven / Gradle / Ivy
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.javaagent.instrumentation.netty.v3_8.server;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpRouteHolder;
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerMetrics;
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanStatusExtractor;
import io.opentelemetry.instrumentation.netty.common.internal.NettyErrorHolder;
import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig;
import io.opentelemetry.javaagent.instrumentation.netty.v3_8.HttpRequestAndChannel;
import org.jboss.netty.handler.codec.http.HttpResponse;
final class NettyServerSingletons {
private static final Instrumenter INSTRUMENTER;
static {
NettyHttpServerAttributesGetter httpServerAttributesGetter =
new NettyHttpServerAttributesGetter();
INSTRUMENTER =
Instrumenter.builder(
GlobalOpenTelemetry.get(),
"io.opentelemetry.netty-3.8",
HttpSpanNameExtractor.create(httpServerAttributesGetter))
.setSpanStatusExtractor(HttpSpanStatusExtractor.create(httpServerAttributesGetter))
.addAttributesExtractor(
HttpServerAttributesExtractor.builder(
httpServerAttributesGetter, new NettyNetServerAttributesGetter())
.setCapturedRequestHeaders(CommonConfig.get().getServerRequestHeaders())
.setCapturedResponseHeaders(CommonConfig.get().getServerResponseHeaders())
.build())
.addOperationMetrics(HttpServerMetrics.get())
.addContextCustomizer(
(context, requestAndChannel, startAttributes) -> NettyErrorHolder.init(context))
.addContextCustomizer(HttpRouteHolder.get())
.buildServerInstrumenter(NettyHeadersGetter.INSTANCE);
}
public static Instrumenter instrumenter() {
return INSTRUMENTER;
}
private NettyServerSingletons() {}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy