Skip to content

Commit 2091d6e

Browse files
committed
feat(o11y): add needsContext and private constructor to OpenTelemetryMetricsFactory
1 parent ed34065 commit 2091d6e

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsFactory.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ public OpenTelemetryMetricsFactory(OpenTelemetry openTelemetry) {
5151
this.clientLevelTracerContext = ApiTracerContext.empty();
5252
}
5353

54+
private OpenTelemetryMetricsFactory(ApiTracerContext clientLevelTracerContext, OpenTelemetry openTelemetry, GoldenSignalsMetricsRecorder metricsRecorder) {
55+
this.clientLevelTracerContext = clientLevelTracerContext;
56+
this.openTelemetry = openTelemetry;
57+
this.metricsRecorder = metricsRecorder;
58+
}
59+
5460
@Override
5561
public ApiTracer newTracer(ApiTracer parent, SpanName spanName, OperationType operationType) {
5662
if (metricsRecorder == null) {
@@ -83,12 +89,11 @@ public ApiTracerFactory withContext(ApiTracerContext context) {
8389
if (context == null) {
8490
return new BaseApiTracerFactory();
8591
}
86-
this.metricsRecorder =
92+
metricsRecorder =
8793
GoldenSignalsMetricsRecorder.create(openTelemetry, context.libraryMetadata());
88-
if (this.metricsRecorder == null) {
94+
if (metricsRecorder == null) {
8995
return new BaseApiTracerFactory();
9096
}
91-
this.clientLevelTracerContext = context;
92-
return this;
97+
return new OpenTelemetryMetricsFactory(clientLevelTracerContext.merge(context), openTelemetry, metricsRecorder);
9398
}
9499
}

0 commit comments

Comments
 (0)