Skip to content

Commit 661c941

Browse files
committed
fix test case
1 parent cf78cef commit 661c941

1 file changed

Lines changed: 36 additions & 27 deletions

File tree

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

Lines changed: 36 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@
6565
import io.opentelemetry.api.common.AttributeKey;
6666
import io.opentelemetry.api.metrics.DoubleHistogram;
6767
import io.opentelemetry.api.metrics.Meter;
68+
import io.opentelemetry.context.Context;
69+
import io.opentelemetry.context.propagation.TextMapSetter;
6870
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
6971
import io.opentelemetry.sdk.metrics.data.MetricData;
7072
import io.opentelemetry.sdk.testing.junit4.OpenTelemetryRule;
@@ -1245,7 +1247,8 @@ public void clientLocalityMetrics_present() {
12451247
OpenTelemetryMetricsResource resource = GrpcOpenTelemetry.createMetricInstruments(testMeter,
12461248
enabledMetricsMap, disableDefaultMetrics);
12471249
OpenTelemetryMetricsModule module = new OpenTelemetryMetricsModule(
1248-
fakeClock.getStopwatchSupplier(), resource, Arrays.asList("grpc.lb.locality"), emptyList());
1250+
fakeClock.getStopwatchSupplier(), resource, Arrays.asList("grpc.lb.locality"),
1251+
emptyList(), openTelemetryTesting.getOpenTelemetry().getPropagators());
12491252
OpenTelemetryMetricsModule.CallAttemptsTracerFactory callAttemptsTracerFactory =
12501253
new CallAttemptsTracerFactory(module, target, method.getFullMethodName(), emptyList());
12511254

@@ -1313,7 +1316,8 @@ public void clientLocalityMetrics_missing() {
13131316
OpenTelemetryMetricsResource resource = GrpcOpenTelemetry.createMetricInstruments(testMeter,
13141317
enabledMetricsMap, disableDefaultMetrics);
13151318
OpenTelemetryMetricsModule module = new OpenTelemetryMetricsModule(
1316-
fakeClock.getStopwatchSupplier(), resource, Arrays.asList("grpc.lb.locality"), emptyList());
1319+
fakeClock.getStopwatchSupplier(), resource, Arrays.asList("grpc.lb.locality"),
1320+
emptyList(), openTelemetryTesting.getOpenTelemetry().getPropagators());
13171321
OpenTelemetryMetricsModule.CallAttemptsTracerFactory callAttemptsTracerFactory =
13181322
new CallAttemptsTracerFactory(module, target, method.getFullMethodName(), emptyList());
13191323

@@ -1378,7 +1382,7 @@ public void clientBackendServiceMetrics_present() {
13781382
enabledMetricsMap, disableDefaultMetrics);
13791383
OpenTelemetryMetricsModule module = new OpenTelemetryMetricsModule(
13801384
fakeClock.getStopwatchSupplier(), resource, Arrays.asList("grpc.lb.backend_service"),
1381-
emptyList());
1385+
emptyList(), openTelemetryTesting.getOpenTelemetry().getPropagators());
13821386
OpenTelemetryMetricsModule.CallAttemptsTracerFactory callAttemptsTracerFactory =
13831387
new CallAttemptsTracerFactory(module, target, method.getFullMethodName(), emptyList());
13841388

@@ -1447,7 +1451,7 @@ public void clientBackendServiceMetrics_missing() {
14471451
enabledMetricsMap, disableDefaultMetrics);
14481452
OpenTelemetryMetricsModule module = new OpenTelemetryMetricsModule(
14491453
fakeClock.getStopwatchSupplier(), resource, Arrays.asList("grpc.lb.backend_service"),
1450-
emptyList());
1454+
emptyList(), openTelemetryTesting.getOpenTelemetry().getPropagators());
14511455
OpenTelemetryMetricsModule.CallAttemptsTracerFactory callAttemptsTracerFactory =
14521456
new CallAttemptsTracerFactory(module, target, method.getFullMethodName(), emptyList());
14531457

