Skip to content

Commit 0f60636

Browse files
committed
Fix RPC metrics tests for stable semconv
1 parent 8afaf2c commit 0f60636

5 files changed

Lines changed: 139 additions & 126 deletions

File tree

instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/semconv/rpc/RpcClientMetricsTest.java

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
package io.opentelemetry.instrumentation.api.incubator.semconv.rpc;
77

8+
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitOldRpcSemconv;
9+
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitStableRpcSemconv;
810
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
911
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
1012
import static io.opentelemetry.semconv.NetworkAttributes.NETWORK_TRANSPORT;
@@ -16,6 +18,7 @@
1618
import static io.opentelemetry.semconv.incubating.RpcIncubatingAttributes.RPC_SYSTEM;
1719
import static java.util.concurrent.TimeUnit.MILLISECONDS;
1820

21+
import io.opentelemetry.api.common.AttributeKey;
1922
import io.opentelemetry.api.common.Attributes;
2023
import io.opentelemetry.api.trace.Span;
2124
import io.opentelemetry.api.trace.SpanContext;
@@ -40,16 +43,16 @@ void collectsMetrics() {
4043

4144
Attributes requestAttributes1 =
4245
Attributes.builder()
43-
.put(RPC_SYSTEM, "grpc")
44-
.put(RPC_SERVICE, "myservice.EchoService")
46+
.put(maybeStable(RPC_SYSTEM), "grpc")
47+
.put(RPC_SERVICE, emitOldRpcSemconv() ? "myservice.EchoService" : null)
4548
.put(RPC_METHOD, "exampleMethod")
4649
.put(RpcSizeAttributesExtractor.RPC_REQUEST_SIZE, 10)
4750
.build();
4851

4952
Attributes requestAttributes2 =
5053
Attributes.builder()
51-
.put(RPC_SYSTEM, "grpc")
52-
.put(RPC_SERVICE, "myservice.EchoService")
54+
.put(maybeStable(RPC_SYSTEM), "grpc")
55+
.put(RPC_SERVICE, emitOldRpcSemconv() ? "myservice.EchoService" : null)
5356
.put(RPC_METHOD, "exampleMethod")
5457
.build();
5558

@@ -99,8 +102,12 @@ void collectsMetrics() {
99102
point
100103
.hasSum(20 /* bytes */)
101104
.hasAttributesSatisfyingExactly(
102-
equalTo(RPC_SYSTEM, "grpc"),
103-
equalTo(RPC_SERVICE, "myservice.EchoService"),
105+
equalTo(maybeStable(RPC_SYSTEM), "grpc"),
106+
equalTo(
107+
RPC_SERVICE,
108+
emitOldRpcSemconv()
109+
? "myservice.EchoService"
110+
: null),
104111
equalTo(RPC_METHOD, "exampleMethod"),
105112
equalTo(SERVER_ADDRESS, "example.com"),
106113
equalTo(SERVER_PORT, 8080),
@@ -123,8 +130,12 @@ void collectsMetrics() {
123130
point
124131
.hasSum(10 /* bytes */)
125132
.hasAttributesSatisfyingExactly(
126-
equalTo(RPC_SYSTEM, "grpc"),
127-
equalTo(RPC_SERVICE, "myservice.EchoService"),
133+
equalTo(maybeStable(RPC_SYSTEM), "grpc"),
134+
equalTo(
135+
RPC_SERVICE,
136+
emitOldRpcSemconv()
137+
? "myservice.EchoService"
138+
: null),
128139
equalTo(RPC_METHOD, "exampleMethod"),
129140
equalTo(SERVER_ADDRESS, "example.com"),
130141
equalTo(SERVER_PORT, 8080),
@@ -146,8 +157,12 @@ void collectsMetrics() {
146157
point
147158
.hasSum(150 /* millis */)
148159
.hasAttributesSatisfyingExactly(
149-
equalTo(RPC_SYSTEM, "grpc"),
150-
equalTo(RPC_SERVICE, "myservice.EchoService"),
160+
equalTo(maybeStable(RPC_SYSTEM), "grpc"),
161+
equalTo(
162+
RPC_SERVICE,
163+
emitOldRpcSemconv()
164+
? "myservice.EchoService"
165+
: null),
151166
equalTo(RPC_METHOD, "exampleMethod"),
152167
equalTo(SERVER_ADDRESS, "example.com"),
153168
equalTo(SERVER_PORT, 8080),
@@ -174,13 +189,26 @@ void collectsMetrics() {
174189
point
175190
.hasSum(150 /* millis */)
176191
.hasAttributesSatisfyingExactly(
177-
equalTo(RPC_SYSTEM, "grpc"),
178-
equalTo(RPC_SERVICE, "myservice.EchoService"),
192+
equalTo(maybeStable(RPC_SYSTEM), "grpc"),
193+
equalTo(
194+
RPC_SERVICE,
195+
emitOldRpcSemconv()
196+
? "myservice.EchoService"
197+
: null),
179198
equalTo(RPC_METHOD, "exampleMethod"),
180199
equalTo(SERVER_PORT, 8080),
181200
equalTo(NETWORK_TRANSPORT, "tcp")))));
182201
}
183202

203+
// not testing rpc/dup
204+
@SuppressWarnings("deprecation")
205+
private static AttributeKey<String> maybeStable(AttributeKey<String> oldKey) {
206+
if (emitStableRpcSemconv() && RPC_SYSTEM.equals(oldKey)) {
207+
return RpcCommonAttributesExtractor.RPC_SYSTEM_NAME;
208+
}
209+
return oldKey;
210+
}
211+
184212
private static long nanos(int millis) {
185213
return MILLISECONDS.toNanos(millis);
186214
}

instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/semconv/rpc/RpcServerMetricsTest.java

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
package io.opentelemetry.instrumentation.api.incubator.semconv.rpc;
77

8+
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitOldRpcSemconv;
9+
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitStableRpcSemconv;
810
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
911
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
1012
import static io.opentelemetry.semconv.NetworkAttributes.NETWORK_LOCAL_ADDRESS;
@@ -17,6 +19,7 @@
1719
import static io.opentelemetry.semconv.incubating.RpcIncubatingAttributes.RPC_SYSTEM;
1820
import static java.util.concurrent.TimeUnit.MILLISECONDS;
1921

22+
import io.opentelemetry.api.common.AttributeKey;
2023
import io.opentelemetry.api.common.Attributes;
2124
import io.opentelemetry.api.trace.Span;
2225
import io.opentelemetry.api.trace.SpanContext;
@@ -41,16 +44,16 @@ void collectsMetrics() {
4144

4245
Attributes requestAttributes1 =
4346
Attributes.builder()
44-
.put(RPC_SYSTEM, "grpc")
45-
.put(RPC_SERVICE, "myservice.EchoService")
47+
.put(maybeStable(RPC_SYSTEM), "grpc")
48+
.put(RPC_SERVICE, emitOldRpcSemconv() ? "myservice.EchoService" : null)
4649
.put(RPC_METHOD, "exampleMethod")
4750
.put(RpcSizeAttributesExtractor.RPC_REQUEST_SIZE, 10)
4851
.build();
4952

5053
Attributes requestAttributes2 =
5154
Attributes.builder()
52-
.put(RPC_SYSTEM, "grpc")
53-
.put(RPC_SERVICE, "myservice.EchoService")
55+
.put(maybeStable(RPC_SYSTEM), "grpc")
56+
.put(RPC_SERVICE, emitOldRpcSemconv() ? "myservice.EchoService" : null)
5457
.put(RPC_METHOD, "exampleMethod")
5558
.build();
5659

@@ -104,8 +107,12 @@ void collectsMetrics() {
104107
point
105108
.hasSum(150 /* millis */)
106109
.hasAttributesSatisfyingExactly(
107-
equalTo(RPC_SYSTEM, "grpc"),
108-
equalTo(RPC_SERVICE, "myservice.EchoService"),
110+
equalTo(maybeStable(RPC_SYSTEM), "grpc"),
111+
equalTo(
112+
RPC_SERVICE,
113+
emitOldRpcSemconv()
114+
? "myservice.EchoService"
115+
: null),
109116
equalTo(RPC_METHOD, "exampleMethod"),
110117
equalTo(SERVER_ADDRESS, "example.com"),
111118
equalTo(SERVER_PORT, 8080),
@@ -128,8 +135,12 @@ void collectsMetrics() {
128135
point
129136
.hasSum(20 /* bytes */)
130137
.hasAttributesSatisfyingExactly(
131-
equalTo(RPC_SYSTEM, "grpc"),
132-
equalTo(RPC_SERVICE, "myservice.EchoService"),
138+
equalTo(maybeStable(RPC_SYSTEM), "grpc"),
139+
equalTo(
140+
RPC_SERVICE,
141+
emitOldRpcSemconv()
142+
? "myservice.EchoService"
143+
: null),
133144
equalTo(RPC_METHOD, "exampleMethod"),
134145
equalTo(SERVER_ADDRESS, "example.com"),
135146
equalTo(SERVER_PORT, 8080),
@@ -152,8 +163,12 @@ void collectsMetrics() {
152163
point
153164
.hasSum(10 /* bytes */)
154165
.hasAttributesSatisfyingExactly(
155-
equalTo(RPC_SYSTEM, "grpc"),
156-
equalTo(RPC_SERVICE, "myservice.EchoService"),
166+
equalTo(maybeStable(RPC_SYSTEM), "grpc"),
167+
equalTo(
168+
RPC_SERVICE,
169+
emitOldRpcSemconv()
170+
? "myservice.EchoService"
171+
: null),
157172
equalTo(RPC_METHOD, "exampleMethod"),
158173
equalTo(SERVER_ADDRESS, "example.com"),
159174
equalTo(SERVER_PORT, 8080),
@@ -180,13 +195,26 @@ void collectsMetrics() {
180195
point
181196
.hasSum(150 /* millis */)
182197
.hasAttributesSatisfyingExactly(
183-
equalTo(RPC_SYSTEM, "grpc"),
184-
equalTo(RPC_SERVICE, "myservice.EchoService"),
198+
equalTo(maybeStable(RPC_SYSTEM), "grpc"),
199+
equalTo(
200+
RPC_SERVICE,
201+
emitOldRpcSemconv()
202+
? "myservice.EchoService"
203+
: null),
185204
equalTo(RPC_METHOD, "exampleMethod"),
186205
equalTo(SERVER_PORT, 8080),
187206
equalTo(NETWORK_TRANSPORT, "tcp")))));
188207
}
189208

209+
// not testing rpc/dup
210+
@SuppressWarnings("deprecation")
211+
private static AttributeKey<String> maybeStable(AttributeKey<String> oldKey) {
212+
if (emitStableRpcSemconv() && RPC_SYSTEM.equals(oldKey)) {
213+
return RpcCommonAttributesExtractor.RPC_SYSTEM_NAME;
214+
}
215+
return oldKey;
216+
}
217+
190218
private static long nanos(int millis) {
191219
return MILLISECONDS.toNanos(millis);
192220
}

instrumentation/armeria/armeria-grpc-1.14/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/armeria/grpc/v1_14/ArmeriaGrpcTest.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,7 @@ void grpcInstrumentation() {
8383
.hasKind(SpanKind.CLIENT)
8484
.hasParent(trace.getSpan(0))
8585
.hasAttributesSatisfyingExactly(
86-
equalTo(RPC_SYSTEM, emitOldRpcSemconv() ? "grpc" : null),
87-
equalTo(RPC_SYSTEM_NAME, emitStableRpcSemconv() ? "grpc" : null),
86+
equalTo(maybeStable(RPC_SYSTEM), "grpc"),
8887
equalTo(RPC_SERVICE, emitOldRpcSemconv() ? "example.Greeter" : null),
8988
equalTo(RPC_METHOD, emitOldRpcSemconv() ? "SayHello" : null),
9089
equalTo(RPC_GRPC_STATUS_CODE, (long) Status.Code.OK.value()),
@@ -107,8 +106,7 @@ void grpcInstrumentation() {
107106
.hasKind(SpanKind.SERVER)
108107
.hasParent(trace.getSpan(1))
109108
.hasAttributesSatisfyingExactly(
110-
equalTo(RPC_SYSTEM, emitOldRpcSemconv() ? "grpc" : null),
111-
equalTo(RPC_SYSTEM_NAME, emitStableRpcSemconv() ? "grpc" : null),
109+
equalTo(maybeStable(RPC_SYSTEM), "grpc"),
112110
equalTo(RPC_SERVICE, emitOldRpcSemconv() ? "example.Greeter" : null),
113111
equalTo(RPC_METHOD, emitOldRpcSemconv() ? "SayHello" : null),
114112
equalTo(RPC_GRPC_STATUS_CODE, (long) Status.Code.OK.value()),
@@ -126,4 +124,14 @@ void grpcInstrumentation() {
126124
.hasAttributesSatisfyingExactly(
127125
equalTo(MESSAGE_TYPE, "SENT"), equalTo(MESSAGE_ID, 1L)))));
128126
}
127+
128+
// not testing rpc/dup
129+
@SuppressWarnings("deprecation")
130+
private static io.opentelemetry.api.common.AttributeKey<String> maybeStable(
131+
io.opentelemetry.api.common.AttributeKey<String> oldKey) {
132+
if (emitStableRpcSemconv() && RPC_SYSTEM.equals(oldKey)) {
133+
return RPC_SYSTEM_NAME;
134+
}
135+
return oldKey;
136+
}
129137
}

instrumentation/grpc-1.6/testing/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/AbstractGrpcStreamingTest.java

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -248,9 +248,7 @@ public void onCompleted() {
248248
experimentalSatisfies(
249249
GRPC_SENT_MESSAGE_COUNT,
250250
v -> assertThat(v).isGreaterThan(0)),
251-
equalTo(RPC_SYSTEM, emitOldRpcSemconv() ? "grpc" : null),
252-
equalTo(
253-
RPC_SYSTEM_NAME, emitStableRpcSemconv() ? "grpc" : null),
251+
equalTo(maybeStable(RPC_SYSTEM), "grpc"),
254252
equalTo(
255253
RPC_SERVICE,
256254
emitOldRpcSemconv() ? "example.Greeter" : null),
@@ -273,8 +271,7 @@ RPC_METHOD, emitOldRpcSemconv() ? "Conversation" : null),
273271
v -> assertThat(v).isGreaterThan(0)),
274272
experimentalSatisfies(
275273
GRPC_SENT_MESSAGE_COUNT, v -> assertThat(v).isGreaterThan(0)),
276-
equalTo(RPC_SYSTEM, emitOldRpcSemconv() ? "grpc" : null),
277-
equalTo(RPC_SYSTEM_NAME, emitStableRpcSemconv() ? "grpc" : null),
274+
equalTo(maybeStable(RPC_SYSTEM), "grpc"),
278275
equalTo(
279276
RPC_SERVICE, emitOldRpcSemconv() ? "example.Greeter" : null),
280277
equalTo(RPC_METHOD, emitOldRpcSemconv() ? "Conversation" : null),
@@ -318,12 +315,7 @@ RPC_SERVICE, emitOldRpcSemconv() ? "example.Greeter" : null),
318315
equalTo(
319316
RPC_SERVICE,
320317
emitOldRpcSemconv() ? "example.Greeter" : null),
321-
equalTo(
322-
RPC_SYSTEM,
323-
emitOldRpcSemconv() ? "grpc" : null),
324-
equalTo(
325-
RPC_SYSTEM_NAME,
326-
emitStableRpcSemconv() ? "grpc" : null),
318+
equalTo(maybeStable(RPC_SYSTEM), "grpc"),
327319
equalTo(
328320
RPC_GRPC_STATUS_CODE,
329321
(long) Status.Code.OK.value()))))));
@@ -349,12 +341,7 @@ RPC_SERVICE, emitOldRpcSemconv() ? "example.Greeter" : null),
349341
equalTo(
350342
RPC_SERVICE,
351343
emitOldRpcSemconv() ? "example.Greeter" : null),
352-
equalTo(
353-
RPC_SYSTEM,
354-
emitOldRpcSemconv() ? "grpc" : null),
355-
equalTo(
356-
RPC_SYSTEM_NAME,
357-
emitStableRpcSemconv() ? "grpc" : null),
344+
equalTo(maybeStable(RPC_SYSTEM), "grpc"),
358345
equalTo(
359346
RPC_GRPC_STATUS_CODE,
360347
(long) Status.Code.OK.value()))))));
@@ -473,4 +460,14 @@ private static void usePlainText(ManagedChannelBuilder<?> channelBuilder) throws
473460
private static Consumer<EventData>[] toArray(List<Consumer<EventData>> list) {
474461
return list.toArray(new Consumer[0]);
475462
}
463+
464+
// not testing rpc/dup
465+
@SuppressWarnings("deprecation")
466+
private static io.opentelemetry.api.common.AttributeKey<String> maybeStable(
467+
io.opentelemetry.api.common.AttributeKey<String> oldKey) {
468+
if (emitStableRpcSemconv() && RPC_SYSTEM.equals(oldKey)) {
469+
return RPC_SYSTEM_NAME;
470+
}
471+
return oldKey;
472+
}
476473
}

0 commit comments

Comments
 (0)