Visitar URL original
test: Additional Transaction tests and AggregationQuery test (#1518) · googleapis/java-datastore@9672e7b · GitHub
Skip to content
This repository was archived by the owner on Feb 24, 2026. It is now read-only.

Commit 9672e7b

Browse files
committed
test: Additional Transaction tests and AggregationQuery test (#1518)
* test: ReadWrite Transaction test * test: Added test for Transactional RunQuery and Transaction Rollback * test: runInTransaction API tracing test - Fixed setting of common span attributes to spans in runInTransaction - Removed some gRPC related channel attributes that are not present in this Datastore version, yet.
1 parent db41656 commit 9672e7b

5 files changed

Lines changed: 303 additions & 16 deletions

File tree

‎google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreImpl.java‎

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ private io.opentelemetry.api.trace.Span startSpanWithParentContext(
157157
.with(
158158
io.opentelemetry.api.trace.Span.wrap(
159159
parentSpanContext.getSpanContext())));
160-
return spanBuilder.startSpan();
160+
return otelTraceUtil.addSettingsAttributesToCurrentSpan(spanBuilder).startSpan();
161161
}
162162

163163
@Override
@@ -540,7 +540,10 @@ com.google.datastore.v1.LookupResponse lookup(
540540
.put("Received", response.getFoundCount())
541541
.put("Missing", response.getMissingCount())
542542
.put("Deferred", response.getDeferredCount())
543-
.put("isTransactional", isTransactional)
543+
.put("transactional", isTransactional)
544+
.put(
545+
"transaction_id",
546+
isTransactional ? readOptions.getTransaction().toStringUtf8() : "")
544547
.build());
545548
return response;
546549
},
@@ -772,6 +775,11 @@ public Void call() throws DatastoreException {
772775
retrySettings,
773776
EXCEPTION_HANDLER,
774777
getOptions().getClock());
778+
span.addEvent(
779+
com.google.cloud.datastore.telemetry.TraceUtil.SPAN_NAME_ROLLBACK,
780+
new ImmutableMap.Builder<String, Object>()
781+
.put("transaction_id", requestPb.getTransaction().toStringUtf8())
782+
.build());
775783
} catch (RetryHelperException e) {
776784
span.end(e);
777785
throw DatastoreException.translateAndThrow(e);

‎google-cloud-datastore/src/main/java/com/google/cloud/datastore/telemetry/DisabledTraceUtil.java‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.google.cloud.datastore.telemetry.TraceUtil.SpanContext;
2323
import io.grpc.ManagedChannelBuilder;
2424
import io.opentelemetry.api.trace.Span;
25+
import io.opentelemetry.api.trace.SpanBuilder;
2526
import io.opentelemetry.api.trace.Tracer;
2627
import io.opentelemetry.api.trace.TracerProvider;
2728
import java.util.Map;
@@ -115,6 +116,10 @@ public TraceUtil.Span startSpan(String spanName, TraceUtil.SpanContext parentSpa
115116
return new Span();
116117
}
117118

119+
public SpanBuilder addSettingsAttributesToCurrentSpan(SpanBuilder spanBuilder) {
120+
return getTracer().spanBuilder("TRACING_DISABLED_NO_OP");
121+
}
122+
118123
@Nonnull
119124
@Override
120125
public TraceUtil.Span getCurrentSpan() {

‎google-cloud-datastore/src/main/java/com/google/cloud/datastore/telemetry/EnabledTraceUtil.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,8 @@ public Scope makeCurrent() {
238238
}
239239

240240
/** Applies the current Datastore instance settings as attributes to the current Span */
241-
private SpanBuilder addSettingsAttributesToCurrentSpan(SpanBuilder spanBuilder) {
241+
@Override
242+
public SpanBuilder addSettingsAttributesToCurrentSpan(SpanBuilder spanBuilder) {
242243
spanBuilder =
243244
spanBuilder.setAllAttributes(
244245
Attributes.builder()

‎google-cloud-datastore/src/main/java/com/google/cloud/datastore/telemetry/TraceUtil.java‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.google.cloud.datastore.DatastoreOptions;
2323
import io.grpc.ManagedChannelBuilder;
2424
import io.opentelemetry.api.trace.Span;
25+
import io.opentelemetry.api.trace.SpanBuilder;
2526
import io.opentelemetry.api.trace.Tracer;
2627
import java.util.Map;
2728
import javax.annotation.Nonnull;
@@ -144,6 +145,12 @@ interface Scope extends AutoCloseable {
144145
*/
145146
Span startSpan(String spanName, SpanContext parentSpanContext);
146147

148+
/**
149+
* Adds common SpanAttributes to the current span, useful when hand-creating a new Span without
150+
* using the TraceUtil.Span interface.
151+
*/
152+
SpanBuilder addSettingsAttributesToCurrentSpan(SpanBuilder spanBuilder);
153+
147154
/** Returns the current span. */
148155
@Nonnull
149156
Span getCurrentSpan();

0 commit comments

Comments
 (0)