Skip to content

Commit 8f12e88

Browse files
committed
Fix errors in Integration test for End to End tracing
1 parent 11baac3 commit 8f12e88

File tree

3 files changed

+56
-38
lines changed

3 files changed

+56
-38
lines changed

google-cloud-spanner/pom.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,18 @@
461461
<version>0.33.0</version>
462462
<scope>test</scope>
463463
</dependency>
464+
<dependency>
465+
<groupId>com.google.cloud</groupId>
466+
<artifactId>google-cloud-trace</artifactId>
467+
<version>2.51.0</version>
468+
<scope>test</scope>
469+
</dependency>
470+
<dependency>
471+
<groupId>com.google.cloud</groupId>
472+
<artifactId>google-cloud-trace</artifactId>
473+
<version>2.51.0</version>
474+
<scope>test</scope>
475+
</dependency>
464476
</dependencies>
465477
<profiles>
466478
<profile>

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

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,7 @@
5757
*/
5858
public class IntegrationTestEnv extends ExternalResource {
5959

60-
/**
61-
* Names a property that provides the class name of the {@link TestEnvConfig} to use.
62-
*/
60+
/** Names a property that provides the class name of the {@link TestEnvConfig} to use. */
6361
public static final String TEST_ENV_CONFIG_CLASS_NAME = "spanner.testenv.config.class";
6462

6563
public static final String CONFIG_CLASS = System.getProperty(TEST_ENV_CONFIG_CLASS_NAME, null);
@@ -158,28 +156,32 @@ public SpannerOptions spannerOptionsWithEndToEndTracing() {
158156
if (options.getCredentials() != null) {
159157
traceConfigurationBuilder.setCredentials(options.getCredentials());
160158
}
161-
SpanExporter traceExporter = TraceExporter.createWithConfiguration(
162-
traceConfigurationBuilder.setProjectId(options.getProjectId()).build());
159+
SpanExporter traceExporter =
160+
TraceExporter.createWithConfiguration(
161+
traceConfigurationBuilder.setProjectId(options.getProjectId()).build());
163162

164163
String serviceName =
165164
"java-spanner-jdbc-integration-tests-" + ThreadLocalRandom.current().nextInt();
166-
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
167-
// Always sample in this test to ensure we know what we get.
168-
.setSampler(Sampler.alwaysOn())
169-
.setResource(Resource.builder().put("service.name", serviceName).build())
170-
.addSpanProcessor(BatchSpanProcessor.builder(traceExporter).build())
171-
.build();
165+
SdkTracerProvider sdkTracerProvider =
166+
SdkTracerProvider.builder()
167+
// Always sample in this test to ensure we know what we get.
168+
.setSampler(Sampler.alwaysOn())
169+
.setResource(Resource.builder().put("service.name", serviceName).build())
170+
.addSpanProcessor(BatchSpanProcessor.builder(traceExporter).build())
171+
.build();
172172
OpenTelemetrySdk openTelemetry =
173173
OpenTelemetrySdk.builder()
174174
.setTracerProvider(sdkTracerProvider)
175175
.setPropagators(ContextPropagators.create(W3CTraceContextPropagator.getInstance()))
176176
.buildAndRegisterGlobal();
177177
SpannerOptions.enableOpenTelemetryTraces();
178-
return options.toBuilder().setOpenTelemetry(openTelemetry).setEnableEndToEndTracing(true)
178+
return options
179+
.toBuilder()
180+
.setOpenTelemetry(openTelemetry)
181+
.setEnableEndToEndTracing(true)
179182
.build();
180183
}
181184

182-
183185
RemoteSpannerHelper createTestHelper(SpannerOptions options, InstanceId instanceId)
184186
throws Throwable {
185187
return RemoteSpannerHelper.create(options, instanceId);
@@ -265,9 +267,9 @@ static boolean isRetryableResourceExhaustedException(SpannerException exception)
265267
return false;
266268
}
267269
return exception
268-
.getMessage()
269-
.contains(
270-
"Quota exceeded for quota metric 'Instance create requests' and limit 'Instance create requests per minute'")
270+
.getMessage()
271+
.contains(
272+
"Quota exceeded for quota metric 'Instance create requests' and limit 'Instance create requests per minute'")
271273
|| exception.getMessage().matches(".*cannot add \\d+ nodes in region.*");
272274
}
273275

google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITEndToEndTracingTest.java

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,12 @@
5252
import org.junit.runner.RunWith;
5353
import org.junit.runners.JUnit4;
5454

