Skip to content

Commit 42d3cee

Browse files
Merge branch 'main' into main
2 parents 3164a35 + 84669f7 commit 42d3cee

File tree

40 files changed

+681
-136
lines changed

40 files changed

+681
-136
lines changed

examples/distro/custom/src/main/java/com/example/javaagent/DemoInstrumenterCustomizerProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ private void customizeHttpServer(InstrumenterCustomizer customizer) {
6666
customizer.addAttributesExtractor(new DemoAttributesExtractor());
6767
customizer.addOperationMetrics(new DemoMetrics());
6868
customizer.addContextCustomizer(new DemoContextCustomizer());
69-
customizer.setSpanNameExtractor(
69+
customizer.setSpanNameExtractorCustomizer(
7070
unused -> (SpanNameExtractor<Object>) object -> "CustomHTTP/" + object.toString());
7171
}
7272

examples/extension/src/main/java/com/example/javaagent/DemoInstrumenterCustomizerProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ private void customizeHttpServer(InstrumenterCustomizer customizer) {
6969
customizer.addAttributesExtractor(new DemoAttributesExtractor());
7070
customizer.addOperationMetrics(new DemoMetrics());
7171
customizer.addContextCustomizer(new DemoContextCustomizer());
72-
customizer.setSpanNameExtractor(
72+
customizer.setSpanNameExtractorCustomizer(
7373
unused -> (SpanNameExtractor<Object>) object -> "CustomHTTP/" + object.toString());
7474
}
7575

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/internal/DefaultHttpClientInstrumenterBuilder.java

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@ public final class DefaultHttpClientInstrumenterBuilder<REQUEST, RESPONSE> {
5454

5555
private final List<AttributesExtractor<? super REQUEST, ? super RESPONSE>> additionalExtractors =
5656
new ArrayList<>();
57-
private UnaryOperator<SpanStatusExtractor<REQUEST, RESPONSE>> statusExtractorTransformer =
57+
private UnaryOperator<SpanStatusExtractor<REQUEST, RESPONSE>> spanStatusExtractorCustomizer =
5858
UnaryOperator.identity();
5959
private final HttpClientAttributesExtractorBuilder<REQUEST, RESPONSE>
6060
httpAttributesExtractorBuilder;
6161
private final HttpClientAttributesGetter<REQUEST, RESPONSE> attributesGetter;
6262
private final HttpSpanNameExtractorBuilder<REQUEST> httpSpanNameExtractorBuilder;
6363

6464
@Nullable private final TextMapSetter<REQUEST> headerSetter;
65-
private UnaryOperator<SpanNameExtractor<REQUEST>> spanNameExtractorTransformer =
65+
private UnaryOperator<SpanNameExtractor<REQUEST>> spanNameExtractorCustomizer =
6666
UnaryOperator.identity();
6767
private boolean emitExperimentalHttpClientTelemetry = false;
6868
private Consumer<InstrumenterBuilder<REQUEST, RESPONSE>> builderCustomizer = b -> {};
@@ -112,9 +112,9 @@ public DefaultHttpClientInstrumenterBuilder<REQUEST, RESPONSE> addAttributesExtr
112112
}
113113

114114
@CanIgnoreReturnValue
115-
public DefaultHttpClientInstrumenterBuilder<REQUEST, RESPONSE> setStatusExtractor(
116-
UnaryOperator<SpanStatusExtractor<REQUEST, RESPONSE>> statusExtractor) {
117-
this.statusExtractorTransformer = statusExtractor;
115+
public DefaultHttpClientInstrumenterBuilder<REQUEST, RESPONSE> setSpanStatusExtractorCustomizer(
116+
UnaryOperator<SpanStatusExtractor<REQUEST, RESPONSE>> spanStatusExtractorCustomizer) {
117+
this.spanStatusExtractorCustomizer = spanStatusExtractorCustomizer;
118118
return this;
119119
}
120120

@@ -188,11 +188,14 @@ public DefaultHttpClientInstrumenterBuilder<REQUEST, RESPONSE> setRedactQueryPar
188188
return this;
189189
}
190190

191-
/** Sets custom {@link SpanNameExtractor} via transform function. */
191+
/**
192+
* Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized
193+
* one.
194+
*/
192195
@CanIgnoreReturnValue
193-
public DefaultHttpClientInstrumenterBuilder<REQUEST, RESPONSE> setSpanNameExtractor(
194-
UnaryOperator<SpanNameExtractor<REQUEST>> spanNameExtractor) {
195-
this.spanNameExtractorTransformer = spanNameExtractor;
196+
public DefaultHttpClientInstrumenterBuilder<REQUEST, RESPONSE> setSpanNameExtractorCustomizer(
197+
UnaryOperator<SpanNameExtractor<REQUEST>> spanNameExtractorCustomizer) {
198+
this.spanNameExtractorCustomizer = spanNameExtractorCustomizer;
196199
return this;
197200
}
198201

@@ -227,13 +230,14 @@ public Instrumenter<REQUEST, RESPONSE> build() {
227230
Context.current(), request, attributesGetter));
228231
}
229232
SpanNameExtractor<? super REQUEST> spanNameExtractor =
230-
spanNameExtractorTransformer.apply(httpSpanNameExtractorBuilder.build());
233+
spanNameExtractorCustomizer.apply(httpSpanNameExtractorBuilder.build());
231234

232235
InstrumenterBuilder<REQUEST, RESPONSE> builder =
233236
Instrumenter.<REQUEST, RESPONSE>builder(
234237
openTelemetry, instrumentationName, spanNameExtractor)
235238
.setSpanStatusExtractor(
236-
statusExtractorTransformer.apply(HttpSpanStatusExtractor.create(attributesGetter)))
239+
spanStatusExtractorCustomizer.apply(
240+
HttpSpanStatusExtractor.create(attributesGetter)))
237241
.addAttributesExtractor(httpAttributesExtractorBuilder.build())
238242
.addAttributesExtractors(additionalExtractors)
239243
.addOperationMetrics(HttpClientMetrics.get())

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/internal/DefaultHttpServerInstrumenterBuilder.java

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,14 @@ public final class DefaultHttpServerInstrumenterBuilder<REQUEST, RESPONSE> {
4747

4848
private final List<AttributesExtractor<? super REQUEST, ? super RESPONSE>> additionalExtractors =
4949
new ArrayList<>();
50-
private UnaryOperator<SpanStatusExtractor<REQUEST, RESPONSE>> statusExtractorTransformer =
50+
private UnaryOperator<SpanStatusExtractor<REQUEST, RESPONSE>> spanStatusExtractorCustomizer =
5151
UnaryOperator.identity();
5252
private final HttpServerAttributesExtractorBuilder<REQUEST, RESPONSE>
5353
httpAttributesExtractorBuilder;
5454
private final HttpSpanNameExtractorBuilder<REQUEST> httpSpanNameExtractorBuilder;
5555

5656
@Nullable private final TextMapGetter<REQUEST> headerGetter;
57-
private UnaryOperator<SpanNameExtractor<REQUEST>> spanNameExtractorTransformer =
57+
private UnaryOperator<SpanNameExtractor<REQUEST>> spanNameExtractorCustomizer =
5858
UnaryOperator.identity();
5959
private final HttpServerRouteBuilder<REQUEST> httpServerRouteBuilder;
6060
private final HttpServerAttributesGetter<REQUEST, RESPONSE> attributesGetter;
@@ -107,9 +107,9 @@ public DefaultHttpServerInstrumenterBuilder<REQUEST, RESPONSE> addAttributesExtr
107107
}
108108

