55
66package io .opentelemetry .javaagent .instrumentation .tomcat .common ;
77
8- import io .opentelemetry .api .GlobalOpenTelemetry ;
9- import io .opentelemetry .instrumentation .api .incubator .semconv .http .HttpExperimentalAttributesExtractor ;
10- import io .opentelemetry .instrumentation .api .incubator .semconv .http .HttpServerExperimentalMetrics ;
118import io .opentelemetry .instrumentation .api .instrumenter .Instrumenter ;
12- import io .opentelemetry .instrumentation .api .instrumenter .InstrumenterBuilder ;
13- import io .opentelemetry .instrumentation .api .semconv .http .HttpServerAttributesExtractor ;
14- import io .opentelemetry .instrumentation .api .semconv .http .HttpServerMetrics ;
15- import io .opentelemetry .instrumentation .api .semconv .http .HttpServerRoute ;
16- import io .opentelemetry .instrumentation .api .semconv .http .HttpSpanNameExtractor ;
17- import io .opentelemetry .instrumentation .api .semconv .http .HttpSpanStatusExtractor ;
18- import io .opentelemetry .javaagent .bootstrap .internal .AgentCommonConfig ;
9+ import io .opentelemetry .javaagent .bootstrap .internal .JavaagentHttpServerInstrumenterBuilder ;
1910import io .opentelemetry .javaagent .bootstrap .servlet .AppServerBridge ;
2011import io .opentelemetry .javaagent .instrumentation .servlet .ServletAccessor ;
2112import io .opentelemetry .javaagent .instrumentation .servlet .ServletErrorCauseExtractor ;
13+ import java .util .Optional ;
2214import org .apache .coyote .Request ;
2315import org .apache .coyote .Response ;
2416
@@ -28,39 +20,17 @@ private TomcatInstrumenterFactory() {}
2820
2921 public static <REQUEST , RESPONSE > Instrumenter <Request , Response > create (
3022 String instrumentationName , ServletAccessor <REQUEST , RESPONSE > accessor ) {
31- TomcatHttpAttributesGetter httpAttributesGetter = new TomcatHttpAttributesGetter ();
32-
33- InstrumenterBuilder <Request , Response > builder =
34- Instrumenter .<Request , Response >builder (
35- GlobalOpenTelemetry .get (),
36- instrumentationName ,
37- HttpSpanNameExtractor .builder (httpAttributesGetter )
38- .setKnownMethods (AgentCommonConfig .get ().getKnownHttpRequestMethods ())
39- .build ())
40- .setSpanStatusExtractor (HttpSpanStatusExtractor .create (httpAttributesGetter ))
41- .setErrorCauseExtractor (new ServletErrorCauseExtractor <>(accessor ))
42- .addAttributesExtractor (
43- HttpServerAttributesExtractor .builder (httpAttributesGetter )
44- .setCapturedRequestHeaders (AgentCommonConfig .get ().getServerRequestHeaders ())
45- .setCapturedResponseHeaders (AgentCommonConfig .get ().getServerResponseHeaders ())
46- .setKnownMethods (AgentCommonConfig .get ().getKnownHttpRequestMethods ())
47- .build ())
48- .addContextCustomizer (
49- HttpServerRoute .builder (httpAttributesGetter )
50- .setKnownMethods (AgentCommonConfig .get ().getKnownHttpRequestMethods ())
51- .build ())
23+ return JavaagentHttpServerInstrumenterBuilder .createWithCustomizer (
24+ instrumentationName ,
25+ new TomcatHttpAttributesGetter (),
26+ Optional .of (TomcatRequestGetter .INSTANCE ),
27+ builder -> builder .setErrorCauseExtractor (new ServletErrorCauseExtractor <>(accessor ))
5228 .addContextCustomizer (
5329 (context , request , attributes ) ->
5430 new AppServerBridge .Builder ()
5531 .captureServletAttributes ()
5632 .recordException ()
5733 .init (context ))
58- .addOperationMetrics (HttpServerMetrics .get ());
59- if (AgentCommonConfig .get ().shouldEmitExperimentalHttpServerTelemetry ()) {
60- builder
61- .addAttributesExtractor (HttpExperimentalAttributesExtractor .create (httpAttributesGetter ))
62- .addOperationMetrics (HttpServerExperimentalMetrics .get ());
63- }
64- return builder .buildServerInstrumenter (TomcatRequestGetter .INSTANCE );
34+ );
6535 }
6636}
0 commit comments