55-
/**
56-
* Integration tests for End to End Tracing.
57-
*/
55+
/** Integration tests for End to End Tracing. */
5856
@Category(ParallelIntegrationTest.class)
5957
@RunWith(JUnit4.class)
6058
public class ITEndToEndTracingTest {
6159

62-
@ClassRule
63-
public static IntegrationTestEnv env = new IntegrationTestEnv();
60+
@ClassRule public static IntegrationTestEnv env = new IntegrationTestEnv();
6461
private static DatabaseClient googleStandardSQLClient;
6562

6663
static {
@@ -92,24 +89,30 @@ public void initSelectValueQuery() {
9289
selectValueQuery = "SELECT @p1 + @p1 ";
9390
}
9491

95-
private void assertTrace(String spanName, String traceid)
92+
private void assertTrace(String traceId)
9693
throws IOException, InterruptedException {
97-
TraceServiceSettings settings = env.getTestHelper().getOptions().getCredentials() == null
98-
? TraceServiceSettings.newBuilder().build() : TraceServiceSettings.newBuilder()
99-
.setCredentialsProvider(
100-
FixedCredentialsProvider.create(env.getTestHelper().getOptions().getCredentials()))
101-
.build();
94+
TraceServiceSettings settings =
95+
env.getTestHelper().getOptions().getCredentials() == null
96+
? TraceServiceSettings.newBuilder().build()
97+
: TraceServiceSettings.newBuilder()
98+
.setCredentialsProvider(
99+
FixedCredentialsProvider.create(
100+
env.getTestHelper().getOptions().getCredentials()))
101+
.build();
102102
try (TraceServiceClient client = TraceServiceClient.create(settings)) {
103103
// It can take a few seconds before the trace is visible.
104104
Thread.sleep(5000L);
105105
boolean foundTrace = false;
106106
for (int attempts = 0; attempts < 2; attempts++) {
107107
try {
108-
Trace clientTrace = client.getTrace(env.getTestHelper().getInstanceId().getProject(),
109-
traceid);
108+
Trace clientTrace =
109+
client.getTrace(env.getTestHelper().getInstanceId().getProject(), traceId);
110110
// Assert Spanner Frontend Trace is present
111-
assertTrue(clientTrace.getSpansList().stream().anyMatch(
112-
span -> "CloudSpannerOperation.ExecuteStreamingQuery".equals(span.getName())));
111+
assertTrue(
112+
clientTrace.getSpansList().stream()
113+
.anyMatch(
114+
span ->
115+
"CloudSpannerOperation.ExecuteStreamingQuery".equals(span.getName())));
113116
foundTrace = true;
114117
break;
115118
} catch (ApiException apiException) {
@@ -119,7 +122,8 @@ private void assertTrace(String spanName, String traceid)
119122
}
120123
assertTrue(foundTrace);
121124
} catch (ResourceExhaustedException resourceExhaustedException) {
122-
if (resourceExhaustedException.getMessage()
125+
if (resourceExhaustedException
126+
.getMessage()
123127
.contains("Quota exceeded for quota metric 'Read requests (free)'")) {
124128
// Ignore and allow the test to succeed.
125129
System.out.println("RESOURCE_EXHAUSTED error ignored");
@@ -141,16 +145,16 @@ private Struct executeWithRowResultType(Statement statement, Type expectedRowTyp
141145
@Test
142146
public void simpleSelect() throws IOException, InterruptedException {
143147
Tracer tracer = GlobalOpenTelemetry.getTracer(ITEndToEndTracingTest.class.getName());
144-
String spanName = "simpleSelect";
145-
Span span = tracer.spanBuilder(spanName).startSpan();
148+
Span span = tracer.spanBuilder("simpleSelect").startSpan();
146149
Scope scope = span.makeCurrent();
147150
Type rowType = Type.struct(StructField.of("", Type.int64()));
148-
Struct row = executeWithRowResultType(
149-
Statement.newBuilder(selectValueQuery).bind("p1").to(1234).build(), rowType);
151+
Struct row =
152+
executeWithRowResultType(
153+
Statement.newBuilder(selectValueQuery).bind("p1").to(1234).build(), rowType);
150154
assertThat(row.isNull(0)).isFalse();
151155
assertThat(row.getLong(0)).isEqualTo(2468);
152156
scope.close();
153157
span.end();
154-
assertTrace(spanName, span.getSpanContext().getTraceId());
158+
assertTrace(span.getSpanContext().getTraceId());
155159
}
156-
}
160+
}

0 commit comments

Comments
 (0)