|
59 | 59 | import io.opentelemetry.sdk.trace.SdkTracerProvider; |
60 | 60 | import io.opentelemetry.sdk.trace.data.SpanData; |
61 | 61 | import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor; |
| 62 | +import java.io.IOException; |
62 | 63 | import java.nio.charset.StandardCharsets; |
63 | 64 | import java.util.List; |
64 | 65 | import org.junit.jupiter.api.AfterEach; |
@@ -100,29 +101,9 @@ void tearDown() { |
100 | 101 | void testTracing_successfulEcho_grpc() throws Exception { |
101 | 102 | SpanTracerFactory tracingFactory = new SpanTracerFactory(openTelemetrySdk); |
102 | 103 |
|
103 | | - EchoSettings grpcEchoSettings = |
104 | | - EchoSettings.newBuilder() |
105 | | - .setCredentialsProvider(NoCredentialsProvider.create()) |
106 | | - .setTransportChannelProvider( |
107 | | - EchoSettings.defaultGrpcTransportProviderBuilder() |
108 | | - .setChannelConfigurator(ManagedChannelBuilder::usePlaintext) |
109 | | - .build()) |
110 | | - .setEndpoint("localhost:7469") |
111 | | - .build(); |
112 | | - |
113 | | - EchoStubSettings.Builder stubSettingsBuilder = |
114 | | - (EchoStubSettings.Builder) grpcEchoSettings.getStubSettings().toBuilder(); |
115 | | - stubSettingsBuilder.setTracerFactory(tracingFactory); |
116 | | - |
117 | | - EchoStubSettings stubSettings = |
118 | | - new EchoStubSettings(stubSettingsBuilder) { |
119 | | - @Override |
120 | | - public String getServiceName() { |
121 | | - return "showcase"; |
122 | | - } |
123 | | - }; |
124 | | - |
125 | | - try (EchoClient client = EchoClient.create(stubSettings.createStub())) { |
| 104 | + EchoSettings grpcEchoSettings = createEchoSettings(false); |
| 105 | + EchoStub stub = createStubWithServiceName(grpcEchoSettings, tracingFactory); |
| 106 | + try (EchoClient client = EchoClient.create(stub)) { |
126 | 107 |
|
127 | 108 | client.echo(EchoRequest.newBuilder().setContent("tracing-test").build()); |
128 | 109 |
|
@@ -183,30 +164,9 @@ public String getServiceName() { |
183 | 164 | void testTracing_successfulEcho_httpjson() throws Exception { |
184 | 165 | SpanTracerFactory tracingFactory = new SpanTracerFactory(openTelemetrySdk); |
185 | 166 |
|
186 | | - EchoSettings httpJsonEchoSettings = |
187 | | - EchoSettings.newHttpJsonBuilder() |
188 | | - .setCredentialsProvider(NoCredentialsProvider.create()) |
189 | | - .setTransportChannelProvider( |
190 | | - EchoSettings.defaultHttpJsonTransportProviderBuilder() |
191 | | - .setHttpTransport( |
192 | | - new NetHttpTransport.Builder().doNotValidateCertificate().build()) |
193 | | - .setEndpoint("http://localhost:7469") |
194 | | - .build()) |
195 | | - .build(); |
196 | | - |
197 | | - EchoStubSettings.Builder stubSettingsBuilder = |
198 | | - (EchoStubSettings.Builder) httpJsonEchoSettings.getStubSettings().toBuilder(); |
199 | | - stubSettingsBuilder.setTracerFactory(tracingFactory); |
200 | | - |
201 | | - EchoStubSettings stubSettings = |
202 | | - new EchoStubSettings(stubSettingsBuilder) { |
203 | | - @Override |
204 | | - public String getServiceName() { |
205 | | - return "showcase"; |
206 | | - } |
207 | | - }; |
208 | | - |
209 | | - try (EchoClient client = EchoClient.create(stubSettings.createStub())) { |
| 167 | + EchoSettings httpJsonEchoSettings = createEchoSettings(true); |
| 168 | + EchoStub stub = createStubWithServiceName(httpJsonEchoSettings, tracingFactory); |
| 169 | + try (EchoClient client = EchoClient.create(stub)) { |
210 | 170 |
|
211 | 171 | client.echo(EchoRequest.newBuilder().setContent("tracing-test").build()); |
212 | 172 |
|
@@ -432,4 +392,47 @@ void testTracing_retry_httpjson() throws Exception { |
432 | 392 | .collect(java.util.stream.Collectors.toList()); |
433 | 393 | assertThat(resendCounts).containsExactlyElementsIn(expectedCounts).inOrder(); |
434 | 394 | } |
| 395 | + |
| 396 | + private EchoSettings createEchoSettings(boolean isHttpJson) throws Exception { |
| 397 | + if (isHttpJson) { |
| 398 | + return EchoSettings.newHttpJsonBuilder() |
| 399 | + .setCredentialsProvider(NoCredentialsProvider.create()) |
| 400 | + .setTransportChannelProvider( |
| 401 | + EchoSettings.defaultHttpJsonTransportProviderBuilder() |
| 402 | + .setHttpTransport( |
| 403 | + new NetHttpTransport.Builder().doNotValidateCertificate().build()) |
| 404 | + .setEndpoint("http://localhost:7469") |
| 405 | + .build()) |
| 406 | + .build(); |
| 407 | + } else { |
| 408 | + return EchoSettings.newBuilder() |
| 409 | + .setCredentialsProvider(NoCredentialsProvider.create()) |
| 410 | + .setTransportChannelProvider( |
| 411 | + EchoSettings.defaultGrpcTransportProviderBuilder() |
| 412 | + .setChannelConfigurator(ManagedChannelBuilder::usePlaintext) |
| 413 | + .build()) |
| 414 | + .setEndpoint("localhost:7469") |
| 415 | + .build(); |
| 416 | + } |
| 417 | + } |
| 418 | + |
| 419 | + private EchoStub createStubWithServiceName( |
| 420 | + EchoSettings settings, SpanTracerFactory tracingFactory) throws IOException { |
| 421 | + EchoStubSettings.Builder builder = |
| 422 | + (EchoStubSettings.Builder) settings.getStubSettings().toBuilder(); |
| 423 | + builder.setTracerFactory(tracingFactory); |
| 424 | + return new ExtendedEchoStubSettings(builder).createStub(); |
| 425 | + } |
| 426 | + |
| 427 | + /** Custom wrapper to set a service name for showcase clients, which lack one by default. */ |
| 428 | + private static class ExtendedEchoStubSettings extends EchoStubSettings { |
| 429 | + protected ExtendedEchoStubSettings(EchoStubSettings.Builder builder) throws IOException { |
| 430 | + super(builder); |
| 431 | + } |
| 432 | + |
| 433 | + @Override |
| 434 | + public String getServiceName() { |
| 435 | + return "showcase"; |
| 436 | + } |
| 437 | + } |
435 | 438 | } |
0 commit comments