Skip to content

Commit 667b2be

Browse files
committed
fix: suggested changes
1 parent 6da19a2 commit 667b2be

1 file changed

Lines changed: 47 additions & 41 deletions

File tree

opentelemetry/src/test/java/io/grpc/opentelemetry/OpenTelemetryMetricsModuleTest.java

Lines changed: 47 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,11 @@
2525
import static java.util.Collections.emptyList;
2626
import static java.util.concurrent.TimeUnit.MILLISECONDS;
2727
import static org.junit.Assert.assertEquals;
28+
import static org.junit.Assert.assertNotNull;
2829
import static org.junit.Assert.assertTrue;
2930
import static org.mockito.ArgumentMatchers.any;
31+
import static org.mockito.ArgumentMatchers.anyDouble;
32+
import static org.mockito.Mockito.mock;
3033
import static org.mockito.Mockito.verify;
3134

3235
import com.google.common.collect.ImmutableMap;
@@ -38,24 +41,37 @@
3841
import io.grpc.ClientInterceptors;
3942
import io.grpc.ClientStreamTracer;
4043
import io.grpc.KnownLength;
44+
import io.grpc.ManagedChannel;
4145
import io.grpc.Metadata;
4246
import io.grpc.MethodDescriptor;
47+
import io.grpc.Server;
4348
import io.grpc.ServerCall;
4449
import io.grpc.ServerCallHandler;
4550
import io.grpc.ServerServiceDefinition;
4651
import io.grpc.ServerStreamTracer;
4752
import io.grpc.ServerStreamTracer.ServerCallInfo;
53+
import io.grpc.ServiceDescriptor;
4854
import io.grpc.Status;
4955
import io.grpc.Status.Code;
56+
import io.grpc.inprocess.InProcessChannelBuilder;
57+
import io.grpc.inprocess.InProcessServerBuilder;
5058
import io.grpc.internal.FakeClock;
5159
import io.grpc.opentelemetry.GrpcOpenTelemetry.TargetFilter;
5260
import io.grpc.opentelemetry.OpenTelemetryMetricsModule.CallAttemptsTracerFactory;
5361
import io.grpc.opentelemetry.internal.OpenTelemetryConstants;
62+
import io.grpc.stub.ClientCalls;
63+
import io.grpc.testing.GrpcCleanupRule;
5464
import io.grpc.testing.GrpcServerRule;
65+
import io.opentelemetry.api.OpenTelemetry;
5566
import io.opentelemetry.api.baggage.Baggage;
67+
import io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator;
5668
import io.opentelemetry.api.common.AttributeKey;
69+
import io.opentelemetry.api.metrics.DoubleHistogram;
5770
import io.opentelemetry.api.metrics.Meter;
5871
import io.opentelemetry.context.Context;
72+
import io.opentelemetry.context.Scope;
73+
import io.opentelemetry.context.propagation.ContextPropagators;
74+
import io.opentelemetry.sdk.OpenTelemetrySdk;
5975
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
6076
import io.opentelemetry.sdk.metrics.data.MetricData;
6177
import io.opentelemetry.sdk.testing.junit4.OpenTelemetryRule;
@@ -156,6 +172,8 @@ public String parse(InputStream stream) {
156172
@Rule
157173
public final MockitoRule mocks = MockitoJUnit.rule();
158174
@Rule
175+
public final GrpcCleanupRule grpcCleanup = new GrpcCleanupRule();
176+
@Rule
159177
public final GrpcServerRule grpcServerRule = new GrpcServerRule().directExecutor();
160178
@Rule
161179
public final OpenTelemetryRule openTelemetryTesting = OpenTelemetryRule.create();
@@ -166,8 +184,8 @@ public String parse(InputStream stream) {
166184
@Captor
167185
private ArgumentCaptor<Status> statusCaptor;
168186

169-
private io.grpc.Server server;
170-
private io.grpc.ManagedChannel channel;
187+
private Server server;
188+
private ManagedChannel channel;
171189

172190
private final FakeClock fakeClock = new FakeClock();
173191
private final MethodDescriptor<String, String> method =
@@ -1799,8 +1817,7 @@ public String getAuthority() {
17991817

18001818
@Test
18011819
public void serverMetrics_recordsBaggage() {
1802-
io.opentelemetry.api.metrics.DoubleHistogram mockDurationHistogram = org.mockito.Mockito
1803-
.mock(io.opentelemetry.api.metrics.DoubleHistogram.class);
1820+
DoubleHistogram mockDurationHistogram = mock(DoubleHistogram.class);
18041821
OpenTelemetryMetricsResource mockResource = OpenTelemetryMetricsResource.builder()
18051822
.serverCallDurationCounter(mockDurationHistogram)
18061823
.build();
@@ -1831,47 +1848,44 @@ public void serverMetrics_recordsBaggage() {
18311848
tracer.streamClosed(Status.CANCELLED);
18321849
}
18331850

1834-
org.mockito.ArgumentCaptor<Context> contextCaptor = org.mockito.ArgumentCaptor
1835-
.forClass(Context.class);
1836-
org.mockito.Mockito.verify(mockDurationHistogram).record(
1837-
org.mockito.ArgumentMatchers.anyDouble(),
1838-
org.mockito.ArgumentMatchers.any(),
1851+
ArgumentCaptor<Context> contextCaptor = ArgumentCaptor.forClass(Context.class);
1852+
verify(mockDurationHistogram).record(
1853+
anyDouble(),
1854+
any(),
18391855
contextCaptor.capture());
18401856

18411857
Baggage capturedBaggage = Baggage.fromContext(contextCaptor.getValue());
1842-
org.junit.Assert.assertNotNull("Captured context should have baggage", capturedBaggage);
1843-
org.junit.Assert.assertEquals(
1858+
assertNotNull("Captured context should have baggage", capturedBaggage);
1859+
assertEquals(
18441860
"baggage-val-1", capturedBaggage.getEntryValue("baggage-key-1"));
18451861
}
18461862

18471863
@Test
18481864
public void serverMetrics_recordsBaggage_endToEnd() throws Exception {
1849-
io.opentelemetry.api.metrics.DoubleHistogram mockDurationHistogram = org.mockito.Mockito
1850-
.mock(io.opentelemetry.api.metrics.DoubleHistogram.class);
1865+
DoubleHistogram mockDurationHistogram = mock(DoubleHistogram.class);
18511866
OpenTelemetryMetricsResource mockResource = OpenTelemetryMetricsResource.builder()
18521867
.serverCallDurationCounter(mockDurationHistogram)
18531868
.build();
18541869

1855-
io.opentelemetry.api.OpenTelemetry openTelemetry = io.opentelemetry.sdk.OpenTelemetrySdk
1870+
OpenTelemetry openTelemetry = OpenTelemetrySdk
18561871
.builder()
1857-
.setPropagators(io.opentelemetry.context.propagation.ContextPropagators.create(
1858-
io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator.getInstance()))
1872+
.setPropagators(ContextPropagators.create(
1873+
W3CBaggagePropagator.getInstance()))
18591874
.build();
18601875

18611876
OpenTelemetryMetricsModule module = newOpenTelemetryMetricsModule(mockResource);
18621877
OpenTelemetryTracingModule tracingModule = new OpenTelemetryTracingModule(openTelemetry);
18631878

1864-
String serverName = io.grpc.inprocess.InProcessServerBuilder.generateName();
1865-
io.grpc.inprocess.InProcessServerBuilder serverBuilder = io.grpc.inprocess
1866-
.InProcessServerBuilder
1879+
String serverName = InProcessServerBuilder.generateName();
1880+
InProcessServerBuilder serverBuilder = InProcessServerBuilder
18671881
.forName(serverName).directExecutor();
18681882

18691883
serverBuilder.addStreamTracerFactory(tracingModule.getServerTracerFactory());
18701884
serverBuilder.intercept(tracingModule.getServerSpanPropagationInterceptor());
18711885
serverBuilder.addStreamTracerFactory(module.getServerTracerFactory());
18721886

18731887
serverBuilder.addService(ServerServiceDefinition.builder(
1874-
io.grpc.ServiceDescriptor.newBuilder("package1.service2")
1888+
ServiceDescriptor.newBuilder("package1.service2")
18751889
.addMethod(method)
18761890
.build())
18771891
.addMethod(method, new ServerCallHandler<String, String>() {
@@ -1885,48 +1899,40 @@ public ServerCall.Listener<String> startCall(
18851899
};
18861900
}
18871901
}).build());
1888-
io.grpc.Server server = serverBuilder.build().start();
1902+
grpcCleanup.register(serverBuilder.build().start());
18891903

1890-
io.grpc.inprocess.InProcessChannelBuilder channelBuilder = io.grpc.inprocess
1891-
.InProcessChannelBuilder
1904+
InProcessChannelBuilder channelBuilder = InProcessChannelBuilder
18921905
.forName(serverName).directExecutor();
18931906
channelBuilder.intercept(tracingModule.getClientInterceptor());
18941907
channelBuilder.intercept(module.getClientInterceptor(serverName));
1895-
Channel channel = channelBuilder.intercept(new ClientInterceptor() {
1908+
Channel channel = grpcCleanup.register(channelBuilder.intercept(new ClientInterceptor() {
18961909
@Override
18971910
public <ReqT, RespT> ClientCall<ReqT, RespT> interceptCall(
18981911
MethodDescriptor<ReqT, RespT> method, CallOptions callOptions, Channel next) {
18991912
return next.newCall(method, callOptions);
19001913
}
1901-
}).build();
1914+
}).build());
19021915

19031916
Baggage baggage = Baggage.builder()
19041917
.put("baggage-key-1", "baggage-val-1")
19051918
.build();
19061919

1907-
io.opentelemetry.context.Context otelContext = io.opentelemetry.context.Context.root()
1908-
.with(baggage);
1909-
io.opentelemetry.context.Scope scope = otelContext.makeCurrent();
1920+
Context otelContext = Context.root().with(baggage);
19101921

1911-
try {
1912-
io.grpc.stub.ClientCalls.blockingUnaryCall(channel,
1922+
try (Scope scope = otelContext.makeCurrent()) {
1923+
ClientCalls.blockingUnaryCall(channel,
19131924
method, CallOptions.DEFAULT, "request");
1914-
} finally {
1915-
scope.close();
19161925
}
19171926

1918-
server.shutdown().awaitTermination(5, java.util.concurrent.TimeUnit.SECONDS);
1919-
1920-
org.mockito.ArgumentCaptor<Context> contextCaptor = org.mockito.ArgumentCaptor
1921-
.forClass(Context.class);
1922-
org.mockito.Mockito.verify(mockDurationHistogram).record(
1923-
org.mockito.ArgumentMatchers.anyDouble(),
1924-
org.mockito.ArgumentMatchers.any(),
1927+
ArgumentCaptor<Context> contextCaptor = ArgumentCaptor.forClass(Context.class);
1928+
verify(mockDurationHistogram).record(
1929+
anyDouble(),
1930+
any(),
19251931
contextCaptor.capture());
19261932

19271933
Baggage capturedBaggage = Baggage.fromContext(contextCaptor.getValue());
1928-
org.junit.Assert.assertNotNull("Captured context should have baggage", capturedBaggage);
1929-
org.junit.Assert.assertEquals(
1934+
assertNotNull("Captured context should have baggage", capturedBaggage);
1935+
assertEquals(
19301936
"baggage-val-1", capturedBaggage.getEntryValue("baggage-key-1"));
19311937
}
19321938
}

0 commit comments

Comments
 (0)