Skip to content

Commit 515092a

Browse files
committed
chore: Clean up code based on PR feedback
1 parent a977960 commit 515092a

2 files changed

Lines changed: 18 additions & 13 deletions

File tree

java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/telemetry/DatastoreMetricsRecorder.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@
4343
@InternalExtensionOnly
4444
public interface DatastoreMetricsRecorder extends MetricsRecorder {
4545

46+
Logger logger = Logger.getLogger(DatastoreMetricsRecorder.class.getName());
47+
4648
/**
4749
* Releases any resources held by this recorder.
4850
*
@@ -85,16 +87,21 @@ default void close() {}
8587
*/
8688
static DatastoreMetricsRecorder getInstance(
8789
@Nonnull DatastoreOptions options, OpenTelemetry builtInOtel) {
88-
Logger logger = Logger.getLogger(DatastoreMetricsRecorder.class.getName());
89-
DatastoreOpenTelemetryOptions otelOptions = options.getOpenTelemetryOptions();
9090
List<DatastoreMetricsRecorder> recorders = new ArrayList<>();
9191

92-
// Default provider: export built-in metrics to Cloud Monitoring
92+
// No need to send metrics when using an emulator
9393
String emulatorHost = System.getenv(DatastoreOptions.LOCAL_HOST_ENV_VAR);
9494
boolean emulatorEnabled = emulatorHost != null && !emulatorHost.isEmpty();
9595

96+
if (emulatorEnabled) {
97+
logger.log(Level.FINE, "Emulator detected in Datastore. Metrics are not being recorded.");
98+
return new CompositeDatastoreMetricsRecorder(recorders);
99+
}
100+
101+
DatastoreOpenTelemetryOptions otelOptions = options.getOpenTelemetryOptions();
102+
96103
// When using a local emulator, there is no need to configure a built-in Otel instance
97-
if (otelOptions.isExportBuiltinMetricsToGoogleCloudMonitoring() && !emulatorEnabled) {
104+
if (otelOptions.isExportBuiltinMetricsToGoogleCloudMonitoring()) {
98105
try {
99106
if (builtInOtel != null) {
100107
recorders.add(
@@ -104,7 +111,7 @@ static DatastoreMetricsRecorder getInstance(
104111
} catch (Exception e) {
105112
logger.log(
106113
Level.WARNING,
107-
"Failed to create built-in metrics provider for Cloud Monitoring export.",
114+
"Failed to create built-in metrics provider for Cloud Monitoring exporting.",
108115
e);
109116
}
110117
}
@@ -113,7 +120,7 @@ static DatastoreMetricsRecorder getInstance(
113120
// configured backend. We will first check their supplied Otel object, then check
114121
// the global Otel config.
115122
// Note: Metrics will not be sent if an emulator is enabled.
116-
if (otelOptions.isMetricsEnabled() && !emulatorEnabled) {
123+
if (otelOptions.isMetricsEnabled()) {
117124
OpenTelemetry customOtel = otelOptions.getOpenTelemetry();
118125
if (customOtel == null) {
119126
customOtel = GlobalOpenTelemetry.get();

java-datastore/google-cloud-datastore/src/test/java/com/google/cloud/datastore/telemetry/DatastoreMetricsRecorderTest.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@
2121
import com.google.cloud.datastore.DatastoreOpenTelemetryOptions;
2222
import com.google.cloud.datastore.DatastoreOptions;
2323
import io.opentelemetry.api.OpenTelemetry;
24-
import io.opentelemetry.sdk.OpenTelemetrySdk;
25-
import io.opentelemetry.sdk.metrics.SdkMeterProvider;
26-
import io.opentelemetry.sdk.testing.exporter.InMemoryMetricReader;
24+
import org.easymock.EasyMock;
2725
import org.junit.Test;
2826
import org.junit.runner.RunWith;
2927
import org.junit.runners.JUnit4;
@@ -51,8 +49,8 @@ public void defaultOptionsWithBuiltInMetricsDisabled_returnsNoRecorders() {
5149
.setExportBuiltinMetricsToGoogleCloudMonitoring(false)
5250
.build())
5351
.build();
54-
OpenTelemetry builtInOtel = org.easymock.EasyMock.createMock(OpenTelemetry.class);
55-
org.easymock.EasyMock.replay(builtInOtel);
52+
OpenTelemetry builtInOtel = EasyMock.createMock(OpenTelemetry.class);
53+
EasyMock.replay(builtInOtel);
5654
DatastoreMetricsRecorder recorder = DatastoreMetricsRecorder.getInstance(options, builtInOtel);
5755
assertThat(recorder).isInstanceOf(CompositeDatastoreMetricsRecorder.class);
5856
CompositeDatastoreMetricsRecorder compositeRecorder =
@@ -71,8 +69,8 @@ public void tracingEnabledButMetricsDisabledAndBuiltInDisabled_returnsNoRecorder
7169
.setExportBuiltinMetricsToGoogleCloudMonitoring(false)
7270
.build())
7371
.build();
74-
OpenTelemetry builtInOtel = org.easymock.EasyMock.createMock(OpenTelemetry.class);
75-
org.easymock.EasyMock.replay(builtInOtel);
72+
OpenTelemetry builtInOtel = EasyMock.createMock(OpenTelemetry.class);
73+
EasyMock.replay(builtInOtel);
7674
DatastoreMetricsRecorder recorder = DatastoreMetricsRecorder.getInstance(options, builtInOtel);
7775
assertThat(recorder).isInstanceOf(CompositeDatastoreMetricsRecorder.class);
7876
CompositeDatastoreMetricsRecorder compositeRecorder =

0 commit comments

Comments
 (0)