Skip to content

Commit 44523b5

Browse files
committed
changes
1 parent 0f261ab commit 44523b5

File tree

7 files changed

+32
-63
lines changed

7 files changed

+32
-63
lines changed

google-cloud-spanner/pom.xml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -267,11 +267,6 @@
267267
<artifactId>detector-resources-support</artifactId>
268268
<version>0.33.0</version>
269269
</dependency>
270-
<dependency>
271-
<groupId>com.google.cloud.opentelemetry</groupId>
272-
<artifactId>exporter-trace</artifactId>
273-
<version>0.33.0</version>
274-
</dependency>
275270
<dependency>
276271
<groupId>com.google.cloud.opentelemetry</groupId>
277272
<artifactId>exporter-metrics</artifactId>
@@ -466,7 +461,6 @@
466461
<groupId>com.google.cloud.opentelemetry</groupId>
467462
<artifactId>exporter-trace</artifactId>
468463
<version>0.33.0</version>
469-
<scope>test</scope>
470464
</dependency>
471465
<dependency>
472466
<groupId>com.google.cloud</groupId>

google-cloud-spanner/src/main/java/com/google/cloud/spanner/BuiltInMetricsConstant.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,14 @@ static Map<InstrumentSelector, View> getAllViews() {
168168
Aggregation.sum(),
169169
InstrumentType.COUNTER,
170170
"1");
171+
defineView(
172+
views,
173+
BuiltInMetricsConstant.SPANNER_METER_NAME,
174+
BuiltInMetricsConstant.GFE_LATENCIES_NAME,
175+
BuiltInMetricsConstant.GFE_LATENCIES_NAME,
176+
BuiltInMetricsConstant.AGGREGATION_WITH_MILLIS_HISTOGRAM,
177+
InstrumentType.HISTOGRAM,
178+
"ms");
171179
defineGRPCView(views);
172180
return views.build();
173181
}

google-cloud-spanner/src/main/java/com/google/cloud/spanner/BuiltInMetricsProvider.java

Lines changed: 7 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@
1717
package com.google.cloud.spanner;
1818

1919
import static com.google.cloud.opentelemetry.detection.GCPPlatformDetector.SupportedPlatform.GOOGLE_KUBERNETES_ENGINE;
20+
import static com.google.cloud.spanner.BuiltInMetricsConstant.CLIENT_HASH_KEY;
2021
import static com.google.cloud.spanner.BuiltInMetricsConstant.CLIENT_UID_KEY;
21-
import static com.google.cloud.spanner.BuiltInMetricsConstant.SPANNER_RESOURCE_TYPE;
2222
import static com.google.cloud.spanner.BuiltInMetricsConstant.INSTANCE_CONFIG_ID_KEY;
2323
import static com.google.cloud.spanner.BuiltInMetricsConstant.INSTANCE_ID_KEY;
2424
import static com.google.cloud.spanner.BuiltInMetricsConstant.LOCATION_ID_KEY;
2525
import static com.google.cloud.spanner.BuiltInMetricsConstant.PROJECT_ID_KEY;
26+
import static com.google.cloud.spanner.BuiltInMetricsConstant.SPANNER_RESOURCE_TYPE;
2627

