Skip to content

Commit 6f4b0af

Browse files
committed
Change pattern to SpanInstrumentation
1 parent 44cccc8 commit 6f4b0af

File tree

12 files changed

+83
-83
lines changed

12 files changed

+83
-83
lines changed

sdk/trace/src/main/java/io/opentelemetry/sdk/trace/NonRecordingSpan.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,23 @@
1010
import io.opentelemetry.api.trace.Span;
1111
import io.opentelemetry.api.trace.SpanContext;
1212
import io.opentelemetry.api.trace.StatusCode;
13-
import io.opentelemetry.sdk.trace.internal.metrics.SpanMetrics;
13+
import io.opentelemetry.sdk.trace.internal.metrics.SpanInstrumentation;
1414
import java.util.concurrent.TimeUnit;
1515
import javax.annotation.Nullable;
1616
import javax.annotation.concurrent.Immutable;
1717

1818
/**
1919
* Span implementation used from {@link io.opentelemetry.sdk.trace.SdkTracer} when starting a span
20-
* which is not recording. This span implementation behaves exactly like one returned from {@link Span#wrap(SpanContext)}
21-
* with the addition that {@link #end()} collects health metrics.
20+
* which is not recording. This span implementation behaves exactly like one returned from {@link
21+
* Span#wrap(SpanContext)} with the addition that {@link #end()} collects health metrics.
2222
*/
2323
@Immutable
2424
final class NonRecordingSpan implements Span {
2525

2626
private final SpanContext spanContext;
27-
private final SpanMetrics.Recording metricRecording;
27+
private final SpanInstrumentation.Recording metricRecording;
2828

29-
NonRecordingSpan(SpanContext spanContext, SpanMetrics.Recording metricRecording) {
29+
NonRecordingSpan(SpanContext spanContext, SpanInstrumentation.Recording metricRecording) {
3030
this.spanContext = spanContext;
3131
this.metricRecording = metricRecording;
3232
}

sdk/trace/src/main/java/io/opentelemetry/sdk/trace/SdkSpan.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import io.opentelemetry.sdk.trace.data.SpanData;
2727
import io.opentelemetry.sdk.trace.data.StatusData;
2828
import io.opentelemetry.sdk.trace.internal.ExtendedSpanProcessor;
29-
import io.opentelemetry.sdk.trace.internal.metrics.SpanMetrics;
29+
import io.opentelemetry.sdk.trace.internal.metrics.SpanInstrumentation;
3030
import java.util.ArrayList;
3131
import java.util.Collections;
3232
import java.util.List;
@@ -100,7 +100,7 @@ final class SdkSpan implements ReadWriteSpan {
100100
@GuardedBy("lock")
101101
private long endEpochNanos;
102102

103-
private final SpanMetrics.Recording metricRecording;
103+
private final SpanInstrumentation.Recording metricRecording;
104104

105105
private enum EndState {
106106
NOT_ENDED,
@@ -136,7 +136,7 @@ private SdkSpan(
136136
@Nullable List<LinkData> links,
137137
int totalRecordedLinks,
138138
long startEpochNanos,
139-
SpanMetrics.Recording metricRecording) {
139+
SpanInstrumentation.Recording metricRecording) {
140140
this.context = context;
141141
this.instrumentationScopeInfo = instrumentationScopeInfo;
142142
this.parentSpanContext = parentSpanContext;
@@ -186,7 +186,7 @@ static SdkSpan startSpan(
186186
@Nullable List<LinkData> links,
187187
int totalRecordedLinks,
188188
long userStartEpochNanos,
189-
SpanMetrics.Recording metricsRecording) {
189+
SpanInstrumentation.Recording metricsRecording) {
190190
boolean createdAnchoredClock;
191191
AnchoredClock clock;
192192
if (parentSpan instanceof SdkSpan) {

sdk/trace/src/main/java/io/opentelemetry/sdk/trace/SdkSpanBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import io.opentelemetry.sdk.internal.AttributeUtil;
2525
import io.opentelemetry.sdk.internal.AttributesMap;
2626
import io.opentelemetry.sdk.trace.data.LinkData;
27-
import io.opentelemetry.sdk.trace.internal.metrics.SpanMetrics;
27+
import io.opentelemetry.sdk.trace.internal.metrics.SpanInstrumentation;
2828
import io.opentelemetry.sdk.trace.samplers.SamplingDecision;
2929
import io.opentelemetry.sdk.trace.samplers.SamplingResult;
3030
import java.util.ArrayList;
@@ -205,7 +205,7 @@ public Span startSpan() {
205205
/* remote= */ false,
206206
tracerSharedState.isIdGeneratorSafeToSkipIdValidation());
207207

208-
SpanMetrics.Recording metricsRecording =
208+
SpanInstrumentation.Recording metricsRecording =
209209
tracerSharedState.getSpanMetrics().recordSpanStart(samplingResult);
210210
if (!isRecording(samplingDecision)) {
211211
return new NonRecordingSpan(spanContext, metricsRecording);

sdk/trace/src/main/java/io/opentelemetry/sdk/trace/SdkTracerProvider.java

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@
1919
import io.opentelemetry.sdk.resources.Resource;
2020
import io.opentelemetry.sdk.trace.internal.SdkTracerProviderUtil;
2121
import io.opentelemetry.sdk.trace.internal.TracerConfig;
22-
import io.opentelemetry.sdk.trace.internal.metrics.SemConvSpanMetrics;
23-
import io.opentelemetry.sdk.trace.internal.metrics.SpanMetrics;
22+
import io.opentelemetry.sdk.trace.internal.metrics.SpanInstrumentation;
2423
import io.opentelemetry.sdk.trace.samplers.Sampler;
2524
import java.io.Closeable;
2625
import java.util.List;
@@ -70,7 +69,7 @@ public static SdkTracerProviderBuilder builder() {
7069
sampler,
7170
spanProcessors,
7271
exceptionAttributeResolver,
73-
createSpanMetrics(internalTelemetryVersion, meterProviderSupplier));
72+
SpanInstrumentation.create(internalTelemetryVersion, meterProviderSupplier));
7473
this.tracerSdkComponentRegistry =
7574
new ComponentRegistry<>(
7675
instrumentationScopeInfo ->
@@ -81,19 +80,6 @@ public static SdkTracerProviderBuilder builder() {
8180
this.tracerConfigurator = tracerConfigurator;
8281
}
8382

84-
private static SpanMetrics createSpanMetrics(
85-
InternalTelemetryVersion internalTelemetryVersion,
86-
Supplier<MeterProvider> meterProviderSupplier) {
87-
switch (internalTelemetryVersion) {
88-
case LEGACY:
89-
return SpanMetrics.noop();
90-
case LATEST:
91-
return new SemConvSpanMetrics(meterProviderSupplier);
92-
}
93-
throw new IllegalStateException(
94-
"Unhandled telemetry schema version: " + internalTelemetryVersion);
95-
}
96-
9783
private TracerConfig getTracerConfig(InstrumentationScopeInfo instrumentationScopeInfo) {
9884
TracerConfig tracerConfig = tracerConfigurator.apply(instrumentationScopeInfo);
9985
return tracerConfig == null ? TracerConfig.defaultConfig() : tracerConfig;

sdk/trace/src/main/java/io/opentelemetry/sdk/trace/TracerSharedState.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import io.opentelemetry.sdk.common.CompletableResultCode;
1010
import io.opentelemetry.sdk.internal.ExceptionAttributeResolver;
1111
import io.opentelemetry.sdk.resources.Resource;
12-
import io.opentelemetry.sdk.trace.internal.metrics.SpanMetrics;
12+
import io.opentelemetry.sdk.trace.internal.metrics.SpanInstrumentation;
1313
import io.opentelemetry.sdk.trace.samplers.Sampler;
1414
import java.util.List;
1515
import java.util.function.Supplier;
@@ -29,7 +29,7 @@ final class TracerSharedState {
2929
private final Sampler sampler;
3030
private final SpanProcessor activeSpanProcessor;
3131
private final ExceptionAttributeResolver exceptionAttributeResolver;
32-
private final SpanMetrics spanMetrics;
32+
private final SpanInstrumentation spanInstrumentation;
3333

3434
@Nullable private volatile CompletableResultCode shutdownResult = null;
3535

@@ -41,7 +41,7 @@ final class TracerSharedState {
4141
Sampler sampler,
4242
List<SpanProcessor> spanProcessors,
4343
ExceptionAttributeResolver exceptionAttributeResolver,
44-
SpanMetrics spanMetrics) {
44+
SpanInstrumentation spanInstrumentation) {
4545
this.clock = clock;
4646
this.idGenerator = idGenerator;
4747
this.idGeneratorSafeToSkipIdValidation = idGenerator instanceof RandomIdGenerator;
@@ -50,7 +50,7 @@ final class TracerSharedState {
5050
this.sampler = sampler;
5151
this.activeSpanProcessor = SpanProcessor.composite(spanProcessors);
5252
this.exceptionAttributeResolver = exceptionAttributeResolver;
53-
this.spanMetrics = spanMetrics;
53+
this.spanInstrumentation = spanInstrumentation;
5454
}
5555

5656
Clock getClock() {
@@ -88,8 +88,8 @@ SpanProcessor getActiveSpanProcessor() {
8888
return activeSpanProcessor;
8989
}
9090

91-
SpanMetrics getSpanMetrics() {
92-
return spanMetrics;
91+
SpanInstrumentation getSpanMetrics() {
92+
return spanInstrumentation;
9393
}
9494

9595
/**

sdk/trace/src/main/java/io/opentelemetry/sdk/trace/internal/metrics/NoopSpanMetrics.java renamed to sdk/trace/src/main/java/io/opentelemetry/sdk/trace/internal/metrics/NoopSpanInstrumentation.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@
77

88
import io.opentelemetry.sdk.trace.samplers.SamplingResult;
99

10-
class NoopSpanMetrics implements SpanMetrics {
10+
class NoopSpanInstrumentation implements SpanInstrumentation {
1111

12-
static final NoopSpanMetrics INSTANCE = new NoopSpanMetrics();
12+
static final NoopSpanInstrumentation INSTANCE = new NoopSpanInstrumentation();
1313

1414
@Override
15-
public SpanMetrics.Recording recordSpanStart(SamplingResult samplingResult) {
15+
public SpanInstrumentation.Recording recordSpanStart(SamplingResult samplingResult) {
1616
return NoopRecording.INSTANCE;
1717
}
1818

19-
private static class NoopRecording implements SpanMetrics.Recording {
19+
private static class NoopRecording implements SpanInstrumentation.Recording {
2020

2121
private static final NoopRecording INSTANCE = new NoopRecording();
2222

sdk/trace/src/main/java/io/opentelemetry/sdk/trace/internal/metrics/SemConvSpanMetrics.java renamed to sdk/trace/src/main/java/io/opentelemetry/sdk/trace/internal/metrics/SemConvSpanInstrumentation.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
2121
* any time.
2222
*/
23-
public class SemConvSpanMetrics implements SpanMetrics {
23+
public class SemConvSpanInstrumentation implements SpanInstrumentation {
2424

2525
private final Supplier<MeterProvider> meterProviderSupplier;
2626

@@ -34,11 +34,7 @@ public class SemConvSpanMetrics implements SpanMetrics {
3434
@Nullable private volatile LongUpDownCounter live = null;
3535
@Nullable private volatile LongCounter ended = null;
3636

37-
/**
38-
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
39-
* any time.
40-
*/
41-
public SemConvSpanMetrics(Supplier<MeterProvider> meterProviderSupplier) {
37+
public SemConvSpanInstrumentation(Supplier<MeterProvider> meterProviderSupplier) {
4238
this.meterProviderSupplier = meterProviderSupplier;
4339
}
4440

@@ -92,13 +88,13 @@ static Attributes getAttributesForSamplingDecisions(SamplingDecision decision) {
9288
}
9389

9490
@Override
95-
public SpanMetrics.Recording recordSpanStart(SamplingResult samplingResult) {
91+
public SpanInstrumentation.Recording recordSpanStart(SamplingResult samplingResult) {
9692
Attributes attribs = getAttributesForSamplingDecisions(samplingResult.getDecision());
9793
live().add(1, attribs);
9894
return new Recording(attribs);
9995
}
10096

101-
private class Recording implements SpanMetrics.Recording {
97+
private class Recording implements SpanInstrumentation.Recording {
10298

10399
private final Attributes attributes;
104100
private boolean endAlreadyReported = false;
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.sdk.trace.internal.metrics;
7+
8+
import io.opentelemetry.api.metrics.MeterProvider;
9+
import io.opentelemetry.sdk.common.InternalTelemetryVersion;
10+
import io.opentelemetry.sdk.trace.samplers.SamplingResult;
11+
import java.util.function.Supplier;
12+
13+
/**
14+
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
15+
* any time.
16+
*/
17+
public interface SpanInstrumentation {
18+
19+
static SpanInstrumentation noop() {
20+
return NoopSpanInstrumentation.INSTANCE;
21+
}
22+
23+
static SpanInstrumentation create(
24+
InternalTelemetryVersion internalTelemetryVersion,
25+
Supplier<MeterProvider> meterProviderSupplier) {
26+
switch (internalTelemetryVersion) {
27+
case LEGACY:
28+
return SpanInstrumentation.noop();
29+
case LATEST:
30+
return new SemConvSpanInstrumentation(meterProviderSupplier);
31+
}
32+
throw new IllegalStateException(
33+
"Unhandled telemetry schema version: " + internalTelemetryVersion);
34+
}
35+
36+
Recording recordSpanStart(SamplingResult samplingResult);
37+
38+
/**
39+
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
40+
* any time.
41+
*/
42+
interface Recording {
43+
44+
void recordSpanEnd();
45+
}
46+
}

sdk/trace/src/main/java/io/opentelemetry/sdk/trace/internal/metrics/SpanMetrics.java

Lines changed: 0 additions & 30 deletions
This file was deleted.

sdk/trace/src/test/java/io/opentelemetry/sdk/trace/NonRecordingSpanTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import io.opentelemetry.api.trace.StatusCode;
2323
import io.opentelemetry.api.trace.TraceFlags;
2424
import io.opentelemetry.api.trace.TraceState;
25-
import io.opentelemetry.sdk.trace.internal.metrics.SpanMetrics;
25+
import io.opentelemetry.sdk.trace.internal.metrics.SpanInstrumentation;
2626
import java.time.Instant;
2727
import java.util.concurrent.TimeUnit;
2828
import org.junit.jupiter.api.Test;
@@ -40,7 +40,7 @@ class NonRecordingSpanTest {
4040
TraceFlags.getDefault(),
4141
TraceState.getDefault());
4242

43-
@Mock SpanMetrics.Recording mockRecording;
43+
@Mock SpanInstrumentation.Recording mockRecording;
4444

4545
@Test
4646
void notRecording() {

0 commit comments

Comments
 (0)