diff --git a/examples/distro/custom/src/main/java/com/example/javaagent/DemoInstrumenterCustomizerProvider.java b/examples/distro/custom/src/main/java/com/example/javaagent/DemoInstrumenterCustomizerProvider.java index e57e8d5e146a..aa7f333cc90a 100644 --- a/examples/distro/custom/src/main/java/com/example/javaagent/DemoInstrumenterCustomizerProvider.java +++ b/examples/distro/custom/src/main/java/com/example/javaagent/DemoInstrumenterCustomizerProvider.java @@ -66,7 +66,7 @@ private void customizeHttpServer(InstrumenterCustomizer customizer) { customizer.addAttributesExtractor(new DemoAttributesExtractor()); customizer.addOperationMetrics(new DemoMetrics()); customizer.addContextCustomizer(new DemoContextCustomizer()); - customizer.setSpanNameExtractor( + customizer.setSpanNameExtractorCustomizer( unused -> (SpanNameExtractor) object -> "CustomHTTP/" + object.toString()); } diff --git a/examples/extension/src/main/java/com/example/javaagent/DemoInstrumenterCustomizerProvider.java b/examples/extension/src/main/java/com/example/javaagent/DemoInstrumenterCustomizerProvider.java index f9e1e96727b3..3aa57f28e5ef 100644 --- a/examples/extension/src/main/java/com/example/javaagent/DemoInstrumenterCustomizerProvider.java +++ b/examples/extension/src/main/java/com/example/javaagent/DemoInstrumenterCustomizerProvider.java @@ -69,7 +69,7 @@ private void customizeHttpServer(InstrumenterCustomizer customizer) { customizer.addAttributesExtractor(new DemoAttributesExtractor()); customizer.addOperationMetrics(new DemoMetrics()); customizer.addContextCustomizer(new DemoContextCustomizer()); - customizer.setSpanNameExtractor( + customizer.setSpanNameExtractorCustomizer( unused -> (SpanNameExtractor) object -> "CustomHTTP/" + object.toString()); } diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/internal/DefaultHttpClientInstrumenterBuilder.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/internal/DefaultHttpClientInstrumenterBuilder.java index 89dc9d923e12..d73e350503f4 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/internal/DefaultHttpClientInstrumenterBuilder.java +++ b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/internal/DefaultHttpClientInstrumenterBuilder.java @@ -54,7 +54,7 @@ public final class DefaultHttpClientInstrumenterBuilder { private final List> additionalExtractors = new ArrayList<>(); - private UnaryOperator> statusExtractorTransformer = + private UnaryOperator> spanStatusExtractorCustomizer = UnaryOperator.identity(); private final HttpClientAttributesExtractorBuilder httpAttributesExtractorBuilder; @@ -62,7 +62,7 @@ public final class DefaultHttpClientInstrumenterBuilder { private final HttpSpanNameExtractorBuilder httpSpanNameExtractorBuilder; @Nullable private final TextMapSetter headerSetter; - private UnaryOperator> spanNameExtractorTransformer = + private UnaryOperator> spanNameExtractorCustomizer = UnaryOperator.identity(); private boolean emitExperimentalHttpClientTelemetry = false; private Consumer> builderCustomizer = b -> {}; @@ -112,9 +112,9 @@ public DefaultHttpClientInstrumenterBuilder addAttributesExtr } @CanIgnoreReturnValue - public DefaultHttpClientInstrumenterBuilder setStatusExtractor( - UnaryOperator> statusExtractor) { - this.statusExtractorTransformer = statusExtractor; + public DefaultHttpClientInstrumenterBuilder setSpanStatusExtractorCustomizer( + UnaryOperator> spanStatusExtractorCustomizer) { + this.spanStatusExtractorCustomizer = spanStatusExtractorCustomizer; return this; } @@ -188,11 +188,14 @@ public DefaultHttpClientInstrumenterBuilder setRedactQueryPar return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ @CanIgnoreReturnValue - public DefaultHttpClientInstrumenterBuilder setSpanNameExtractor( - UnaryOperator> spanNameExtractor) { - this.spanNameExtractorTransformer = spanNameExtractor; + public DefaultHttpClientInstrumenterBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + this.spanNameExtractorCustomizer = spanNameExtractorCustomizer; return this; } @@ -227,13 +230,14 @@ public Instrumenter build() { Context.current(), request, attributesGetter)); } SpanNameExtractor spanNameExtractor = - spanNameExtractorTransformer.apply(httpSpanNameExtractorBuilder.build()); + spanNameExtractorCustomizer.apply(httpSpanNameExtractorBuilder.build()); InstrumenterBuilder builder = Instrumenter.builder( openTelemetry, instrumentationName, spanNameExtractor) .setSpanStatusExtractor( - statusExtractorTransformer.apply(HttpSpanStatusExtractor.create(attributesGetter))) + spanStatusExtractorCustomizer.apply( + HttpSpanStatusExtractor.create(attributesGetter))) .addAttributesExtractor(httpAttributesExtractorBuilder.build()) .addAttributesExtractors(additionalExtractors) .addOperationMetrics(HttpClientMetrics.get()) diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/internal/DefaultHttpServerInstrumenterBuilder.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/internal/DefaultHttpServerInstrumenterBuilder.java index 7ddd7171d03b..ffb48a61a9c5 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/internal/DefaultHttpServerInstrumenterBuilder.java +++ b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/internal/DefaultHttpServerInstrumenterBuilder.java @@ -47,14 +47,14 @@ public final class DefaultHttpServerInstrumenterBuilder { private final List> additionalExtractors = new ArrayList<>(); - private UnaryOperator> statusExtractorTransformer = + private UnaryOperator> spanStatusExtractorCustomizer = UnaryOperator.identity(); private final HttpServerAttributesExtractorBuilder httpAttributesExtractorBuilder; private final HttpSpanNameExtractorBuilder httpSpanNameExtractorBuilder; @Nullable private final TextMapGetter headerGetter; - private UnaryOperator> spanNameExtractorTransformer = + private UnaryOperator> spanNameExtractorCustomizer = UnaryOperator.identity(); private final HttpServerRouteBuilder httpServerRouteBuilder; private final HttpServerAttributesGetter attributesGetter; @@ -107,9 +107,9 @@ public DefaultHttpServerInstrumenterBuilder addAttributesExtr } @CanIgnoreReturnValue - public DefaultHttpServerInstrumenterBuilder setStatusExtractor( - UnaryOperator> statusExtractor) { - this.statusExtractorTransformer = statusExtractor; + public DefaultHttpServerInstrumenterBuilder setSpanStatusExtractorCustomizer( + UnaryOperator> spanStatusExtractorCustomizer) { + this.spanStatusExtractorCustomizer = spanStatusExtractorCustomizer; return this; } @@ -172,11 +172,14 @@ public DefaultHttpServerInstrumenterBuilder setKnownMethods( return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ @CanIgnoreReturnValue - public DefaultHttpServerInstrumenterBuilder setSpanNameExtractor( - UnaryOperator> spanNameExtractor) { - this.spanNameExtractorTransformer = spanNameExtractor; + public DefaultHttpServerInstrumenterBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + this.spanNameExtractorCustomizer = spanNameExtractorCustomizer; return this; } @@ -198,13 +201,14 @@ public Instrumenter build() { public InstrumenterBuilder instrumenterBuilder() { SpanNameExtractor spanNameExtractor = - spanNameExtractorTransformer.apply(httpSpanNameExtractorBuilder.build()); + spanNameExtractorCustomizer.apply(httpSpanNameExtractorBuilder.build()); InstrumenterBuilder builder = Instrumenter.builder( openTelemetry, instrumentationName, spanNameExtractor) .setSpanStatusExtractor( - statusExtractorTransformer.apply(HttpSpanStatusExtractor.create(attributesGetter))) + spanStatusExtractorCustomizer.apply( + HttpSpanStatusExtractor.create(attributesGetter))) .addAttributesExtractor(httpAttributesExtractorBuilder.build()) .addAttributesExtractors(additionalExtractors) .addContextCustomizer(httpServerRouteBuilder.build()) diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/instrumenter/InstrumenterCustomizer.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/instrumenter/InstrumenterCustomizer.java index 0873f4054969..aa195370aedc 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/instrumenter/InstrumenterCustomizer.java +++ b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/instrumenter/InstrumenterCustomizer.java @@ -87,9 +87,23 @@ InstrumenterCustomizer addAttributesExtractors( * * @param spanNameExtractor function that transforms the original span name extractor * @return this InstrumenterCustomizer for method chaining + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. */ - InstrumenterCustomizer setSpanNameExtractor( - UnaryOperator> spanNameExtractor); + @Deprecated + default InstrumenterCustomizer setSpanNameExtractor( + UnaryOperator> spanNameExtractor) { + return setSpanNameExtractorCustomizer(spanNameExtractor); + } + + /** + * Sets a transformer function that will modify the {@link SpanNameExtractor}. This allows + * customizing how span names are generated for the instrumented operations. + * + * @param spanNameExtractorCustomizer function that transforms the original span name extractor + * @return this InstrumenterCustomizer for method chaining + */ + InstrumenterCustomizer setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer); /** * Sets a transformer function that will modify the {@link SpanStatusExtractor}. This allows @@ -97,9 +111,24 @@ InstrumenterCustomizer setSpanNameExtractor( * * @param spanStatusExtractor function that transforms the original span status extractor * @return this InstrumenterCustomizer for method chaining + * @deprecated Use {@link #setSpanStatusExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated + default InstrumenterCustomizer setSpanStatusExtractor( + UnaryOperator> spanStatusExtractor) { + return setSpanStatusExtractorCustomizer(spanStatusExtractor); + } + + /** + * Sets a transformer function that will modify the {@link SpanStatusExtractor}. This allows + * customizing how span statuses are generated for the instrumented operations. + * + * @param spanStatusExtractorCustomizer function that transforms the original span status + * extractor + * @return this InstrumenterCustomizer for method chaining */ - InstrumenterCustomizer setSpanStatusExtractor( - UnaryOperator> spanStatusExtractor); + InstrumenterCustomizer setSpanStatusExtractorCustomizer( + UnaryOperator> spanStatusExtractorCustomizer); /** Types of instrumentation. */ enum InstrumentationType { diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/instrumenter/internal/InstrumenterCustomizerImpl.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/instrumenter/internal/InstrumenterCustomizerImpl.java index a45862652156..fc73d1db7efb 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/instrumenter/internal/InstrumenterCustomizerImpl.java +++ b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/instrumenter/internal/InstrumenterCustomizerImpl.java @@ -83,16 +83,16 @@ public InstrumenterCustomizer addContextCustomizer(ContextCustomizer customiz @Override @SuppressWarnings("FunctionalInterfaceClash") // interface has deprecated overload - public InstrumenterCustomizer setSpanNameExtractor( - UnaryOperator> spanNameExtractor) { - customizer.setSpanNameExtractor(spanNameExtractor); + public InstrumenterCustomizer setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + customizer.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } @Override - public InstrumenterCustomizer setSpanStatusExtractor( - UnaryOperator> spanStatusExtractor) { - customizer.setSpanStatusExtractor(spanStatusExtractor); + public InstrumenterCustomizer setSpanStatusExtractorCustomizer( + UnaryOperator> spanStatusExtractorCustomizer) { + customizer.setSpanStatusExtractorCustomizer(spanStatusExtractorCustomizer); return this; } } diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/InstrumenterBuilder.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/InstrumenterBuilder.java index eb80bd8dd1d7..422d357349a3 100644 --- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/InstrumenterBuilder.java +++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/InstrumenterBuilder.java @@ -437,18 +437,18 @@ public void addContextCustomizer(ContextCustomizer customizer) { } @Override - public void setSpanNameExtractor( - UnaryOperator> spanNameExtractorTransformer) { + public void setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { builder.spanNameExtractor = - spanNameExtractorTransformer.apply(builder.spanNameExtractor); + spanNameExtractorCustomizer.apply(builder.spanNameExtractor); } @Override - public void setSpanStatusExtractor( + public void setSpanStatusExtractorCustomizer( UnaryOperator> - spanStatusExtractorTransformer) { + spanStatusExtractorCustomizer) { builder.spanStatusExtractor = - spanStatusExtractorTransformer.apply(builder.spanStatusExtractor); + spanStatusExtractorCustomizer.apply(builder.spanStatusExtractor); } }); } diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/InternalInstrumenterCustomizer.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/InternalInstrumenterCustomizer.java index 6f88bd8c225e..7db66d0221d9 100644 --- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/InternalInstrumenterCustomizer.java +++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/InternalInstrumenterCustomizer.java @@ -31,10 +31,10 @@ void addAttributesExtractors( void addContextCustomizer(ContextCustomizer customizer); - void setSpanNameExtractor( - UnaryOperator> spanNameExtractorTransformer); + void setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer); - void setSpanStatusExtractor( + void setSpanStatusExtractorCustomizer( UnaryOperator> - spanStatusExtractorTransformer); + spanStatusExtractorCustomizer); } diff --git a/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/internal/InstrumentationCustomizerTest.java b/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/internal/InstrumentationCustomizerTest.java index 725f71726c1c..bb5ffc4a3b9f 100644 --- a/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/internal/InstrumentationCustomizerTest.java +++ b/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/internal/InstrumentationCustomizerTest.java @@ -327,7 +327,7 @@ void testSetSpanNameExtractor() { setCustomizer( customizer -> { customizerCalled.set(true); - customizer.setSpanNameExtractor( + customizer.setSpanNameExtractorCustomizer( unused -> (SpanNameExtractor) object -> "new name"); }); @@ -366,7 +366,7 @@ void testSetSpanStatusExtractor() { setCustomizer( customizer -> { customizerCalled.set(true); - customizer.setSpanStatusExtractor( + customizer.setSpanStatusExtractorCustomizer( unused -> (spanStatusBuilder, request, response, error) -> spanStatusBuilder.setStatus(StatusCode.OK)); diff --git a/instrumentation/apache-dubbo-2.7/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/DubboTelemetryBuilder.java b/instrumentation/apache-dubbo-2.7/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/DubboTelemetryBuilder.java index bedaa61c1ea3..ec5fdf923f32 100644 --- a/instrumentation/apache-dubbo-2.7/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/DubboTelemetryBuilder.java +++ b/instrumentation/apache-dubbo-2.7/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/DubboTelemetryBuilder.java @@ -38,9 +38,9 @@ public final class DubboTelemetryBuilder { @Nullable private String peerService; private final List> attributesExtractors = new ArrayList<>(); - private UnaryOperator> clientSpanNameExtractorTransformer = + private UnaryOperator> clientSpanNameExtractorCustomizer = UnaryOperator.identity(); - private UnaryOperator> serverSpanNameExtractorTransformer = + private UnaryOperator> serverSpanNameExtractorCustomizer = UnaryOperator.identity(); DubboTelemetryBuilder(OpenTelemetry openTelemetry) { @@ -63,19 +63,49 @@ public DubboTelemetryBuilder addAttributesExtractor( return this; } - /** Sets custom client {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom client {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setClientSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public DubboTelemetryBuilder setClientSpanNameExtractor( UnaryOperator> clientSpanNameExtractor) { - this.clientSpanNameExtractorTransformer = clientSpanNameExtractor; + return setClientSpanNameExtractorCustomizer(clientSpanNameExtractor); + } + + /** + * Sets a customizer that receives the default client {@link SpanNameExtractor} and returns a + * customized one. + */ + @CanIgnoreReturnValue + public DubboTelemetryBuilder setClientSpanNameExtractorCustomizer( + UnaryOperator> clientSpanNameExtractorCustomizer) { + this.clientSpanNameExtractorCustomizer = clientSpanNameExtractorCustomizer; return this; } - /** Sets custom server {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom server {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setServerSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public DubboTelemetryBuilder setServerSpanNameExtractor( UnaryOperator> serverSpanNameExtractor) { - this.serverSpanNameExtractorTransformer = serverSpanNameExtractor; + return setServerSpanNameExtractorCustomizer(serverSpanNameExtractor); + } + + /** + * Sets a customizer that receives the default server {@link SpanNameExtractor} and returns a + * customized one. + */ + @CanIgnoreReturnValue + public DubboTelemetryBuilder setServerSpanNameExtractorCustomizer( + UnaryOperator> serverSpanNameExtractorCustomizer) { + this.serverSpanNameExtractorCustomizer = serverSpanNameExtractorCustomizer; return this; } @@ -87,9 +117,9 @@ public DubboTelemetry build() { SpanNameExtractor spanNameExtractor = RpcSpanNameExtractor.create(rpcAttributesGetter); SpanNameExtractor clientSpanNameExtractor = - clientSpanNameExtractorTransformer.apply(spanNameExtractor); + clientSpanNameExtractorCustomizer.apply(spanNameExtractor); SpanNameExtractor serverSpanNameExtractor = - serverSpanNameExtractorTransformer.apply(spanNameExtractor); + serverSpanNameExtractorCustomizer.apply(spanNameExtractor); DubboClientNetworkAttributesGetter netClientAttributesGetter = new DubboClientNetworkAttributesGetter(); DubboNetworkServerAttributesGetter netServerAttributesGetter = diff --git a/instrumentation/apache-httpclient/apache-httpclient-4.3/library/src/main/java/io/opentelemetry/instrumentation/apachehttpclient/v4_3/ApacheHttpClientTelemetryBuilder.java b/instrumentation/apache-httpclient/apache-httpclient-4.3/library/src/main/java/io/opentelemetry/instrumentation/apachehttpclient/v4_3/ApacheHttpClientTelemetryBuilder.java index 28ddb67670d5..1ee27eb05bbc 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-4.3/library/src/main/java/io/opentelemetry/instrumentation/apachehttpclient/v4_3/ApacheHttpClientTelemetryBuilder.java +++ b/instrumentation/apache-httpclient/apache-httpclient-4.3/library/src/main/java/io/opentelemetry/instrumentation/apachehttpclient/v4_3/ApacheHttpClientTelemetryBuilder.java @@ -89,11 +89,26 @@ public ApacheHttpClientTelemetryBuilder setKnownMethods(Collection known return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public ApacheHttpClientTelemetryBuilder setSpanNameExtractor( UnaryOperator> spanNameExtractorTransformer) { - builder.setSpanNameExtractor(spanNameExtractorTransformer); + return setSpanNameExtractorCustomizer(spanNameExtractorTransformer); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public ApacheHttpClientTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/apache-httpclient/apache-httpclient-5.2/library/src/main/java/io/opentelemetry/instrumentation/apachehttpclient/v5_2/ApacheHttpClientTelemetryBuilder.java b/instrumentation/apache-httpclient/apache-httpclient-5.2/library/src/main/java/io/opentelemetry/instrumentation/apachehttpclient/v5_2/ApacheHttpClientTelemetryBuilder.java index 48e68b159b15..fa5a89c2bf73 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-5.2/library/src/main/java/io/opentelemetry/instrumentation/apachehttpclient/v5_2/ApacheHttpClientTelemetryBuilder.java +++ b/instrumentation/apache-httpclient/apache-httpclient-5.2/library/src/main/java/io/opentelemetry/instrumentation/apachehttpclient/v5_2/ApacheHttpClientTelemetryBuilder.java @@ -89,11 +89,26 @@ public ApacheHttpClientTelemetryBuilder setKnownMethods(Collection known return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public ApacheHttpClientTelemetryBuilder setSpanNameExtractor( UnaryOperator> spanNameExtractorTransformer) { - builder.setSpanNameExtractor(spanNameExtractorTransformer); + return setSpanNameExtractorCustomizer(spanNameExtractorTransformer); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public ApacheHttpClientTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/armeria/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaClientTelemetryBuilder.java b/instrumentation/armeria/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaClientTelemetryBuilder.java index 5f7c9f5490df..de9ef6e72c29 100644 --- a/instrumentation/armeria/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaClientTelemetryBuilder.java +++ b/instrumentation/armeria/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaClientTelemetryBuilder.java @@ -36,11 +36,27 @@ public final class ArmeriaClientTelemetryBuilder { builder = ArmeriaInstrumenterBuilderFactory.getClientBuilder(openTelemetry); } - /** Sets the status extractor for client spans. */ + /** + * Sets the status extractor for client spans. + * + * @deprecated Use {@link #setSpanStatusExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public ArmeriaClientTelemetryBuilder setStatusExtractor( UnaryOperator> statusExtractor) { - builder.setStatusExtractor(statusExtractor); + return setSpanStatusExtractorCustomizer(statusExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanStatusExtractor} and returns a + * customized one. + */ + @CanIgnoreReturnValue + public ArmeriaClientTelemetryBuilder setSpanStatusExtractorCustomizer( + UnaryOperator> + spanStatusExtractorCustomizer) { + builder.setSpanStatusExtractorCustomizer(spanStatusExtractorCustomizer); return this; } @@ -98,11 +114,26 @@ public ArmeriaClientTelemetryBuilder setKnownMethods(Collection knownMet return this; } - /** Sets custom client {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom client {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public ArmeriaClientTelemetryBuilder setSpanNameExtractor( UnaryOperator> clientSpanNameExtractor) { - builder.setSpanNameExtractor(clientSpanNameExtractor); + return setSpanNameExtractorCustomizer(clientSpanNameExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public ArmeriaClientTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/armeria/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaServerTelemetryBuilder.java b/instrumentation/armeria/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaServerTelemetryBuilder.java index dfea8dca34e1..eac0374c3fd9 100644 --- a/instrumentation/armeria/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaServerTelemetryBuilder.java +++ b/instrumentation/armeria/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaServerTelemetryBuilder.java @@ -34,11 +34,27 @@ public final class ArmeriaServerTelemetryBuilder { builder = ArmeriaInstrumenterBuilderFactory.getServerBuilder(openTelemetry); } - /** Sets the status extractor for server spans. */ + /** + * Sets the status extractor for server spans. + * + * @deprecated Use {@link #setSpanStatusExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public ArmeriaServerTelemetryBuilder setStatusExtractor( UnaryOperator> statusExtractor) { - builder.setStatusExtractor(statusExtractor); + return setSpanStatusExtractorCustomizer(statusExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanStatusExtractor} and returns a + * customized one. + */ + @CanIgnoreReturnValue + public ArmeriaServerTelemetryBuilder setSpanStatusExtractorCustomizer( + UnaryOperator> + spanStatusExtractorCustomizer) { + builder.setSpanStatusExtractorCustomizer(spanStatusExtractorCustomizer); return this; } @@ -96,11 +112,26 @@ public ArmeriaServerTelemetryBuilder setKnownMethods(Collection knownMet return this; } - /** Sets custom server {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom server {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public ArmeriaServerTelemetryBuilder setSpanNameExtractor( UnaryOperator> serverSpanNameExtractor) { - builder.setSpanNameExtractor(serverSpanNameExtractor); + return setSpanNameExtractorCustomizer(serverSpanNameExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public ArmeriaServerTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/elasticsearch/elasticsearch-rest-7.0/library/src/main/java/io/opentelemetry/instrumentation/elasticsearch/rest/v7_0/ElasticsearchRest7TelemetryBuilder.java b/instrumentation/elasticsearch/elasticsearch-rest-7.0/library/src/main/java/io/opentelemetry/instrumentation/elasticsearch/rest/v7_0/ElasticsearchRest7TelemetryBuilder.java index 268a06eedcf6..142c15a4efa4 100644 --- a/instrumentation/elasticsearch/elasticsearch-rest-7.0/library/src/main/java/io/opentelemetry/instrumentation/elasticsearch/rest/v7_0/ElasticsearchRest7TelemetryBuilder.java +++ b/instrumentation/elasticsearch/elasticsearch-rest-7.0/library/src/main/java/io/opentelemetry/instrumentation/elasticsearch/rest/v7_0/ElasticsearchRest7TelemetryBuilder.java @@ -33,7 +33,7 @@ public final class ElasticsearchRest7TelemetryBuilder { private Function< SpanNameExtractor, ? extends SpanNameExtractor> - spanNameExtractorTransformer = Function.identity(); + spanNameExtractorCustomizer = Function.identity(); ElasticsearchRest7TelemetryBuilder(OpenTelemetry openTelemetry) { this.openTelemetry = openTelemetry; @@ -69,14 +69,32 @@ public ElasticsearchRest7TelemetryBuilder setKnownMethods(Collection kno return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(Function)} instead. + */ + @Deprecated @CanIgnoreReturnValue public ElasticsearchRest7TelemetryBuilder setSpanNameExtractor( Function< SpanNameExtractor, ? extends SpanNameExtractor> - spanNameExtractorTransformer) { - this.spanNameExtractorTransformer = spanNameExtractorTransformer; + spanNameExtractorCustomizer) { + return setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public ElasticsearchRest7TelemetryBuilder setSpanNameExtractorCustomizer( + Function< + SpanNameExtractor, + ? extends SpanNameExtractor> + spanNameExtractorCustomizer) { + this.spanNameExtractorCustomizer = spanNameExtractorCustomizer; return this; } @@ -90,7 +108,7 @@ public ElasticsearchRest7Telemetry build() { openTelemetry, INSTRUMENTATION_NAME, attributesExtractors, - spanNameExtractorTransformer, + spanNameExtractorCustomizer, knownMethods, false); diff --git a/instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/GrpcTelemetryBuilder.java b/instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/GrpcTelemetryBuilder.java index b2b17ef7802b..f89f2a7f8b60 100644 --- a/instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/GrpcTelemetryBuilder.java +++ b/instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/GrpcTelemetryBuilder.java @@ -39,9 +39,9 @@ public final class GrpcTelemetryBuilder { private final OpenTelemetry openTelemetry; @Nullable private String peerService; - private UnaryOperator> clientSpanNameExtractorTransformer = + private UnaryOperator> clientSpanNameExtractorCustomizer = UnaryOperator.identity(); - private UnaryOperator> serverSpanNameExtractorTransformer = + private UnaryOperator> serverSpanNameExtractorCustomizer = UnaryOperator.identity(); private final List> additionalExtractors = new ArrayList<>(); @@ -94,19 +94,49 @@ public GrpcTelemetryBuilder addServerAttributeExtractor( return this; } - /** Sets custom client {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom client {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setClientSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public GrpcTelemetryBuilder setClientSpanNameExtractor( UnaryOperator> clientSpanNameExtractor) { - this.clientSpanNameExtractorTransformer = clientSpanNameExtractor; + return setClientSpanNameExtractorCustomizer(clientSpanNameExtractor); + } + + /** + * Sets a customizer that receives the default client {@link SpanNameExtractor} and returns a + * customized one. + */ + @CanIgnoreReturnValue + public GrpcTelemetryBuilder setClientSpanNameExtractorCustomizer( + UnaryOperator> clientSpanNameExtractorCustomizer) { + this.clientSpanNameExtractorCustomizer = clientSpanNameExtractorCustomizer; return this; } - /** Sets custom server {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom server {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setServerSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public GrpcTelemetryBuilder setServerSpanNameExtractor( UnaryOperator> serverSpanNameExtractor) { - this.serverSpanNameExtractorTransformer = serverSpanNameExtractor; + return setServerSpanNameExtractorCustomizer(serverSpanNameExtractor); + } + + /** + * Sets a customizer that receives the default server {@link SpanNameExtractor} and returns a + * customized one. + */ + @CanIgnoreReturnValue + public GrpcTelemetryBuilder setServerSpanNameExtractorCustomizer( + UnaryOperator> serverSpanNameExtractorCustomizer) { + this.serverSpanNameExtractorCustomizer = serverSpanNameExtractorCustomizer; return this; } @@ -159,9 +189,9 @@ public GrpcTelemetryBuilder setCapturedServerRequestMetadata( public GrpcTelemetry build() { SpanNameExtractor originalSpanNameExtractor = new GrpcSpanNameExtractor(); SpanNameExtractor clientSpanNameExtractor = - clientSpanNameExtractorTransformer.apply(originalSpanNameExtractor); + clientSpanNameExtractorCustomizer.apply(originalSpanNameExtractor); SpanNameExtractor serverSpanNameExtractor = - serverSpanNameExtractorTransformer.apply(originalSpanNameExtractor); + serverSpanNameExtractorCustomizer.apply(originalSpanNameExtractor); InstrumenterBuilder clientInstrumenterBuilder = Instrumenter.builder(openTelemetry, INSTRUMENTATION_NAME, clientSpanNameExtractor); diff --git a/instrumentation/helidon-4.3/library/src/main/java/io/opentelemetry/instrumentation/helidon/v4_3/HelidonTelemetryBuilder.java b/instrumentation/helidon-4.3/library/src/main/java/io/opentelemetry/instrumentation/helidon/v4_3/HelidonTelemetryBuilder.java index abb032841919..8fb91705d384 100644 --- a/instrumentation/helidon-4.3/library/src/main/java/io/opentelemetry/instrumentation/helidon/v4_3/HelidonTelemetryBuilder.java +++ b/instrumentation/helidon-4.3/library/src/main/java/io/opentelemetry/instrumentation/helidon/v4_3/HelidonTelemetryBuilder.java @@ -40,11 +40,27 @@ public final class HelidonTelemetryBuilder { HelidonRequestGetter.INSTANCE); } - /** Sets the status extractor for server spans. */ + /** + * Sets the status extractor for server spans. + * + * @deprecated Use {@link #setSpanStatusExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public HelidonTelemetryBuilder setStatusExtractor( UnaryOperator> statusExtractor) { - builder.setStatusExtractor(statusExtractor); + return setSpanStatusExtractorCustomizer(statusExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanStatusExtractor} and returns a + * customized one. + */ + @CanIgnoreReturnValue + public HelidonTelemetryBuilder setSpanStatusExtractorCustomizer( + UnaryOperator> + spanStatusExtractorCustomizer) { + builder.setSpanStatusExtractorCustomizer(spanStatusExtractorCustomizer); return this; } @@ -100,11 +116,26 @@ public HelidonTelemetryBuilder setKnownMethods(Collection knownMethods) return this; } - /** Sets custom server {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom server {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public HelidonTelemetryBuilder setSpanNameExtractor( UnaryOperator> serverSpanNameExtractor) { - builder.setSpanNameExtractor(serverSpanNameExtractor); + return setSpanNameExtractorCustomizer(serverSpanNameExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public HelidonTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/java-http-client/library/src/main/java/io/opentelemetry/instrumentation/javahttpclient/JavaHttpClientTelemetryBuilder.java b/instrumentation/java-http-client/library/src/main/java/io/opentelemetry/instrumentation/javahttpclient/JavaHttpClientTelemetryBuilder.java index 77ce2c4e3a3c..66bd30806947 100644 --- a/instrumentation/java-http-client/library/src/main/java/io/opentelemetry/instrumentation/javahttpclient/JavaHttpClientTelemetryBuilder.java +++ b/instrumentation/java-http-client/library/src/main/java/io/opentelemetry/instrumentation/javahttpclient/JavaHttpClientTelemetryBuilder.java @@ -88,11 +88,26 @@ public JavaHttpClientTelemetryBuilder setKnownMethods(Collection knownMe return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public JavaHttpClientTelemetryBuilder setSpanNameExtractor( UnaryOperator> spanNameExtractorTransformer) { - builder.setSpanNameExtractor(spanNameExtractorTransformer); + return setSpanNameExtractorCustomizer(spanNameExtractorTransformer); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public JavaHttpClientTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/java-http-server/library/src/main/java/io/opentelemetry/instrumentation/javahttpserver/JavaHttpServerTelemetryBuilder.java b/instrumentation/java-http-server/library/src/main/java/io/opentelemetry/instrumentation/javahttpserver/JavaHttpServerTelemetryBuilder.java index 4befaf9b9277..790eb07ca8b9 100644 --- a/instrumentation/java-http-server/library/src/main/java/io/opentelemetry/instrumentation/javahttpserver/JavaHttpServerTelemetryBuilder.java +++ b/instrumentation/java-http-server/library/src/main/java/io/opentelemetry/instrumentation/javahttpserver/JavaHttpServerTelemetryBuilder.java @@ -39,11 +39,27 @@ public final class JavaHttpServerTelemetryBuilder { JavaHttpServerExchangeGetter.INSTANCE); } - /** Sets the status extractor for server spans. */ + /** + * Sets the status extractor for server spans. + * + * @deprecated Use {@link #setSpanStatusExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public JavaHttpServerTelemetryBuilder setStatusExtractor( UnaryOperator> statusExtractor) { - builder.setStatusExtractor(statusExtractor); + return setSpanStatusExtractorCustomizer(statusExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanStatusExtractor} and returns a + * customized one. + */ + @CanIgnoreReturnValue + public JavaHttpServerTelemetryBuilder setSpanStatusExtractorCustomizer( + UnaryOperator> + spanStatusExtractorCustomizer) { + builder.setSpanStatusExtractorCustomizer(spanStatusExtractorCustomizer); return this; } @@ -101,11 +117,26 @@ public JavaHttpServerTelemetryBuilder setKnownMethods(Collection knownMe return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public JavaHttpServerTelemetryBuilder setSpanNameExtractor( UnaryOperator> spanNameExtractorTransformer) { - builder.setSpanNameExtractor(spanNameExtractorTransformer); + return setSpanNameExtractorCustomizer(spanNameExtractorTransformer); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public JavaHttpServerTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/jetty-httpclient/jetty-httpclient-12.0/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v12_0/JettyClientTelemetryBuilder.java b/instrumentation/jetty-httpclient/jetty-httpclient-12.0/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v12_0/JettyClientTelemetryBuilder.java index f5706c46b869..90b21cecc4dc 100644 --- a/instrumentation/jetty-httpclient/jetty-httpclient-12.0/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v12_0/JettyClientTelemetryBuilder.java +++ b/instrumentation/jetty-httpclient/jetty-httpclient-12.0/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v12_0/JettyClientTelemetryBuilder.java @@ -102,11 +102,26 @@ public JettyClientTelemetryBuilder setKnownMethods(Collection knownMetho return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public JettyClientTelemetryBuilder setSpanNameExtractor( UnaryOperator> spanNameExtractorTransformer) { - builder.setSpanNameExtractor(spanNameExtractorTransformer); + return setSpanNameExtractorCustomizer(spanNameExtractorTransformer); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public JettyClientTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/JettyClientTelemetryBuilder.java b/instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/JettyClientTelemetryBuilder.java index 8ded5c9d5dff..f35cbaed03f6 100644 --- a/instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/JettyClientTelemetryBuilder.java +++ b/instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/JettyClientTelemetryBuilder.java @@ -102,11 +102,26 @@ public JettyClientTelemetryBuilder setKnownMethods(Collection knownMetho return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public JettyClientTelemetryBuilder setSpanNameExtractor( UnaryOperator> spanNameExtractorTransformer) { - builder.setSpanNameExtractor(spanNameExtractorTransformer); + return setSpanNameExtractorCustomizer(spanNameExtractorTransformer); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public JettyClientTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/ktor/ktor-1.0/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v1_0/KtorServerTelemetry.kt b/instrumentation/ktor/ktor-1.0/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v1_0/KtorServerTelemetry.kt index 3566da713fa6..60b77ba2cdc4 100644 --- a/instrumentation/ktor/ktor-1.0/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v1_0/KtorServerTelemetry.kt +++ b/instrumentation/ktor/ktor-1.0/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v1_0/KtorServerTelemetry.kt @@ -47,7 +47,7 @@ class KtorServerTelemetry private constructor( fun setStatusExtractor( extractor: (SpanStatusExtractor) -> SpanStatusExtractor ) { - builder.setStatusExtractor { prevExtractor -> + builder.setSpanStatusExtractorCustomizer { prevExtractor -> SpanStatusExtractor { spanStatusBuilder: SpanStatusBuilder, request: ApplicationRequest, diff --git a/instrumentation/ktor/ktor-2-common/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v2_0/common/AbstractKtorClientTelemetryBuilder.kt b/instrumentation/ktor/ktor-2-common/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v2_0/common/AbstractKtorClientTelemetryBuilder.kt index 718c7250a72f..9f5eab1e603a 100644 --- a/instrumentation/ktor/ktor-2-common/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v2_0/common/AbstractKtorClientTelemetryBuilder.kt +++ b/instrumentation/ktor/ktor-2-common/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v2_0/common/AbstractKtorClientTelemetryBuilder.kt @@ -85,7 +85,7 @@ abstract class AbstractKtorClientTelemetryBuilder( } fun spanNameExtractor(spanNameExtractor: UnaryOperator>) { - builder.setSpanNameExtractor(spanNameExtractor) + builder.setSpanNameExtractorCustomizer(spanNameExtractor) } class ExtractorBuilder { diff --git a/instrumentation/ktor/ktor-2-common/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v2_0/common/AbstractKtorServerTelemetryBuilder.kt b/instrumentation/ktor/ktor-2-common/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v2_0/common/AbstractKtorServerTelemetryBuilder.kt index 0323cae40ac9..58f89f73ff0a 100644 --- a/instrumentation/ktor/ktor-2-common/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v2_0/common/AbstractKtorServerTelemetryBuilder.kt +++ b/instrumentation/ktor/ktor-2-common/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v2_0/common/AbstractKtorServerTelemetryBuilder.kt @@ -44,7 +44,7 @@ abstract class AbstractKtorServerTelemetryBuilder(private val instrumentationNam } fun spanStatusExtractor(extract: SpanStatusData.(SpanStatusExtractor) -> Unit) { - builder.setStatusExtractor { prevExtractor -> + builder.setSpanStatusExtractorCustomizer { prevExtractor -> SpanStatusExtractor { spanStatusBuilder: SpanStatusBuilder, request: ApplicationRequest, @@ -95,7 +95,7 @@ abstract class AbstractKtorServerTelemetryBuilder(private val instrumentationNam } fun spanNameExtractor(spanNameExtractor: UnaryOperator>) { - builder.setSpanNameExtractor(spanNameExtractor) + builder.setSpanNameExtractorCustomizer(spanNameExtractor) } class ExtractorBuilder { diff --git a/instrumentation/kubernetes-client-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kubernetesclient/KubernetesClientSingletons.java b/instrumentation/kubernetes-client-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kubernetesclient/KubernetesClientSingletons.java index b6ce1ac000ff..befb235f456d 100644 --- a/instrumentation/kubernetes-client-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kubernetesclient/KubernetesClientSingletons.java +++ b/instrumentation/kubernetes-client-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kubernetesclient/KubernetesClientSingletons.java @@ -37,7 +37,7 @@ public class KubernetesClientSingletons { new KubernetesExperimentalAttributesExtractor()); } }) - .setSpanNameExtractor( + .setSpanNameExtractorCustomizer( requestSpanNameExtractor -> request -> KubernetesRequestDigest.parse(request).toString()) .build(); diff --git a/instrumentation/netty/netty-4.1/library/src/main/java/io/opentelemetry/instrumentation/netty/v4_1/NettyClientTelemetryBuilder.java b/instrumentation/netty/netty-4.1/library/src/main/java/io/opentelemetry/instrumentation/netty/v4_1/NettyClientTelemetryBuilder.java index d612d33ff18e..c76afb627003 100644 --- a/instrumentation/netty/netty-4.1/library/src/main/java/io/opentelemetry/instrumentation/netty/v4_1/NettyClientTelemetryBuilder.java +++ b/instrumentation/netty/netty-4.1/library/src/main/java/io/opentelemetry/instrumentation/netty/v4_1/NettyClientTelemetryBuilder.java @@ -93,11 +93,26 @@ public NettyClientTelemetryBuilder setKnownMethods(Collection knownMetho return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public NettyClientTelemetryBuilder setSpanNameExtractor( UnaryOperator> spanNameExtractorTransformer) { - builder.setSpanNameExtractor(spanNameExtractorTransformer); + return setSpanNameExtractorCustomizer(spanNameExtractorTransformer); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public NettyClientTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/okhttp/okhttp-3.0/library/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/OkHttpTelemetryBuilder.java b/instrumentation/okhttp/okhttp-3.0/library/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/OkHttpTelemetryBuilder.java index dc864ea8a8ff..ce208b68466c 100644 --- a/instrumentation/okhttp/okhttp-3.0/library/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/OkHttpTelemetryBuilder.java +++ b/instrumentation/okhttp/okhttp-3.0/library/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/OkHttpTelemetryBuilder.java @@ -86,11 +86,26 @@ public OkHttpTelemetryBuilder setKnownMethods(Collection knownMethods) { return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public OkHttpTelemetryBuilder setSpanNameExtractor( UnaryOperator> spanNameExtractorTransformer) { - builder.setSpanNameExtractor(spanNameExtractorTransformer); + return setSpanNameExtractorCustomizer(spanNameExtractorTransformer); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public OkHttpTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/quartz-2.0/library/src/main/java/io/opentelemetry/instrumentation/quartz/v2_0/QuartzTelemetryBuilder.java b/instrumentation/quartz-2.0/library/src/main/java/io/opentelemetry/instrumentation/quartz/v2_0/QuartzTelemetryBuilder.java index 26e52916bf7c..fde589576412 100644 --- a/instrumentation/quartz-2.0/library/src/main/java/io/opentelemetry/instrumentation/quartz/v2_0/QuartzTelemetryBuilder.java +++ b/instrumentation/quartz-2.0/library/src/main/java/io/opentelemetry/instrumentation/quartz/v2_0/QuartzTelemetryBuilder.java @@ -29,7 +29,7 @@ public final class QuartzTelemetryBuilder { private Function< SpanNameExtractor, ? extends SpanNameExtractor> - spanNameExtractorTransformer = Function.identity(); + spanNameExtractorCustomizer = Function.identity(); QuartzTelemetryBuilder(OpenTelemetry openTelemetry) { this.openTelemetry = openTelemetry; @@ -58,14 +58,32 @@ public QuartzTelemetryBuilder setCaptureExperimentalSpanAttributes( return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(Function)} instead. + */ + @Deprecated @CanIgnoreReturnValue public QuartzTelemetryBuilder setSpanNameExtractor( Function< SpanNameExtractor, ? extends SpanNameExtractor> - spanNameExtractorTransformer) { - this.spanNameExtractorTransformer = spanNameExtractorTransformer; + spanNameExtractorCustomizer) { + return setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public QuartzTelemetryBuilder setSpanNameExtractorCustomizer( + Function< + SpanNameExtractor, + ? extends SpanNameExtractor> + spanNameExtractorCustomizer) { + this.spanNameExtractorCustomizer = spanNameExtractorCustomizer; return this; } @@ -74,7 +92,7 @@ public QuartzTelemetryBuilder setSpanNameExtractor( */ public QuartzTelemetry build() { SpanNameExtractor spanNameExtractor = - spanNameExtractorTransformer.apply(new QuartzSpanNameExtractor()); + spanNameExtractorCustomizer.apply(new QuartzSpanNameExtractor()); InstrumenterBuilder instrumenter = Instrumenter.builder(openTelemetry, INSTRUMENTATION_NAME, spanNameExtractor); diff --git a/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/R2dbcTelemetryBuilder.java b/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/R2dbcTelemetryBuilder.java index fc39e40a6fa2..a7567ac76345 100644 --- a/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/R2dbcTelemetryBuilder.java +++ b/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/R2dbcTelemetryBuilder.java @@ -21,7 +21,7 @@ public final class R2dbcTelemetryBuilder { private final R2dbcInstrumenterBuilder instrumenterBuilder; private boolean statementSanitizationEnabled = true; - private UnaryOperator> spanNameExtractorTransformer = + private UnaryOperator> spanNameExtractorCustomizer = UnaryOperator.identity(); private final SqlCommenterBuilder sqlCommenterBuilder = SqlCommenter.builder(); @@ -51,11 +51,26 @@ public R2dbcTelemetryBuilder setStatementSanitizationEnabled(boolean enabled) { return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public R2dbcTelemetryBuilder setSpanNameExtractor( UnaryOperator> spanNameExtractor) { - this.spanNameExtractorTransformer = spanNameExtractor; + return setSpanNameExtractorCustomizer(spanNameExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public R2dbcTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + this.spanNameExtractorCustomizer = spanNameExtractorCustomizer; return this; } @@ -64,7 +79,7 @@ public R2dbcTelemetryBuilder setSpanNameExtractor( */ public R2dbcTelemetry build() { return new R2dbcTelemetry( - instrumenterBuilder.build(spanNameExtractorTransformer, statementSanitizationEnabled), + instrumenterBuilder.build(spanNameExtractorCustomizer, statementSanitizationEnabled), sqlCommenterBuilder.build()); } } diff --git a/instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/RatpackClientTelemetryBuilder.java b/instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/RatpackClientTelemetryBuilder.java index c5d536cc9690..56f1121c288c 100644 --- a/instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/RatpackClientTelemetryBuilder.java +++ b/instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/RatpackClientTelemetryBuilder.java @@ -84,11 +84,26 @@ public RatpackClientTelemetryBuilder setKnownMethods(Collection knownMet return this; } - /** Sets custom client {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom client {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public RatpackClientTelemetryBuilder setSpanNameExtractor( UnaryOperator> clientSpanNameExtractor) { - builder.setSpanNameExtractor(clientSpanNameExtractor); + return setSpanNameExtractorCustomizer(clientSpanNameExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public RatpackClientTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/RatpackServerTelemetryBuilder.java b/instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/RatpackServerTelemetryBuilder.java index 0d933340d960..9ba88d706af9 100644 --- a/instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/RatpackServerTelemetryBuilder.java +++ b/instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/RatpackServerTelemetryBuilder.java @@ -88,11 +88,26 @@ public RatpackServerTelemetryBuilder setKnownMethods(Collection knownMet return this; } - /** Sets custom server {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom server {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public RatpackServerTelemetryBuilder setSpanNameExtractor( UnaryOperator> serverSpanNameExtractor) { - builder.setSpanNameExtractor(serverSpanNameExtractor); + return setSpanNameExtractorCustomizer(serverSpanNameExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public RatpackServerTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/restlet/restlet-1.1/library/src/main/java/io/opentelemetry/instrumentation/restlet/v1_1/RestletTelemetryBuilder.java b/instrumentation/restlet/restlet-1.1/library/src/main/java/io/opentelemetry/instrumentation/restlet/v1_1/RestletTelemetryBuilder.java index 19bc3007c16a..bbc42bbb39c8 100644 --- a/instrumentation/restlet/restlet-1.1/library/src/main/java/io/opentelemetry/instrumentation/restlet/v1_1/RestletTelemetryBuilder.java +++ b/instrumentation/restlet/restlet-1.1/library/src/main/java/io/opentelemetry/instrumentation/restlet/v1_1/RestletTelemetryBuilder.java @@ -84,11 +84,26 @@ public RestletTelemetryBuilder setKnownMethods(Collection knownMethods) return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public RestletTelemetryBuilder setSpanNameExtractor( UnaryOperator> spanNameExtractorTransformer) { - builder.setSpanNameExtractor(spanNameExtractorTransformer); + return setSpanNameExtractorCustomizer(spanNameExtractorTransformer); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public RestletTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/restlet/restlet-2.0/library/src/main/java/io/opentelemetry/instrumentation/restlet/v2_0/RestletTelemetryBuilder.java b/instrumentation/restlet/restlet-2.0/library/src/main/java/io/opentelemetry/instrumentation/restlet/v2_0/RestletTelemetryBuilder.java index 7bbe77273ad7..017382cd232d 100644 --- a/instrumentation/restlet/restlet-2.0/library/src/main/java/io/opentelemetry/instrumentation/restlet/v2_0/RestletTelemetryBuilder.java +++ b/instrumentation/restlet/restlet-2.0/library/src/main/java/io/opentelemetry/instrumentation/restlet/v2_0/RestletTelemetryBuilder.java @@ -84,11 +84,26 @@ public RestletTelemetryBuilder setKnownMethods(Collection knownMethods) return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public RestletTelemetryBuilder setSpanNameExtractor( UnaryOperator> spanNameExtractorTransformer) { - builder.setSpanNameExtractor(spanNameExtractorTransformer); + return setSpanNameExtractorCustomizer(spanNameExtractorTransformer); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public RestletTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/servlet/servlet-3.0/library/src/main/java/io/opentelemetry/instrumentation/servlet/v3_0/ServletTelemetryBuilder.java b/instrumentation/servlet/servlet-3.0/library/src/main/java/io/opentelemetry/instrumentation/servlet/v3_0/ServletTelemetryBuilder.java index b2c36eaf085f..fde5c4b5ea66 100644 --- a/instrumentation/servlet/servlet-3.0/library/src/main/java/io/opentelemetry/instrumentation/servlet/v3_0/ServletTelemetryBuilder.java +++ b/instrumentation/servlet/servlet-3.0/library/src/main/java/io/opentelemetry/instrumentation/servlet/v3_0/ServletTelemetryBuilder.java @@ -57,13 +57,29 @@ public final class ServletTelemetryBuilder { builder = servletBuilder.getBuilder(); } - /** Sets the status extractor for server spans. */ + /** + * Sets the status extractor for server spans. + * + * @deprecated Use {@link #setSpanStatusExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public ServletTelemetryBuilder setStatusExtractor( UnaryOperator> statusExtractor) { - builder.setStatusExtractor( + return setSpanStatusExtractorCustomizer(statusExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanStatusExtractor} and returns a + * customized one. + */ + @CanIgnoreReturnValue + public ServletTelemetryBuilder setSpanStatusExtractorCustomizer( + UnaryOperator> + spanStatusExtractorCustomizer) { + builder.setSpanStatusExtractorCustomizer( convertSpanStatusExtractor( - statusExtractor, + spanStatusExtractorCustomizer, ServletRequestContext::new, ServletResponseContext::new, ServletRequestContext::request, @@ -137,13 +153,30 @@ public ServletTelemetryBuilder setKnownMethods(Collection knownMethods) return this; } - /** Sets custom server {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom server {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public ServletTelemetryBuilder setSpanNameExtractor( UnaryOperator> serverSpanNameExtractor) { - builder.setSpanNameExtractor( + return setSpanNameExtractorCustomizer(serverSpanNameExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public ServletTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer( convertSpanNameExtractor( - serverSpanNameExtractor, ServletRequestContext::new, ServletRequestContext::request)); + spanNameExtractorCustomizer, + ServletRequestContext::new, + ServletRequestContext::request)); return this; } diff --git a/instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/internal/ServletInstrumenterBuilder.java b/instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/internal/ServletInstrumenterBuilder.java index 6c5c815ec7a5..e09cb5d87232 100644 --- a/instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/internal/ServletInstrumenterBuilder.java +++ b/instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/internal/ServletInstrumenterBuilder.java @@ -104,7 +104,7 @@ public ServletInstrumenterBuilder captureRequestParameters( public Instrumenter, ServletResponseContext> build( SpanNameExtractor> spanNameExtractor) { - builder.setSpanNameExtractor(e -> spanNameExtractor); + builder.setSpanNameExtractorCustomizer(e -> spanNameExtractor); builder.setBuilderCustomizer( builder -> { diff --git a/instrumentation/spring/spring-web/spring-web-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/web/v3_1/SpringWebTelemetryBuilder.java b/instrumentation/spring/spring-web/spring-web-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/web/v3_1/SpringWebTelemetryBuilder.java index d83b1c67c395..48c759c6c77c 100644 --- a/instrumentation/spring/spring-web/spring-web-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/web/v3_1/SpringWebTelemetryBuilder.java +++ b/instrumentation/spring/spring-web/spring-web-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/web/v3_1/SpringWebTelemetryBuilder.java @@ -75,11 +75,26 @@ public SpringWebTelemetryBuilder setCapturedResponseHeaders(Collection r return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public SpringWebTelemetryBuilder setSpanNameExtractor( UnaryOperator> spanNameExtractor) { - builder.setSpanNameExtractor(spanNameExtractor); + return setSpanNameExtractorCustomizer(spanNameExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public SpringWebTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/spring/spring-webflux/spring-webflux-5.3/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/v5_3/SpringWebfluxClientTelemetryBuilder.java b/instrumentation/spring/spring-webflux/spring-webflux-5.3/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/v5_3/SpringWebfluxClientTelemetryBuilder.java index 76cc840e3b4b..05606b2e1992 100644 --- a/instrumentation/spring/spring-webflux/spring-webflux-5.3/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/v5_3/SpringWebfluxClientTelemetryBuilder.java +++ b/instrumentation/spring/spring-webflux/spring-webflux-5.3/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/v5_3/SpringWebfluxClientTelemetryBuilder.java @@ -93,11 +93,26 @@ public SpringWebfluxClientTelemetryBuilder setKnownMethods(Collection kn return this; } - /** Sets custom client {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom client {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public SpringWebfluxClientTelemetryBuilder setSpanNameExtractor( UnaryOperator> clientSpanNameExtractor) { - builder.setSpanNameExtractor(clientSpanNameExtractor); + return setSpanNameExtractorCustomizer(clientSpanNameExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public SpringWebfluxClientTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/spring/spring-webflux/spring-webflux-5.3/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/v5_3/SpringWebfluxServerTelemetryBuilder.java b/instrumentation/spring/spring-webflux/spring-webflux-5.3/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/v5_3/SpringWebfluxServerTelemetryBuilder.java index 24d92e735f1c..ab75a91e7a23 100644 --- a/instrumentation/spring/spring-webflux/spring-webflux-5.3/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/v5_3/SpringWebfluxServerTelemetryBuilder.java +++ b/instrumentation/spring/spring-webflux/spring-webflux-5.3/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/v5_3/SpringWebfluxServerTelemetryBuilder.java @@ -94,11 +94,26 @@ public SpringWebfluxServerTelemetryBuilder setKnownMethods(Collection kn return this; } - /** Sets custom server {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom server {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public SpringWebfluxServerTelemetryBuilder setSpanNameExtractor( UnaryOperator> serverSpanNameExtractor) { - builder.setSpanNameExtractor(serverSpanNameExtractor); + return setSpanNameExtractorCustomizer(serverSpanNameExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public SpringWebfluxServerTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/spring/spring-webmvc/spring-webmvc-5.3/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/v5_3/SpringWebMvcTelemetryBuilder.java b/instrumentation/spring/spring-webmvc/spring-webmvc-5.3/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/v5_3/SpringWebMvcTelemetryBuilder.java index 8a74f5f19109..a317b4d258dc 100644 --- a/instrumentation/spring/spring-webmvc/spring-webmvc-5.3/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/v5_3/SpringWebMvcTelemetryBuilder.java +++ b/instrumentation/spring/spring-webmvc/spring-webmvc-5.3/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/v5_3/SpringWebMvcTelemetryBuilder.java @@ -75,11 +75,26 @@ public SpringWebMvcTelemetryBuilder setCapturedResponseHeaders( return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public SpringWebMvcTelemetryBuilder setSpanNameExtractor( UnaryOperator> spanNameExtractor) { - builder.setSpanNameExtractor(spanNameExtractor); + return setSpanNameExtractorCustomizer(spanNameExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public SpringWebMvcTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; } diff --git a/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/v6_0/SpringWebMvcTelemetryBuilder.java b/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/v6_0/SpringWebMvcTelemetryBuilder.java index 8e9b19c646c4..b8f879499160 100644 --- a/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/v6_0/SpringWebMvcTelemetryBuilder.java +++ b/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/v6_0/SpringWebMvcTelemetryBuilder.java @@ -74,11 +74,26 @@ public SpringWebMvcTelemetryBuilder setCapturedResponseHeaders( return this; } - /** Sets custom {@link SpanNameExtractor} via transform function. */ + /** + * Sets custom {@link SpanNameExtractor} via transform function. + * + * @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead. + */ + @Deprecated @CanIgnoreReturnValue public SpringWebMvcTelemetryBuilder setSpanNameExtractor( UnaryOperator> spanNameExtractor) { - builder.setSpanNameExtractor(spanNameExtractor); + return setSpanNameExtractorCustomizer(spanNameExtractor); + } + + /** + * Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized + * one. + */ + @CanIgnoreReturnValue + public SpringWebMvcTelemetryBuilder setSpanNameExtractorCustomizer( + UnaryOperator> spanNameExtractorCustomizer) { + builder.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer); return this; }