109109
@CanIgnoreReturnValue
110-
public DefaultHttpServerInstrumenterBuilder<REQUEST, RESPONSE> setStatusExtractor(
111-
UnaryOperator<SpanStatusExtractor<REQUEST, RESPONSE>> statusExtractor) {
112-
this.statusExtractorTransformer = statusExtractor;
110+
public DefaultHttpServerInstrumenterBuilder<REQUEST, RESPONSE> setSpanStatusExtractorCustomizer(
111+
UnaryOperator<SpanStatusExtractor<REQUEST, RESPONSE>> spanStatusExtractorCustomizer) {
112+
this.spanStatusExtractorCustomizer = spanStatusExtractorCustomizer;
113113
return this;
114114
}
115115

@@ -172,11 +172,14 @@ public DefaultHttpServerInstrumenterBuilder<REQUEST, RESPONSE> setKnownMethods(
172172
return this;
173173
}
174174

175-
/** Sets custom {@link SpanNameExtractor} via transform function. */
175+
/**
176+
* Sets a customizer that receives the default {@link SpanNameExtractor} and returns a customized
177+
* one.
178+
*/
176179
@CanIgnoreReturnValue
177-
public DefaultHttpServerInstrumenterBuilder<REQUEST, RESPONSE> setSpanNameExtractor(
178-
UnaryOperator<SpanNameExtractor<REQUEST>> spanNameExtractor) {
179-
this.spanNameExtractorTransformer = spanNameExtractor;
180+
public DefaultHttpServerInstrumenterBuilder<REQUEST, RESPONSE> setSpanNameExtractorCustomizer(
181+
UnaryOperator<SpanNameExtractor<REQUEST>> spanNameExtractorCustomizer) {
182+
this.spanNameExtractorCustomizer = spanNameExtractorCustomizer;
180183
return this;
181184
}
182185

@@ -198,13 +201,14 @@ public Instrumenter<REQUEST, RESPONSE> build() {
198201

199202
public InstrumenterBuilder<REQUEST, RESPONSE> instrumenterBuilder() {
200203
SpanNameExtractor<? super REQUEST> spanNameExtractor =
201-
spanNameExtractorTransformer.apply(httpSpanNameExtractorBuilder.build());
204+
spanNameExtractorCustomizer.apply(httpSpanNameExtractorBuilder.build());
202205

203206
InstrumenterBuilder<REQUEST, RESPONSE> builder =
204207
Instrumenter.<REQUEST, RESPONSE>builder(
205208
openTelemetry, instrumentationName, spanNameExtractor)
206209
.setSpanStatusExtractor(
207-
statusExtractorTransformer.apply(HttpSpanStatusExtractor.create(attributesGetter)))
210+
spanStatusExtractorCustomizer.apply(
211+
HttpSpanStatusExtractor.create(attributesGetter)))
208212
.addAttributesExtractor(httpAttributesExtractorBuilder.build())
209213
.addAttributesExtractors(additionalExtractors)
210214
.addContextCustomizer(httpServerRouteBuilder.build())

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/instrumenter/InstrumenterCustomizer.java

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,19 +87,48 @@ InstrumenterCustomizer addAttributesExtractors(
8787
*
8888
* @param spanNameExtractor function that transforms the original span name extractor
8989
* @return this InstrumenterCustomizer for method chaining
90+
* @deprecated Use {@link #setSpanNameExtractorCustomizer(UnaryOperator)} instead.
9091
*/
91-
InstrumenterCustomizer setSpanNameExtractor(
92-
UnaryOperator<SpanNameExtractor<?>> spanNameExtractor);
92+
@Deprecated
93+
default InstrumenterCustomizer setSpanNameExtractor(
94+
UnaryOperator<SpanNameExtractor<?>> spanNameExtractor) {
95+
return setSpanNameExtractorCustomizer(spanNameExtractor);
96+
}
97+
98+
/**
99+
* Sets a transformer function that will modify the {@link SpanNameExtractor}. This allows
100+
* customizing how span names are generated for the instrumented operations.
101+
*
102+
* @param spanNameExtractorCustomizer function that transforms the original span name extractor
103+
* @return this InstrumenterCustomizer for method chaining
104+
*/
105+
InstrumenterCustomizer setSpanNameExtractorCustomizer(
106+
UnaryOperator<SpanNameExtractor<?>> spanNameExtractorCustomizer);
93107

94108
/**
95109
* Sets a transformer function that will modify the {@link SpanStatusExtractor}. This allows
96110
* customizing how span statuses are generated for the instrumented operations.
97111
*
98112
* @param spanStatusExtractor function that transforms the original span status extractor
99113
* @return this InstrumenterCustomizer for method chaining
114+
* @deprecated Use {@link #setSpanStatusExtractorCustomizer(UnaryOperator)} instead.
115+
*/
116+
@Deprecated
117+
default InstrumenterCustomizer setSpanStatusExtractor(
118+
UnaryOperator<SpanStatusExtractor<?, ?>> spanStatusExtractor) {
119+
return setSpanStatusExtractorCustomizer(spanStatusExtractor);
120+
}
121+
122+
/**
123+
* Sets a transformer function that will modify the {@link SpanStatusExtractor}. This allows
124+
* customizing how span statuses are generated for the instrumented operations.
125+
*
126+
* @param spanStatusExtractorCustomizer function that transforms the original span status
127+
* extractor
128+
* @return this InstrumenterCustomizer for method chaining
100129
*/
101-
InstrumenterCustomizer setSpanStatusExtractor(
102-
UnaryOperator<SpanStatusExtractor<?, ?>> spanStatusExtractor);
130+
InstrumenterCustomizer setSpanStatusExtractorCustomizer(
131+
UnaryOperator<SpanStatusExtractor<?, ?>> spanStatusExtractorCustomizer);
103132

104133
/** Types of instrumentation. */
105134
enum InstrumentationType {

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/instrumenter/internal/InstrumenterCustomizerImpl.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,16 +83,16 @@ public InstrumenterCustomizer addContextCustomizer(ContextCustomizer<?> customiz
8383

8484
@Override
8585
@SuppressWarnings("FunctionalInterfaceClash") // interface has deprecated overload
86-
public InstrumenterCustomizer setSpanNameExtractor(
87-
UnaryOperator<SpanNameExtractor<?>> spanNameExtractor) {
88-
customizer.setSpanNameExtractor(spanNameExtractor);
86+
public InstrumenterCustomizer setSpanNameExtractorCustomizer(
87+
UnaryOperator<SpanNameExtractor<?>> spanNameExtractorCustomizer) {
88+
customizer.setSpanNameExtractorCustomizer(spanNameExtractorCustomizer);
8989
return this;
9090
}
9191

9292
@Override
93-
public InstrumenterCustomizer setSpanStatusExtractor(
94-
UnaryOperator<SpanStatusExtractor<?, ?>> spanStatusExtractor) {
95-
customizer.setSpanStatusExtractor(spanStatusExtractor);
93+
public InstrumenterCustomizer setSpanStatusExtractorCustomizer(
94+
UnaryOperator<SpanStatusExtractor<?, ?>> spanStatusExtractorCustomizer) {
95+
customizer.setSpanStatusExtractorCustomizer(spanStatusExtractorCustomizer);
9696
return this;
9797
}
9898
}

instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/InstrumenterBuilder.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -437,18 +437,18 @@ public void addContextCustomizer(ContextCustomizer<REQUEST> customizer) {
437437
}
438438

439439
@Override
440-
public void setSpanNameExtractor(
441-
UnaryOperator<SpanNameExtractor<? super REQUEST>> spanNameExtractorTransformer) {
440+
public void setSpanNameExtractorCustomizer(
441+
UnaryOperator<SpanNameExtractor<? super REQUEST>> spanNameExtractorCustomizer) {
442442
builder.spanNameExtractor =
443-
spanNameExtractorTransformer.apply(builder.spanNameExtractor);
443+
spanNameExtractorCustomizer.apply(builder.spanNameExtractor);
444444
}
445445

446446
@Override
447-
public void setSpanStatusExtractor(
447+
public void setSpanStatusExtractorCustomizer(
448448
UnaryOperator<SpanStatusExtractor<? super REQUEST, ? super RESPONSE>>
449-
spanStatusExtractorTransformer) {
449+
spanStatusExtractorCustomizer) {
450450
builder.spanStatusExtractor =
451-
spanStatusExtractorTransformer.apply(builder.spanStatusExtractor);
451+
spanStatusExtractorCustomizer.apply(builder.spanStatusExtractor);
452452
}
453453
});
454454
}

instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/InternalInstrumenterCustomizer.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ void addAttributesExtractors(
3131

3232
void addContextCustomizer(ContextCustomizer<REQUEST> customizer);
3333

34-
void setSpanNameExtractor(
35-
UnaryOperator<SpanNameExtractor<? super REQUEST>> spanNameExtractorTransformer);
34+
void setSpanNameExtractorCustomizer(
35+
UnaryOperator<SpanNameExtractor<? super REQUEST>> spanNameExtractorCustomizer);
3636

37-
void setSpanStatusExtractor(
37+
void setSpanStatusExtractorCustomizer(
3838
UnaryOperator<SpanStatusExtractor<? super REQUEST, ? super RESPONSE>>
39-
spanStatusExtractorTransformer);
39+
spanStatusExtractorCustomizer);
4040
}

instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/internal/InstrumentationCustomizerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ void testSetSpanNameExtractor() {
327327
setCustomizer(
328328
customizer -> {
329329
customizerCalled.set(true);
330-
customizer.setSpanNameExtractor(
330+
customizer.setSpanNameExtractorCustomizer(
331331
unused -> (SpanNameExtractor<Object>) object -> "new name");
332332
});
333333

@@ -366,7 +366,7 @@ void testSetSpanStatusExtractor() {
366366
setCustomizer(
367367
customizer -> {
368368
customizerCalled.set(true);
369-
customizer.setSpanStatusExtractor(
369+
customizer.setSpanStatusExtractorCustomizer(
370370
unused ->
371371
(spanStatusBuilder, request, response, error) ->
372372
spanStatusBuilder.setStatus(StatusCode.OK));

instrumentation/apache-dubbo-2.7/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/DubboTelemetryBuilder.java

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ public final class DubboTelemetryBuilder {
3838
@Nullable private String peerService;
3939
private final List<AttributesExtractor<DubboRequest, Result>> attributesExtractors =
4040
new ArrayList<>();
41-
private UnaryOperator<SpanNameExtractor<DubboRequest>> clientSpanNameExtractorTransformer =
41+
private UnaryOperator<SpanNameExtractor<DubboRequest>> clientSpanNameExtractorCustomizer =
4242
UnaryOperator.identity();
43-
private UnaryOperator<SpanNameExtractor<DubboRequest>> serverSpanNameExtractorTransformer =
43+
private UnaryOperator<SpanNameExtractor<DubboRequest>> serverSpanNameExtractorCustomizer =
4444
UnaryOperator.identity();
4545

4646
DubboTelemetryBuilder(OpenTelemetry openTelemetry) {
@@ -63,19 +63,49 @@ public DubboTelemetryBuilder addAttributesExtractor(
6363
return this;
6464
}
6565

66-
/** Sets custom client {@link SpanNameExtractor} via transform function. */
66+
/**
67+
* Sets custom client {@link SpanNameExtractor} via transform function.
68+
*
69+
* @deprecated Use {@link #setClientSpanNameExtractorCustomizer(UnaryOperator)} instead.
70+
*/
71+
@Deprecated
6772
@CanIgnoreReturnValue
6873
public DubboTelemetryBuilder setClientSpanNameExtractor(
6974
UnaryOperator<SpanNameExtractor<DubboRequest>> clientSpanNameExtractor) {
70-
this.clientSpanNameExtractorTransformer = clientSpanNameExtractor;
75+
return setClientSpanNameExtractorCustomizer(clientSpanNameExtractor);
76+
}
77+
78+
/**
79+
* Sets a customizer that receives the default client {@link SpanNameExtractor} and returns a
80+
* customized one.
81+
*/
82+
@CanIgnoreReturnValue
83+
public DubboTelemetryBuilder setClientSpanNameExtractorCustomizer(
84+
UnaryOperator<SpanNameExtractor<DubboRequest>> clientSpanNameExtractorCustomizer) {
85+
this.clientSpanNameExtractorCustomizer = clientSpanNameExtractorCustomizer;
7186
return this;
7287
}
7388

74-
/** Sets custom server {@link SpanNameExtractor} via transform function. */
89+
/**
90+
* Sets custom server {@link SpanNameExtractor} via transform function.
91+
*
92+
* @deprecated Use {@link #setServerSpanNameExtractorCustomizer(UnaryOperator)} instead.
93+
*/
94+
@Deprecated
7595
@CanIgnoreReturnValue
7696
public DubboTelemetryBuilder setServerSpanNameExtractor(
7797
UnaryOperator<SpanNameExtractor<DubboRequest>> serverSpanNameExtractor) {
78-
this.serverSpanNameExtractorTransformer = serverSpanNameExtractor;
98+
return setServerSpanNameExtractorCustomizer(serverSpanNameExtractor);
99+
}
100+
101+
/**
102+
* Sets a customizer that receives the default server {@link SpanNameExtractor} and returns a
103+
* customized one.
104+
*/
105+
@CanIgnoreReturnValue
106+
public DubboTelemetryBuilder setServerSpanNameExtractorCustomizer(
107+
UnaryOperator<SpanNameExtractor<DubboRequest>> serverSpanNameExtractorCustomizer) {
108+
this.serverSpanNameExtractorCustomizer = serverSpanNameExtractorCustomizer;
79109
return this;
80110
}
81111

@@ -87,9 +117,9 @@ public DubboTelemetry build() {
87117
SpanNameExtractor<DubboRequest> spanNameExtractor =
88118
RpcSpanNameExtractor.create(rpcAttributesGetter);
89119
SpanNameExtractor<DubboRequest> clientSpanNameExtractor =
90-
clientSpanNameExtractorTransformer.apply(spanNameExtractor);
120+
clientSpanNameExtractorCustomizer.apply(spanNameExtractor);
91121
SpanNameExtractor<DubboRequest> serverSpanNameExtractor =
92-
serverSpanNameExtractorTransformer.apply(spanNameExtractor);
122+
serverSpanNameExtractorCustomizer.apply(spanNameExtractor);
93123
DubboClientNetworkAttributesGetter netClientAttributesGetter =
94124
new DubboClientNetworkAttributesGetter();
95125
DubboNetworkServerAttributesGetter netServerAttributesGetter =

0 commit comments

Comments
 (0)