Skip to content

Commit d3068c8

Browse files
authored
Bridge more incubating api (#12230)
1 parent a07e84a commit d3068c8

File tree

69 files changed

+1880
-198
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+1880
-198
lines changed

instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/trace/ApplicationSpan.java

+2-107
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,20 @@
55

66
package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace;
77

8-
import static io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace.Bridging.toAgentOrNull;
9-
108
import application.io.opentelemetry.api.common.AttributeKey;
119
import application.io.opentelemetry.api.common.Attributes;
1210
import application.io.opentelemetry.api.trace.Span;
13-
import application.io.opentelemetry.api.trace.SpanBuilder;
1411
import application.io.opentelemetry.api.trace.SpanContext;
15-
import application.io.opentelemetry.api.trace.SpanKind;
1612
import application.io.opentelemetry.api.trace.StatusCode;
17-
import application.io.opentelemetry.context.Context;
1813
import com.google.errorprone.annotations.CanIgnoreReturnValue;
19-
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.AgentContextStorage;
2014
import java.util.concurrent.TimeUnit;
2115
import javax.annotation.Nullable;
2216

23-
class ApplicationSpan implements Span {
17+
public class ApplicationSpan implements Span {
2418

2519
private final io.opentelemetry.api.trace.Span agentSpan;
2620

27-
ApplicationSpan(io.opentelemetry.api.trace.Span agentSpan) {
21+
public ApplicationSpan(io.opentelemetry.api.trace.Span agentSpan) {
2822
this.agentSpan = agentSpan;
2923
}
3024

@@ -190,103 +184,4 @@ public String toString() {
190184
public int hashCode() {
191185
return agentSpan.hashCode();
192186
}
193-
194-
static class Builder implements SpanBuilder {
195-
196-
private final io.opentelemetry.api.trace.SpanBuilder agentBuilder;
197-
198-
Builder(io.opentelemetry.api.trace.SpanBuilder agentBuilder) {
199-
this.agentBuilder = agentBuilder;
200-
}
201-
202-
@Override
203-
@CanIgnoreReturnValue
204-
public SpanBuilder setParent(Context applicationContext) {
205-
agentBuilder.setParent(AgentContextStorage.getAgentContext(applicationContext));
206-
return this;
207-
}
208-
209-
@Override
210-
@CanIgnoreReturnValue
211-
public SpanBuilder setNoParent() {
212-
agentBuilder.setNoParent();
213-
return this;
214-
}
215-
216-
@Override
217-
@CanIgnoreReturnValue
218-
public SpanBuilder addLink(SpanContext applicationSpanContext) {
219-
agentBuilder.addLink(Bridging.toAgent(applicationSpanContext));
220-
return this;
221-
}
222-
223-
@Override
224-
@CanIgnoreReturnValue
225-
public SpanBuilder addLink(
226-
SpanContext applicationSpanContext, Attributes applicationAttributes) {
227-
agentBuilder.addLink(Bridging.toAgent(applicationSpanContext));
228-
return this;
229-
}
230-
231-
@Override
232-
@CanIgnoreReturnValue
233-
public SpanBuilder setAttribute(String key, String value) {
234-
agentBuilder.setAttribute(key, value);
235-
return this;
236-
}
237-
238-
@Override
239-
@CanIgnoreReturnValue
240-
public SpanBuilder setAttribute(String key, long value) {
241-
agentBuilder.setAttribute(key, value);
242-
return this;
243-
}
244-
245-
@Override
246-
@CanIgnoreReturnValue
247-
public SpanBuilder setAttribute(String key, double value) {
248-
agentBuilder.setAttribute(key, value);
249-
return this;
250-
}
251-
252-
@Override
253-
@CanIgnoreReturnValue
254-
public SpanBuilder setAttribute(String key, boolean value) {
255-
agentBuilder.setAttribute(key, value);
256-
return this;
257-
}
258-
259-
@Override
260-
@CanIgnoreReturnValue
261-
public <T> SpanBuilder setAttribute(AttributeKey<T> applicationKey, T value) {
262-
@SuppressWarnings("unchecked")
263-
io.opentelemetry.api.common.AttributeKey<T> agentKey = Bridging.toAgent(applicationKey);
264-
if (agentKey != null) {
265-
agentBuilder.setAttribute(agentKey, value);
266-
}
267-
return this;
268-
}
269-
270-
@Override
271-
@CanIgnoreReturnValue
272-
public SpanBuilder setSpanKind(SpanKind applicationSpanKind) {
273-
io.opentelemetry.api.trace.SpanKind agentSpanKind = toAgentOrNull(applicationSpanKind);
274-
if (agentSpanKind != null) {
275-
agentBuilder.setSpanKind(agentSpanKind);
276-
}
277-
return this;
278-
}
279-
280-
@Override
281-
@CanIgnoreReturnValue
282-
public SpanBuilder setStartTimestamp(long startTimestamp, TimeUnit unit) {
283-
agentBuilder.setStartTimestamp(startTimestamp, unit);
284-
return this;
285-
}
286-
287-
@Override
288-
public Span startSpan() {
289-
return new ApplicationSpan(agentBuilder.startSpan());
290-
}
291-
}
292187
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace;
7+
8+
import static io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace.Bridging.toAgentOrNull;
9+
10+
import application.io.opentelemetry.api.common.AttributeKey;
11+
import application.io.opentelemetry.api.common.Attributes;
12+
import application.io.opentelemetry.api.trace.Span;
13+
import application.io.opentelemetry.api.trace.SpanBuilder;
14+
import application.io.opentelemetry.api.trace.SpanContext;
15+
import application.io.opentelemetry.api.trace.SpanKind;
16+
import application.io.opentelemetry.context.Context;
17+
import com.google.errorprone.annotations.CanIgnoreReturnValue;
18+
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.AgentContextStorage;
19+
import java.util.concurrent.TimeUnit;
20+
21+
public class ApplicationSpanBuilder implements SpanBuilder {
22+
23+
private final io.opentelemetry.api.trace.SpanBuilder agentBuilder;
24+
25+
protected ApplicationSpanBuilder(io.opentelemetry.api.trace.SpanBuilder agentBuilder) {
26+
this.agentBuilder = agentBuilder;
27+
}
28+
29+
@Override
30+
@CanIgnoreReturnValue
31+
public SpanBuilder setParent(Context applicationContext) {
32+
agentBuilder.setParent(AgentContextStorage.getAgentContext(applicationContext));
33+
return this;
34+
}
35+
36+
@Override
37+
@CanIgnoreReturnValue
38+
public SpanBuilder setNoParent() {
39+
agentBuilder.setNoParent();
40+
return this;
41+
}
42+
43+
@Override
44+
@CanIgnoreReturnValue
45+
public SpanBuilder addLink(SpanContext applicationSpanContext) {
46+
agentBuilder.addLink(Bridging.toAgent(applicationSpanContext));
47+
return this;
48+
}
49+
50+
@Override
51+
@CanIgnoreReturnValue
52+
public SpanBuilder addLink(SpanContext applicationSpanContext, Attributes applicationAttributes) {
53+
agentBuilder.addLink(Bridging.toAgent(applicationSpanContext));
54+
return this;
55+
}
56+
57+
@Override
58+
@CanIgnoreReturnValue
59+
public SpanBuilder setAttribute(String key, String value) {
60+
agentBuilder.setAttribute(key, value);
61+
return this;
62+
}
63+
64+
@Override
65+
@CanIgnoreReturnValue
66+
public SpanBuilder setAttribute(String key, long value) {
67+
agentBuilder.setAttribute(key, value);
68+
return this;
69+
}
70+
71+
@Override
72+
@CanIgnoreReturnValue
73+
public SpanBuilder setAttribute(String key, double value) {
74+
agentBuilder.setAttribute(key, value);
75+
return this;
76+
}
77+
78+
@Override
79+
@CanIgnoreReturnValue
80+
public SpanBuilder setAttribute(String key, boolean value) {
81+
agentBuilder.setAttribute(key, value);
82+
return this;
83+
}
84+
85+
@Override
86+
@CanIgnoreReturnValue
87+
public <T> SpanBuilder setAttribute(AttributeKey<T> applicationKey, T value) {
88+
@SuppressWarnings("unchecked")
89+
io.opentelemetry.api.common.AttributeKey<T> agentKey = Bridging.toAgent(applicationKey);
90+
if (agentKey != null) {
91+
agentBuilder.setAttribute(agentKey, value);
92+
}
93+
return this;
94+
}
95+
96+
@Override
97+
@CanIgnoreReturnValue
98+
public SpanBuilder setSpanKind(SpanKind applicationSpanKind) {
99+
io.opentelemetry.api.trace.SpanKind agentSpanKind = toAgentOrNull(applicationSpanKind);
100+
if (agentSpanKind != null) {
101+
agentBuilder.setSpanKind(agentSpanKind);
102+
}
103+
return this;
104+
}
105+
106+
@Override
107+
@CanIgnoreReturnValue
108+
public SpanBuilder setStartTimestamp(long startTimestamp, TimeUnit unit) {
109+
agentBuilder.setStartTimestamp(startTimestamp, unit);
110+
return this;
111+
}
112+
113+
@Override
114+
public Span startSpan() {
115+
return new ApplicationSpan(agentBuilder.startSpan());
116+
}
117+
}

instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/trace/ApplicationTracer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ public ApplicationTracer(io.opentelemetry.api.trace.Tracer agentTracer) {
1818

1919
@Override
2020
public SpanBuilder spanBuilder(String spanName) {
21-
return new ApplicationSpan.Builder(agentTracer.spanBuilder(spanName));
21+
return new ApplicationSpanBuilder(agentTracer.spanBuilder(spanName));
2222
}
2323
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace;
7+
8+
public interface ApplicationTracerFactory {
9+
10+
ApplicationTracer newTracer(io.opentelemetry.api.trace.Tracer agentTracer);
11+
}

instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/trace/ApplicationTracerProvider.java

+7-5
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
import application.io.opentelemetry.api.trace.Tracer;
99
import application.io.opentelemetry.api.trace.TracerProvider;
10-
import io.opentelemetry.api.GlobalOpenTelemetry;
1110
import java.lang.invoke.MethodHandle;
1211
import java.lang.invoke.MethodHandles;
1312
import java.lang.invoke.MethodType;
@@ -16,10 +15,13 @@ public class ApplicationTracerProvider implements TracerProvider {
1615

1716
private static final MethodHandle TRACE_PROVIDER_14 = getApplicationTracerProvider14();
1817

18+
protected final ApplicationTracerFactory tracerFactory;
1919
protected final io.opentelemetry.api.trace.TracerProvider agentTracerProvider;
2020

2121
protected ApplicationTracerProvider(
22+
ApplicationTracerFactory tracerFactory,
2223
io.opentelemetry.api.trace.TracerProvider agentTracerProvider) {
24+
this.tracerFactory = tracerFactory;
2325
this.agentTracerProvider = agentTracerProvider;
2426
}
2527

@@ -48,17 +50,17 @@ public static TracerProvider create(
4850
}
4951
}
5052

51-
return new ApplicationTracerProvider(agentTracerProvider);
53+
return new ApplicationTracerProvider(ApplicationTracer::new, agentTracerProvider);
5254
}
5355

5456
@Override
5557
public Tracer get(String instrumentationName) {
56-
return new ApplicationTracer(agentTracerProvider.get(instrumentationName));
58+
return tracerFactory.newTracer(agentTracerProvider.get(instrumentationName));
5759
}
5860

5961
@Override
6062
public Tracer get(String instrumentationName, String instrumentationVersion) {
61-
return new ApplicationTracer(
62-
GlobalOpenTelemetry.getTracerProvider().get(instrumentationName, instrumentationVersion));
63+
return tracerFactory.newTracer(
64+
agentTracerProvider.get(instrumentationName, instrumentationVersion));
6365
}
6466
}

instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationDoubleCounter.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.AgentContextStorage;
1212
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace.Bridging;
1313

14-
class ApplicationDoubleCounter implements DoubleCounter {
14+
public class ApplicationDoubleCounter implements DoubleCounter {
1515

1616
private final io.opentelemetry.api.metrics.DoubleCounter agentCounter;
1717

18-
ApplicationDoubleCounter(io.opentelemetry.api.metrics.DoubleCounter agentCounter) {
18+
protected ApplicationDoubleCounter(io.opentelemetry.api.metrics.DoubleCounter agentCounter) {
1919
this.agentCounter = agentCounter;
2020
}
2121

instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationDoubleHistogram.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@
1111
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.AgentContextStorage;
1212
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace.Bridging;
1313

14-
final class ApplicationDoubleHistogram implements DoubleHistogram {
14+
public class ApplicationDoubleHistogram implements DoubleHistogram {
1515

1616
private final io.opentelemetry.api.metrics.DoubleHistogram agentHistogram;
1717

18-
ApplicationDoubleHistogram(io.opentelemetry.api.metrics.DoubleHistogram agentHistogram) {
18+
protected ApplicationDoubleHistogram(
19+
io.opentelemetry.api.metrics.DoubleHistogram agentHistogram) {
1920
this.agentHistogram = agentHistogram;
2021
}
2122

instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationDoubleUpDownCounter.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@
1111
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.AgentContextStorage;
1212
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace.Bridging;
1313

14-
class ApplicationDoubleUpDownCounter implements DoubleUpDownCounter {
14+
public class ApplicationDoubleUpDownCounter implements DoubleUpDownCounter {
1515

1616
private final io.opentelemetry.api.metrics.DoubleUpDownCounter agentCounter;
1717

18-
ApplicationDoubleUpDownCounter(io.opentelemetry.api.metrics.DoubleUpDownCounter agentCounter) {
18+
protected ApplicationDoubleUpDownCounter(
19+
io.opentelemetry.api.metrics.DoubleUpDownCounter agentCounter) {
1920
this.agentCounter = agentCounter;
2021
}
2122

instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationLongCounter.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.AgentContextStorage;
1212
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace.Bridging;
1313

14-
class ApplicationLongCounter implements LongCounter {
14+
public class ApplicationLongCounter implements LongCounter {
1515

1616
private final io.opentelemetry.api.metrics.LongCounter agentCounter;
1717

18-
ApplicationLongCounter(io.opentelemetry.api.metrics.LongCounter agentCounter) {
18+
protected ApplicationLongCounter(io.opentelemetry.api.metrics.LongCounter agentCounter) {
1919
this.agentCounter = agentCounter;
2020
}
2121

instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationLongHistogram.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.AgentContextStorage;
1212
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace.Bridging;
1313

14-
final class ApplicationLongHistogram implements LongHistogram {
14+
public class ApplicationLongHistogram implements LongHistogram {
1515

1616
private final io.opentelemetry.api.metrics.LongHistogram agentHistogram;
1717

18-
ApplicationLongHistogram(io.opentelemetry.api.metrics.LongHistogram agentHistogram) {
18+
protected ApplicationLongHistogram(io.opentelemetry.api.metrics.LongHistogram agentHistogram) {
1919
this.agentHistogram = agentHistogram;
2020
}
2121

0 commit comments

Comments
 (0)