2728
import com.google.api.core.ApiFunction;
28-
import com.google.api.gax.core.GaxProperties;
2929
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
3030
import com.google.auth.Credentials;
3131
import com.google.cloud.opentelemetry.detection.AttributeKeys;
@@ -34,8 +34,6 @@
3434
import com.google.cloud.opentelemetry.metric.GoogleCloudMetricExporter;
3535
import com.google.cloud.opentelemetry.metric.MetricConfiguration;
3636
import com.google.cloud.opentelemetry.metric.MonitoredResourceDescription;
37-
import com.google.cloud.opentelemetry.trace.TraceConfiguration;
38-
import com.google.cloud.opentelemetry.trace.TraceExporter;
3937
import com.google.common.collect.ImmutableSet;
4038
import com.google.common.hash.HashFunction;
4139
import com.google.common.hash.Hashing;
@@ -47,11 +45,8 @@
4745
import io.opentelemetry.sdk.OpenTelemetrySdk;
4846
import io.opentelemetry.sdk.metrics.SdkMeterProvider;
4947
import io.opentelemetry.sdk.metrics.SdkMeterProviderBuilder;
50-
import io.opentelemetry.sdk.resources.Resource;
5148
import io.opentelemetry.sdk.metrics.export.MetricExporter;
52-
import io.opentelemetry.sdk.trace.SdkTracerProvider;
53-
import io.opentelemetry.sdk.trace.export.BatchSpanProcessor;
54-
import io.opentelemetry.sdk.trace.samplers.Sampler;
49+
import io.opentelemetry.sdk.resources.Resource;
5550
import java.lang.management.ManagementFactory;
5651
import java.lang.reflect.Method;
5752
import java.net.InetAddress;
@@ -101,39 +96,11 @@ OpenTelemetry getOrCreateOpenTelemetry(
10196
.setPrefix("spanner.googleapis.com/internal/client")
10297
.setUseServiceTimeSeries(true)
10398
.build());
104-
AttributesBuilder attributesBuilder =
105-
Attributes.builder()
106-
.put("gcp.resource_type", SPANNER_RESOURCE_TYPE)
107-
.put("project_id", projectId)
108-
.put("instance_id", "spanner-testing-east2")
109-
.put("instance_config", "unknown")
110-
.put("location", detectClientLocation())
111-
.put("client_hash", generateClientHash(getDefaultTaskValue()));
11299
BuiltInMetricsView.registerBuiltinMetrics(metricExporter, sdkMeterProviderBuilder);
113100
sdkMeterProviderBuilder.setResource(Resource.create(createResourceAttributes(projectId)));
114-
SdkMeterProvider sdkMeterProvider =
115-
sdkMeterProviderBuilder.setResource(Resource.create(attributesBuilder.build())).build();
116-
117-
// Registering the trace provider with the same OpenTelemetry object used for metrics.
118-
Resource resource =
119-
Resource.getDefault().merge(Resource.builder().put("service.name", "surbhi").build());
120-
121-
io.opentelemetry.sdk.trace.export.SpanExporter traceExporter =
122-
TraceExporter.createWithConfiguration(TraceConfiguration.builder().build());
123-
BatchSpanProcessor otlpGrpcSpanProcessor =
124-
BatchSpanProcessor.builder(traceExporter).build();
125-
SdkTracerProvider sdkTracerProvider =
126-
SdkTracerProvider.builder()
127-
.addSpanProcessor(otlpGrpcSpanProcessor)
128-
.setResource(resource)
129-
.setSampler(Sampler.traceIdRatioBased(1))
130-
.build();
101+
SdkMeterProvider sdkMeterProvider = sdkMeterProviderBuilder.build();
131102

132-
this.openTelemetry =
133-
OpenTelemetrySdk.builder()
134-
.setMeterProvider(sdkMeterProvider)
135-
// .setTracerProvider(sdkTracerProvider)
136-
.build();
103+
this.openTelemetry = OpenTelemetrySdk.builder().setMeterProvider(sdkMeterProvider).build();
137104
Runtime.getRuntime().addShutdownHook(new Thread(sdkMeterProvider::close));
138105
}
139106
return this.openTelemetry;
@@ -178,20 +145,16 @@ Attributes createResourceAttributes(String projectId) {
178145
.put(INSTANCE_CONFIG_ID_KEY.getKey(), "unknown")
179146
.put(CLIENT_HASH_KEY.getKey(), generateClientHash(getDefaultTaskValue()))
180147
.put(INSTANCE_ID_KEY.getKey(), "unknown")
181-
.put(LOCATION_ID_KEY.getKey(), detectClientLocation());
148+
.put(LOCATION_ID_KEY.getKey(), detectClientLocation())
149+
.put("gcp.resource_type", SPANNER_RESOURCE_TYPE);
182150

183151
return attributesBuilder.build();
184152
}
185153

186154
Map<String, String> createClientAttributes() {
187155
Map<String, String> clientAttributes = new HashMap<>();
188-
// clientAttributes.put(LOCATION_ID_KEY.getKey(), detectClientLocation());
189-
// clientAttributes.put(PROJECT_ID_KEY.getKey(), projectId);
190-
// clientAttributes.put(INSTANCE_CONFIG_ID_KEY.getKey(), "unknown");
191-
// clientAttributes.put(CLIENT_NAME_KEY.getKey(), client_name);
192156
String clientUid = getDefaultTaskValue();
193157
clientAttributes.put(CLIENT_UID_KEY.getKey(), clientUid);
194-
// clientAttributes.put(CLIENT_HASH_KEY.getKey(), generateClientHash(clientUid));
195158
return clientAttributes;
196159
}
197160

