Skip to content

Commit 77287da

Browse files
committed
refactor(o11y): simplify GoldenSignalsMetricsRecorder to act as a no-op
Removed repetitive check for LibraryMetadata and artifactName from GoldenSignalsMetricsTracerFactory#withContext. Instead, GoldenSignalsMetricsRecorder gracefully handles missing metadata by acting as a no-op instead of creating an underlying OpenTelemetry instrument.
1 parent 78f7c6b commit 77287da

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,16 @@ class GoldenSignalsMetricsRecorder {
5151
Arrays.asList(
5252
0.0, 0.0001, 0.0005, 0.0010, 0.005, 0.010, 0.050, 0.100, 0.5, 1.0, 5.0, 10.0, 60.0, 300.0,
5353
900.0, 3600.0);
54-
final DoubleHistogram clientRequestDurationRecorder;
54+
@javax.annotation.Nullable final DoubleHistogram clientRequestDurationRecorder;
5555

5656
GoldenSignalsMetricsRecorder(
5757
OpenTelemetry openTelemetry, com.google.api.gax.rpc.LibraryMetadata libraryMetadata) {
5858
String libraryName =
59-
libraryMetadata.artifactName() != null ? libraryMetadata.artifactName() : "";
59+
libraryMetadata != null && libraryMetadata.artifactName() != null ? libraryMetadata.artifactName() : "";
60+
if (libraryName.isEmpty()) {
61+
this.clientRequestDurationRecorder = null;
62+
return;
63+
}
6064
io.opentelemetry.api.metrics.MeterBuilder meterBuilder =
6165
openTelemetry.meterBuilder(libraryName);
6266
String libraryVersion = libraryMetadata.version();
@@ -75,7 +79,9 @@ class GoldenSignalsMetricsRecorder {
7579
}
7680

7781
void recordOperationLatency(double operationLatency, Map<String, Object> attributes) {
78-
clientRequestDurationRecorder.record(
79-
operationLatency, ObservabilityUtils.toOtelAttributes(attributes));
82+
if (clientRequestDurationRecorder != null) {
83+
clientRequestDurationRecorder.record(
84+
operationLatency, ObservabilityUtils.toOtelAttributes(attributes));
85+
}
8086
}
8187
}

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,6 @@ public ApiTracerFactory withContext(ApiTracerContext context) {
7979
if (context == null) {
8080
return new BaseApiTracerFactory();
8181
}
82-
LibraryMetadata metadata = context.libraryMetadata();
83-
if (metadata == null || metadata.isEmpty() || Strings.isNullOrEmpty(metadata.artifactName())) {
84-
return new BaseApiTracerFactory();
85-
}
8682
this.clientLevelTracerContext = context;
8783
this.metricsRecorder =
8884
new GoldenSignalsMetricsRecorder(

0 commit comments

Comments
 (0)