@@ -1631,37 +1635,39 @@ public void serverBasicMetrics() {
16311635

16321636
@Test
16331637
public void serverBaggagePropagationToMetrics() {
1634-
// 1. Create module and tracer factory using the mock resource
1635-
OpenTelemetryMetricsModule module = new OpenTelemetryMetricsModule(
1636-
fakeClock.getStopwatchSupplier(), resource, emptyList(), emptyList());
1637-
ServerStreamTracer.Factory tracerFactory = module.getServerTracerFactory();
1638-
ServerStreamTracer tracer =
1639-
tracerFactory.newServerStreamTracer(method.getFullMethodName(), new Metadata());
1640-
1641-
// 2. Define the test baggage and gRPC context
1638+
// 1. Define the test baggage
16421639
Baggage testBaggage = Baggage.builder()
16431640
.put("user-id", "67")
16441641
.build();
16451642

1646-
// This simulates the context that the Tracing module would have created
1647-
io.grpc.Context grpcContext = io.grpc.Context.current()
1648-
.withValue(OpenTelemetryConstants.BAGGAGE_KEY, testBaggage);
1643+
// 2. Inject baggage into headers
1644+
Metadata headers = new Metadata();
1645+
openTelemetryTesting.getOpenTelemetry().getPropagators().getTextMapPropagator()
1646+
.inject(Context.root().with(testBaggage), headers, new TextMapSetter<Metadata>() {
1647+
@Override
1648+
public void set(Metadata carrier, String key, String value) {
1649+
carrier.put(Metadata.Key.of(key, Metadata.ASCII_STRING_MARSHALLER), value);
1650+
}
1651+
});
1652+
1653+
// 3. Create module and tracer factory using the mock resource
1654+
OpenTelemetryMetricsModule module = new OpenTelemetryMetricsModule(
1655+
fakeClock.getStopwatchSupplier(), resource, emptyList(), emptyList(),
1656+
openTelemetryTesting.getOpenTelemetry().getPropagators());
1657+
ServerStreamTracer.Factory tracerFactory = module.getServerTracerFactory();
1658+
ServerStreamTracer tracer = tracerFactory.newServerStreamTracer(method.getFullMethodName(),
1659+
headers);
16491660

1650-
// 3. Attach the gRPC context, trigger metric recording, and detach
1651-
io.grpc.Context previousContext = grpcContext.attach();
1652-
try {
1653-
tracer.streamClosed(Status.OK);
1654-
} finally {
1655-
grpcContext.detach(previousContext);
1656-
}
1661+
// 4. Trigger metric recording
1662+
tracer.streamClosed(Status.OK);
16571663

1658-
// 4. Verify the record call and capture the OTel Context
1664+
// 5. Verify the record call and capture the OTel Context
16591665
verify(mockServerCallDurationHistogram).record(
16601666
anyDouble(),
16611667
any(io.opentelemetry.api.common.Attributes.class),
16621668
contextCaptor.capture());
16631669

1664-
// 5. Assert on the captured OTel Context
1670+
// 6. Assert on the captured OTel Context
16651671
io.opentelemetry.context.Context capturedOtelContext = contextCaptor.getValue();
16661672
Baggage capturedBaggage = Baggage.fromContext(capturedOtelContext);
16671673

@@ -1802,13 +1808,15 @@ public void targetAttributeFilter_rejectsTarget_mapsToOther() {
18021808
private OpenTelemetryMetricsModule newOpenTelemetryMetricsModule(
18031809
OpenTelemetryMetricsResource resource) {
18041810
return new OpenTelemetryMetricsModule(
1805-
fakeClock.getStopwatchSupplier(), resource, emptyList(), emptyList());
1811+
fakeClock.getStopwatchSupplier(), resource, emptyList(), emptyList(),
1812+
openTelemetryTesting.getOpenTelemetry().getPropagators());
18061813
}
18071814

18081815
private OpenTelemetryMetricsModule newOpenTelemetryMetricsModule(
18091816
OpenTelemetryMetricsResource resource, TargetFilter filter) {
18101817
return new OpenTelemetryMetricsModule(
1811-
fakeClock.getStopwatchSupplier(), resource, emptyList(), emptyList(), filter);
1818+
fakeClock.getStopwatchSupplier(), resource, emptyList(), emptyList(),
1819+
openTelemetryTesting.getOpenTelemetry().getPropagators(), filter);
18121820
}
18131821

18141822
static class CallInfo<ReqT, RespT> extends ServerCallInfo<ReqT, RespT> {
@@ -1848,7 +1856,8 @@ public void serverBaggagePropagation_EndToEnd() throws Exception {
18481856
OpenTelemetry otel = openTelemetryTesting.getOpenTelemetry();
18491857
OpenTelemetryTracingModule tracingModule = new OpenTelemetryTracingModule(otel);
18501858
OpenTelemetryMetricsModule metricsModule = new OpenTelemetryMetricsModule(
1851-
fakeClock.getStopwatchSupplier(), resource, emptyList(), emptyList());
1859+
fakeClock.getStopwatchSupplier(), resource, emptyList(), emptyList(),
1860+
otel.getPropagators());
18521861

18531862
// 2. Create Server with *both* tracer factories
18541863
server = InProcessServerBuilder.forName(serverName)

0 commit comments

Comments
 (0)