Skip to content
This repository was archived by the owner on May 14, 2026. It is now read-only.

Commit 6d8b9fb

Browse files
committed
test: verify destinationResourceId tracing in showcase tests
1 parent db071c5 commit 6d8b9fb

2 files changed

Lines changed: 78 additions & 14 deletions

File tree

java-showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITOtelTracing.java

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@
4545
import com.google.showcase.v1beta1.EchoClient;
4646
import com.google.showcase.v1beta1.EchoRequest;
4747
import com.google.showcase.v1beta1.EchoSettings;
48+
import com.google.showcase.v1beta1.GetUserRequest;
49+
import com.google.showcase.v1beta1.IdentityClient;
4850
import com.google.showcase.v1beta1.it.util.TestClientInitializer;
4951
import com.google.showcase.v1beta1.stub.EchoStub;
5052
import com.google.showcase.v1beta1.stub.EchoStubSettings;
@@ -92,20 +94,24 @@ void tearDown() {
9294
}
9395

9496
@Test
95-
void testTracing_successfulEcho_grpc() throws Exception {
97+
void testTracing_successfulIdentityGetUser_grpc() throws Exception {
9698
SpanTracerFactory tracingFactory = new SpanTracerFactory(openTelemetrySdk);
9799

98-
try (EchoClient client =
99-
TestClientInitializer.createGrpcEchoClientOpentelemetry(tracingFactory)) {
100+
try (IdentityClient client =
101+
TestClientInitializer.createGrpcIdentityClientOpentelemetry(tracingFactory)) {
100102

101-
client.echo(EchoRequest.newBuilder().setContent("tracing-test").build());
103+
try {
104+
client.getUser(GetUserRequest.newBuilder().setName("users/test-user").build());
105+
} catch (Exception e) {
106+
// Ignored, the showcase server may not have this user, but trace is still generated.
107+
}
102108

103109
List<SpanData> spans = spanExporter.getFinishedSpanItems();
104110
assertThat(spans).isNotEmpty();
105111

106112
SpanData attemptSpan =
107113
spans.stream()
108-
.filter(span -> span.getName().equals("google.showcase.v1beta1.Echo/Echo"))
114+
.filter(span -> span.getName().equals("google.showcase.v1beta1.Identity/GetUser"))
109115
.findFirst()
110116
.orElseThrow(() -> new AssertionError("Incorrect span name"));
111117
assertThat(attemptSpan.getKind()).isEqualTo(SpanKind.CLIENT);
@@ -143,35 +149,46 @@ void testTracing_successfulEcho_grpc() throws Exception {
143149
attemptSpan
144150
.getAttributes()
145151
.get(AttributeKey.stringKey(ObservabilityAttributes.GRPC_RPC_METHOD_ATTRIBUTE)))
146-
.isEqualTo("google.showcase.v1beta1.Echo/Echo");
152+
.isEqualTo("google.showcase.v1beta1.Identity/GetUser");
147153
// {x-version-update-start:gapic-showcase:current}
148154
assertThat(
149155
attemptSpan
150156
.getAttributes()
151157
.get(AttributeKey.stringKey(ObservabilityAttributes.VERSION_ATTRIBUTE)))
152158
.isEqualTo("0.0.0-SNAPSHOT");
153159
// {x-version-update-end}
160+
assertThat(
161+
attemptSpan
162+
.getAttributes()
163+
.get(
164+
AttributeKey.stringKey(
165+
ObservabilityAttributes.DESTINATION_RESOURCE_ID_ATTRIBUTE)))
166+
.isEqualTo("users/test-user");
154167
}
155168
}
156169

157170
@Test
158-
void testTracing_successfulEcho_httpjson() throws Exception {
171+
void testTracing_successfulIdentityGetUser_httpjson() throws Exception {
159172
SpanTracerFactory tracingFactory = new SpanTracerFactory(openTelemetrySdk);
160173

161-
try (EchoClient client =
162-
TestClientInitializer.createHttpJsonEchoClientOpentelemetry(tracingFactory)) {
174+
try (IdentityClient client =
175+
TestClientInitializer.createHttpJsonIdentityClientOpentelemetry(tracingFactory)) {
163176

164-
client.echo(EchoRequest.newBuilder().setContent("tracing-test").build());
177+
try {
178+
client.getUser(GetUserRequest.newBuilder().setName("users/test-user").build());
179+
} catch (Exception e) {
180+
// Ignored, the showcase server may not have this user, but trace is still generated.
181+
}
165182

166183
List<SpanData> spans = spanExporter.getFinishedSpanItems();
167184
assertThat(spans).isNotEmpty();
168185

169186
SpanData attemptSpan =
170187
spans.stream()
171-
.filter(span -> span.getName().equals("POST v1beta1/echo:echo"))
188+
.filter(span -> span.getName().equals("GET v1beta1/{name=users/*}"))
172189
.findFirst()
173190
.orElseThrow(
174-
() -> new AssertionError("Attempt span 'POST v1beta1/echo:echo' not found"));
191+
() -> new AssertionError("Attempt span 'GET v1beta1/{name=users/*}' not found"));
175192
assertThat(attemptSpan.getKind()).isEqualTo(SpanKind.CLIENT);
176193
assertThat(
177194
attemptSpan
@@ -202,12 +219,19 @@ void testTracing_successfulEcho_httpjson() throws Exception {
202219
attemptSpan
203220
.getAttributes()
204221
.get(AttributeKey.stringKey(ObservabilityAttributes.HTTP_METHOD_ATTRIBUTE)))
205-
.isEqualTo("POST");
222+
.isEqualTo("GET");
206223
assertThat(
207224
attemptSpan
208225
.getAttributes()
209226
.get(AttributeKey.stringKey(ObservabilityAttributes.HTTP_URL_TEMPLATE_ATTRIBUTE)))
210-
.isEqualTo("v1beta1/echo:echo");
227+
.isEqualTo("v1beta1/{name=users/*}");
228+
assertThat(
229+
attemptSpan
230+
.getAttributes()
231+
.get(
232+
AttributeKey.stringKey(
233+
ObservabilityAttributes.DESTINATION_RESOURCE_ID_ATTRIBUTE)))
234+
.isEqualTo("users/test-user");
211235
}
212236
}
213237

java-showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/util/TestClientInitializer.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,4 +340,44 @@ public static EchoClient createHttpJsonEchoClientOpentelemetry(
340340

341341
return EchoClient.create(stub);
342342
}
343+
344+
public static IdentityClient createGrpcIdentityClientOpentelemetry(ApiTracerFactory tracerFactory)
345+
throws Exception {
346+
IdentitySettings grpcIdentitySettings =
347+
IdentitySettings.newBuilder()
348+
.setCredentialsProvider(NoCredentialsProvider.create())
349+
.setTransportChannelProvider(
350+
IdentitySettings.defaultGrpcTransportProviderBuilder()
351+
.setChannelConfigurator(ManagedChannelBuilder::usePlaintext)
352+
.build())
353+
.setEndpoint(DEFAULT_GRPC_ENDPOINT)
354+
.build();
355+
356+
com.google.showcase.v1beta1.stub.IdentityStubSettings identityStubSettings =
357+
(com.google.showcase.v1beta1.stub.IdentityStubSettings)
358+
grpcIdentitySettings.getStubSettings().toBuilder()
359+
.setTracerFactory(tracerFactory)
360+
.build();
361+
return IdentityClient.create(identityStubSettings.createStub());
362+
}
363+
364+
public static IdentityClient createHttpJsonIdentityClientOpentelemetry(ApiTracerFactory tracerFactory)
365+
throws Exception {
366+
IdentitySettings httpJsonIdentitySettings =
367+
IdentitySettings.newHttpJsonBuilder()
368+
.setCredentialsProvider(NoCredentialsProvider.create())
369+
.setTransportChannelProvider(
370+
IdentitySettings.defaultHttpJsonTransportProviderBuilder()
371+
.setHttpTransport(new NetHttpTransport.Builder().doNotValidateCertificate().build())
372+
.setEndpoint(DEFAULT_HTTPJSON_ENDPOINT)
373+
.build())
374+
.build();
375+
376+
com.google.showcase.v1beta1.stub.IdentityStubSettings identityStubSettings =
377+
(com.google.showcase.v1beta1.stub.IdentityStubSettings)
378+
httpJsonIdentitySettings.getStubSettings().toBuilder()
379+
.setTracerFactory(tracerFactory)
380+
.build();
381+
return IdentityClient.create(identityStubSettings.createStub());
382+
}
343383
}

0 commit comments

Comments
 (0)