google-cloud-spanner/src/main/java/com/google/cloud/spanner/BuiltInMetricsRecorder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ void recordServerTimingHeaderMetrics(
105105
Map<String, String> attributes) {
106106
io.opentelemetry.api.common.Attributes otelAttributes = toOtelAttributes(attributes);
107107
if (gfeLatency != null) {
108-
gfeLatencyRecorder.record(gfeLatency, otelAttributes);
108+
gfeLatencyRecorder.record(gfeLatency, otelAttributes, Context.current());
109109
}
110110
if (gfeHeaderMissingCount > 0) {
111111
gfeHeaderMissingCountRecorder.add(gfeHeaderMissingCount, otelAttributes);

google-cloud-spanner/src/main/java/com/google/cloud/spanner/BuiltInMetricsTracer.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public void attemptSucceeded() {
7777
super.attemptSucceeded();
7878
attributes.put(STATUS_ATTRIBUTE, StatusCode.Code.OK.toString());
7979
builtInOpenTelemetryMetricsRecorder.recordServerTimingHeaderMetrics(
80-
gfeLatency, afeLatency, gfeHeaderMissingCount, afeHeaderMissingCount, attributes);
80+
gfeLatency, afeLatency, gfeHeaderMissingCount, afeHeaderMissingCount, attributes);
8181
}
8282
span.end();
8383
}
@@ -161,7 +161,6 @@ public void addAttributes(Map<String, String> attributes) {
161161
super.addAttributes(attributes);
162162
this.attributes.putAll(attributes);
163163
}
164-
;
165164

166165
@Override
167166
public void addAttributes(String key, String value) {

google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2012,9 +2012,6 @@ public OpenTelemetry getOpenTelemetry() {
20122012
return this.openTelemetry;
20132013
} else {
20142014
return GlobalOpenTelemetry.get();
2015-
// this.openTelemetry = this.builtInMetricsProvider.getOrCreateOpenTelemetry(
2016-
// this.getProjectId(), getCredentials(), this.monitoringHost);
2017-
// return this.openTelemetry;
20182015
}
20192016
}
20202017

@@ -2074,17 +2071,17 @@ private ApiTracerFactory createMetricsApiTracerFactory() {
20742071
this.builtInMetricsProvider.getOrCreateOpenTelemetry(
20752072
this.getProjectId(), getCredentials(), this.monitoringHost);
20762073

2077-
// this.openTelemetry = openTelemetry;
2078-
20792074
return openTelemetry != null
20802075
? new BuiltInMetricsTracerFactory(
20812076
new BuiltInMetricsRecorder(openTelemetry, BuiltInMetricsConstant.METER_NAME),
20822077
new HashMap<>(),
20832078
new TraceWrapper(
20842079
Tracing.getTracer(),
2085-
openTelemetry.getTracer(
2086-
MetricRegistryConstants.INSTRUMENTATION_SCOPE,
2087-
GaxProperties.getLibraryVersion(getClass())),
2080+
// Using the OpenTelemetry object set in Spanner Options, will be NoOp if not set
2081+
this.getOpenTelemetry()
2082+
.getTracer(
2083+
MetricRegistryConstants.INSTRUMENTATION_SCOPE,
2084+
GaxProperties.getLibraryVersion(getClass())),
20882085
true))
20892086
: null;
20902087
}

google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetryBuiltInMetricsTracerTest.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import static org.junit.Assert.fail;
2727
import static org.junit.Assume.assumeFalse;
2828

29+
import com.google.api.gax.core.GaxProperties;
2930
import com.google.api.gax.longrunning.OperationTimedPollAlgorithm;
3031
import com.google.api.gax.retrying.RetrySettings;
3132
import com.google.api.gax.tracing.ApiTracerFactory;
@@ -97,7 +98,14 @@ public ApiTracerFactory createMetricsTracerFactory() {
9798
OpenTelemetrySdk.builder().setMeterProvider(meterProvider.build()).build();
9899

99100
return new BuiltInMetricsTracerFactory(
100-
new BuiltInMetricsRecorder(openTelemetry, BuiltInMetricsConstant.METER_NAME), attributes);
101+
new BuiltInMetricsRecorder(openTelemetry, BuiltInMetricsConstant.METER_NAME),
102+
attributes,
103+
new TraceWrapper(
104+
Tracing.getTracer(),
105+
openTelemetry.getTracer(
106+
MetricRegistryConstants.INSTRUMENTATION_SCOPE,
107+
GaxProperties.getLibraryVersion(getClass())),
108+
true));
101109
}
102110

103111
@BeforeClass
@@ -119,7 +127,7 @@ public void createSpannerInstance() {
119127

120128
ApiTracerFactory metricsTracerFactory =
121129
new BuiltInMetricsTracerFactory(
122-
new BuiltInMetricsRecorder(openTelemetry, BuiltInMetricsConstant.METER_NAME),
130+
new BuiltInMetricsRecorder(OpenTelemetry.noop(), BuiltInMetricsConstant.METER_NAME),
123131
attributes,
124132
new TraceWrapper(Tracing.getTracer(), OpenTelemetry.noop().getTracer(""), true));
125133
// Set a quick polling algorithm to prevent this from slowing down the test unnecessarily.

0 commit comments

Comments
 (0)