Skip to content

Commit 448d680

Browse files
authored
Support new semantice conventions. (#972)
*Description of changes:* This PR adding support of new semantic conventions in latest version from otel upstream: `http.url` -> `url.full` `http.method` -> `http.request.method` `http.status_code` -> `http.response.status_code` `net.peer.name` -> `server.address` `net.peer.port` -> `server.port` Testing are done for both old upstream ve <img width="749" alt="Screenshot 2024-12-10 at 3 42 53 PM" src="https://github.com/user-attachments/assets/a4125a78-82fa-45a6-9006-44165d8ac34f"> rsion v1.32.1 and new upstream version v2.10.0. By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent 12f770e commit 448d680

File tree

5 files changed

+142
-19
lines changed

5 files changed

+142
-19
lines changed

awsagentprovider/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ base {
2424

2525
dependencies {
2626
compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-extension-api")
27-
compileOnly("io.opentelemetry.semconv:opentelemetry-semconv")
28-
testImplementation("io.opentelemetry.semconv:opentelemetry-semconv")
27+
compileOnly("io.opentelemetry.semconv:opentelemetry-semconv:1.28.0-alpha")
28+
testImplementation("io.opentelemetry.semconv:opentelemetry-semconv:1.28.0-alpha")
2929
compileOnly("com.google.errorprone:error_prone_annotations:2.19.1")
3030
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
3131
compileOnly("org.slf4j:slf4j-api")

awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsMetricAttributeGenerator.java

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,14 @@
2525
import static io.opentelemetry.semconv.SemanticAttributes.FAAS_TRIGGER;
2626
import static io.opentelemetry.semconv.SemanticAttributes.GRAPHQL_OPERATION_TYPE;
2727
import static io.opentelemetry.semconv.SemanticAttributes.HTTP_METHOD;
28+
import static io.opentelemetry.semconv.SemanticAttributes.HTTP_REQUEST_METHOD;
29+
import static io.opentelemetry.semconv.SemanticAttributes.HTTP_RESPONSE_STATUS_CODE;
2830
import static io.opentelemetry.semconv.SemanticAttributes.HTTP_STATUS_CODE;
2931
import static io.opentelemetry.semconv.SemanticAttributes.HTTP_URL;
3032
import static io.opentelemetry.semconv.SemanticAttributes.MESSAGING_OPERATION;
3133
import static io.opentelemetry.semconv.SemanticAttributes.MESSAGING_SYSTEM;
34+
import static io.opentelemetry.semconv.SemanticAttributes.NETWORK_PEER_ADDRESS;
35+
import static io.opentelemetry.semconv.SemanticAttributes.NETWORK_PEER_PORT;
3236
import static io.opentelemetry.semconv.SemanticAttributes.NET_PEER_NAME;
3337
import static io.opentelemetry.semconv.SemanticAttributes.NET_PEER_PORT;
3438
import static io.opentelemetry.semconv.SemanticAttributes.NET_SOCK_PEER_ADDR;
@@ -40,6 +44,7 @@
4044
import static io.opentelemetry.semconv.SemanticAttributes.SERVER_PORT;
4145
import static io.opentelemetry.semconv.SemanticAttributes.SERVER_SOCKET_ADDRESS;
4246
import static io.opentelemetry.semconv.SemanticAttributes.SERVER_SOCKET_PORT;
47+
import static io.opentelemetry.semconv.SemanticAttributes.URL_FULL;
4348
import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_AGENT_ID;
4449
import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_BUCKET_NAME;
4550
import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_CLOUDFORMATION_PRIMARY_IDENTIFIER;
@@ -292,8 +297,11 @@ private static void setRemoteServiceAndOperation(SpanData span, AttributesBuilde
292297
*/
293298
private static String generateRemoteOperation(SpanData span) {
294299
String remoteOperation = UNKNOWN_REMOTE_OPERATION;
295-
if (isKeyPresent(span, HTTP_URL)) {
296-
String httpUrl = span.getAttributes().get(HTTP_URL);
300+
if (isKeyPresent(span, URL_FULL) || isKeyPresent(span, HTTP_URL)) {
301+
String httpUrl =
302+
isKeyPresent(span, URL_FULL)
303+
? span.getAttributes().get(URL_FULL)
304+
: span.getAttributes().get(HTTP_URL);
297305
try {
298306
URL url;
299307
if (httpUrl != null) {
@@ -304,8 +312,11 @@ private static String generateRemoteOperation(SpanData span) {
304312
logger.log(Level.FINEST, "invalid http.url attribute: ", httpUrl);
305313
}
306314
}
307-
if (isKeyPresent(span, HTTP_METHOD)) {
308-
String httpMethod = span.getAttributes().get(HTTP_METHOD);
315+
if (isKeyPresent(span, HTTP_REQUEST_METHOD) || isKeyPresent(span, HTTP_METHOD)) {
316+
String httpMethod =
317+
isKeyPresent(span, HTTP_REQUEST_METHOD)
318+
? span.getAttributes().get(HTTP_REQUEST_METHOD)
319+
: span.getAttributes().get(HTTP_METHOD);
309320
remoteOperation = httpMethod + " " + remoteOperation;
310321
}
311322
if (remoteOperation.equals(UNKNOWN_REMOTE_OPERATION)) {
@@ -316,20 +327,35 @@ private static String generateRemoteOperation(SpanData span) {
316327

317328
private static String generateRemoteService(SpanData span) {
318329
String remoteService = UNKNOWN_REMOTE_SERVICE;
319-
if (isKeyPresent(span, NET_PEER_NAME)) {
330+
if (isKeyPresent(span, SERVER_ADDRESS)) {
331+
remoteService = getRemoteService(span, SERVER_ADDRESS);
332+
if (isKeyPresent(span, SERVER_PORT)) {
333+
Long port = span.getAttributes().get(SERVER_PORT);
334+
remoteService += ":" + port;
335+
}
336+
} else if (isKeyPresent(span, NET_PEER_NAME)) {
320337
remoteService = getRemoteService(span, NET_PEER_NAME);
321338
if (isKeyPresent(span, NET_PEER_PORT)) {
322339
Long port = span.getAttributes().get(NET_PEER_PORT);
323340
remoteService += ":" + port;
324341
}
342+
} else if (isKeyPresent(span, NETWORK_PEER_ADDRESS)) {
343+
remoteService = getRemoteService(span, NETWORK_PEER_ADDRESS);
344+
if (isKeyPresent(span, NETWORK_PEER_PORT)) {
345+
Long port = span.getAttributes().get(NETWORK_PEER_PORT);
346+
remoteService += ":" + port;
347+
}
325348
} else if (isKeyPresent(span, NET_SOCK_PEER_ADDR)) {
326349
remoteService = getRemoteService(span, NET_SOCK_PEER_ADDR);
327350
if (isKeyPresent(span, NET_SOCK_PEER_PORT)) {
328351
Long port = span.getAttributes().get(NET_SOCK_PEER_PORT);
329352
remoteService += ":" + port;
330353
}
331-
} else if (isKeyPresent(span, HTTP_URL)) {
332-
String httpUrl = span.getAttributes().get(HTTP_URL);
354+
} else if (isKeyPresent(span, URL_FULL) || isKeyPresent(span, HTTP_URL)) {
355+
String httpUrl =
356+
isKeyPresent(span, URL_FULL)
357+
? span.getAttributes().get(URL_FULL)
358+
: span.getAttributes().get(HTTP_URL);
333359
try {
334360
URL url = new URL(httpUrl);
335361
if (!url.getHost().isEmpty()) {
@@ -633,6 +659,12 @@ private static void setHttpStatus(SpanData span, AttributesBuilder builder) {
633659
return;
634660
}
635661

662+
if (isKeyPresent(span, HTTP_RESPONSE_STATUS_CODE)) {
663+
Long statusCode = span.getAttributes().get(HTTP_RESPONSE_STATUS_CODE);
664+
builder.put(HTTP_STATUS_CODE, statusCode);
665+
return;
666+
}
667+
636668
Long statusCode = getAwsStatusCode(span);
637669
if (statusCode != null) {
638670
builder.put(HTTP_STATUS_CODE, statusCode);

awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanMetricsProcessor.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515

1616
package software.amazon.opentelemetry.javaagent.providers;
1717

18+
import static io.opentelemetry.semconv.SemanticAttributes.HTTP_RESPONSE_STATUS_CODE;
1819
import static io.opentelemetry.semconv.SemanticAttributes.HTTP_STATUS_CODE;
20+
import static software.amazon.opentelemetry.javaagent.providers.AwsSpanProcessingUtil.isKeyPresent;
1921

2022
import io.opentelemetry.api.common.Attributes;
2123
import io.opentelemetry.api.metrics.DoubleHistogram;
@@ -129,7 +131,12 @@ public boolean isEndRequired() {
129131
// possible except for the throttle
130132
// https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/awsxrayexporter/internal/translator/cause.go#L121-L160
131133
private void recordErrorOrFault(SpanData spanData, Attributes attributes) {
132-
Long httpStatusCode = spanData.getAttributes().get(HTTP_STATUS_CODE);
134+
Long httpStatusCode = null;
135+
if (isKeyPresent(spanData, HTTP_RESPONSE_STATUS_CODE)) {
136+
httpStatusCode = spanData.getAttributes().get(HTTP_RESPONSE_STATUS_CODE);
137+
} else if (isKeyPresent(spanData, HTTP_STATUS_CODE)) {
138+
httpStatusCode = spanData.getAttributes().get(HTTP_STATUS_CODE);
139+
}
133140
StatusCode statusCode = spanData.getStatus().getStatusCode();
134141

135142
if (httpStatusCode == null) {

awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanProcessingUtil.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@
1919
import static io.opentelemetry.semconv.SemanticAttributes.DB_STATEMENT;
2020
import static io.opentelemetry.semconv.SemanticAttributes.DB_SYSTEM;
2121
import static io.opentelemetry.semconv.SemanticAttributes.HTTP_METHOD;
22+
import static io.opentelemetry.semconv.SemanticAttributes.HTTP_REQUEST_METHOD;
2223
import static io.opentelemetry.semconv.SemanticAttributes.HTTP_TARGET;
2324
import static io.opentelemetry.semconv.SemanticAttributes.MESSAGING_OPERATION;
2425
import static io.opentelemetry.semconv.SemanticAttributes.MessagingOperationValues.PROCESS;
2526
import static io.opentelemetry.semconv.SemanticAttributes.RPC_SYSTEM;
27+
import static io.opentelemetry.semconv.SemanticAttributes.URL_PATH;
2628
import static software.amazon.opentelemetry.javaagent.providers.AwsApplicationSignalsCustomizerProvider.AWS_LAMBDA_FUNCTION_NAME_CONFIG;
2729
import static software.amazon.opentelemetry.javaagent.providers.AwsApplicationSignalsCustomizerProvider.isLambdaEnvironment;
2830
import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_LOCAL_OPERATION;
@@ -200,7 +202,10 @@ private static boolean isValidOperation(SpanData span, String operation) {
200202
if (operation == null || operation.equals(UNKNOWN_OPERATION)) {
201203
return false;
202204
}
203-
if (isKeyPresent(span, HTTP_METHOD)) {
205+
if (isKeyPresent(span, HTTP_REQUEST_METHOD)) {
206+
String httpMethod = span.getAttributes().get(HTTP_REQUEST_METHOD);
207+
return !operation.equals(httpMethod);
208+
} else if (isKeyPresent(span, HTTP_METHOD)) {
204209
String httpMethod = span.getAttributes().get(HTTP_METHOD);
205210
return !operation.equals(httpMethod);
206211
}
@@ -213,15 +218,21 @@ private static boolean isValidOperation(SpanData span, String operation) {
213218
*/
214219
private static String generateIngressOperation(SpanData span) {
215220
String operation = UNKNOWN_OPERATION;
216-
if (isKeyPresent(span, HTTP_TARGET)) {
217-
String httpTarget = span.getAttributes().get(HTTP_TARGET);
221+
if (isKeyPresent(span, URL_PATH) || isKeyPresent(span, HTTP_TARGET)) {
222+
String httpTarget =
223+
isKeyPresent(span, URL_PATH)
224+
? span.getAttributes().get(URL_PATH)
225+
: span.getAttributes().get(HTTP_TARGET);
218226
// get the first part from API path string as operation value
219227
// the more levels/parts we get from API path the higher chance for getting high cardinality
220228
// data
221229
if (httpTarget != null) {
222230
operation = extractAPIPathValue(httpTarget);
223-
if (isKeyPresent(span, HTTP_METHOD)) {
224-
String httpMethod = span.getAttributes().get(HTTP_METHOD);
231+
if (isKeyPresent(span, HTTP_REQUEST_METHOD) || isKeyPresent(span, HTTP_METHOD)) {
232+
String httpMethod =
233+
isKeyPresent(span, HTTP_REQUEST_METHOD)
234+
? span.getAttributes().get(HTTP_REQUEST_METHOD)
235+
: span.getAttributes().get(HTTP_METHOD);
225236
if (httpMethod != null) {
226237
operation = httpMethod + " " + operation;
227238
}

awsagentprovider/src/test/java/software/amazon/opentelemetry/javaagent/providers/AwsMetricAttributeGeneratorTest.java

Lines changed: 77 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -374,23 +374,25 @@ public void testServerSpanWithNullSpanName() {
374374
public void testServerSpanWithSpanNameAsHttpMethod() {
375375
updateResourceWithServiceName();
376376
when(spanDataMock.getName()).thenReturn("GET");
377-
mockAttribute(HTTP_METHOD, "GET");
378-
379377
Attributes expectedAttributes =
380378
Attributes.of(
381379
AWS_SPAN_KIND, SpanKind.SERVER.name(),
382380
AWS_LOCAL_SERVICE, SERVICE_NAME_VALUE,
383381
AWS_LOCAL_OPERATION, UNKNOWN_OPERATION);
382+
// Validate the span with http.method.
383+
mockAttribute(HTTP_METHOD, "GET");
384384
validateAttributesProducedForNonLocalRootSpanOfKind(expectedAttributes, SpanKind.SERVER);
385385
mockAttribute(HTTP_METHOD, null);
386+
// Validate the span with http.request.method.
387+
mockAttribute(HTTP_REQUEST_METHOD, "GET");
388+
validateAttributesProducedForNonLocalRootSpanOfKind(expectedAttributes, SpanKind.SERVER);
389+
mockAttribute(HTTP_REQUEST_METHOD, null);
386390
}
387391

388392
@Test
389393
public void testServerSpanWithSpanNameWithHttpTarget() {
390394
updateResourceWithServiceName();
391395
when(spanDataMock.getName()).thenReturn("POST");
392-
mockAttribute(HTTP_METHOD, "POST");
393-
mockAttribute(HTTP_TARGET, "/payment/123");
394396

395397
Attributes expectedAttributes =
396398
Attributes.of(
@@ -400,9 +402,18 @@ public void testServerSpanWithSpanNameWithHttpTarget() {
400402
SERVICE_NAME_VALUE,
401403
AWS_LOCAL_OPERATION,
402404
"POST /payment");
405+
// Validate the span with http.method and http.target.
406+
mockAttribute(HTTP_METHOD, "POST");
407+
mockAttribute(HTTP_TARGET, "/payment/123");
403408
validateAttributesProducedForNonLocalRootSpanOfKind(expectedAttributes, SpanKind.SERVER);
404409
mockAttribute(HTTP_METHOD, null);
405410
mockAttribute(HTTP_TARGET, null);
411+
// Validate the span with http.request.method and url.path.
412+
mockAttribute(HTTP_REQUEST_METHOD, "POST");
413+
mockAttribute(URL_PATH, "/payment/123");
414+
validateAttributesProducedForNonLocalRootSpanOfKind(expectedAttributes, SpanKind.SERVER);
415+
mockAttribute(HTTP_REQUEST_METHOD, null);
416+
mockAttribute(URL_PATH, null);
406417
}
407418

408419
@Test
@@ -507,18 +518,35 @@ public void testRemoteAttributesCombinations() {
507518
validateExpectedRemoteAttributes("www.example.com", UNKNOWN_REMOTE_OPERATION);
508519
mockAttribute(NET_PEER_NAME, null);
509520

521+
// Validate behaviour of extracting Remote Service from service.address
522+
mockAttribute(SERVER_ADDRESS, "www.example.com");
523+
validateExpectedRemoteAttributes("www.example.com", UNKNOWN_REMOTE_OPERATION);
524+
mockAttribute(SERVER_ADDRESS, null);
525+
510526
// Validate behaviour of extracting Remote Service from net.peer.name and net.peer.port
511527
mockAttribute(NET_PEER_NAME, "192.168.0.0");
512528
mockAttribute(NET_PEER_PORT, 8081L);
513529
validateExpectedRemoteAttributes("192.168.0.0:8081", UNKNOWN_REMOTE_OPERATION);
514530
mockAttribute(NET_PEER_NAME, null);
515531
mockAttribute(NET_PEER_PORT, null);
516532

533+
// Validate behaviour of extracting Remote Service from service.address and service.port
534+
mockAttribute(SERVER_ADDRESS, "192.168.0.0");
535+
mockAttribute(SERVER_PORT, 8081L);
536+
validateExpectedRemoteAttributes("192.168.0.0:8081", UNKNOWN_REMOTE_OPERATION);
537+
mockAttribute(SERVER_ADDRESS, null);
538+
mockAttribute(SERVER_PORT, null);
539+
517540
// Validate behaviour of extracting Remote Service from net.peer.socket.addr
518541
mockAttribute(NET_SOCK_PEER_ADDR, "www.example.com");
519542
validateExpectedRemoteAttributes("www.example.com", UNKNOWN_REMOTE_OPERATION);
520543
mockAttribute(NET_SOCK_PEER_ADDR, null);
521544

545+
// Validate behaviour of extracting Remote Service from net.peer.socket.addr
546+
mockAttribute(NETWORK_PEER_ADDRESS, "www.example.com");
547+
validateExpectedRemoteAttributes("www.example.com", UNKNOWN_REMOTE_OPERATION);
548+
mockAttribute(NETWORK_PEER_ADDRESS, null);
549+
522550
// Validate behaviour of extracting Remote Service from net.peer.socket.addr and
523551
// net.sock.peer.port
524552
mockAttribute(NET_SOCK_PEER_ADDR, "192.168.0.0");
@@ -527,43 +555,86 @@ public void testRemoteAttributesCombinations() {
527555
mockAttribute(NET_SOCK_PEER_ADDR, null);
528556
mockAttribute(NET_SOCK_PEER_PORT, null);
529557

558+
// Validate behaviour of extracting Remote Service from net.peer.socket.addr and
559+
// net.sock.peer.port
560+
mockAttribute(NETWORK_PEER_ADDRESS, "192.168.0.0");
561+
mockAttribute(NETWORK_PEER_PORT, 8081L);
562+
validateExpectedRemoteAttributes("192.168.0.0:8081", UNKNOWN_REMOTE_OPERATION);
563+
mockAttribute(NETWORK_PEER_ADDRESS, null);
564+
mockAttribute(NETWORK_PEER_PORT, null);
565+
530566
// Validate behavior of Remote Operation from HttpTarget - with 1st api part. Also validates
531567
// that RemoteService is extracted from HttpUrl.
532568
mockAttribute(HTTP_URL, "http://www.example.com/payment/123");
533569
validateExpectedRemoteAttributes("www.example.com", "/payment");
534570
mockAttribute(HTTP_URL, null);
535571

572+
// that RemoteService is extracted from url.full.
573+
mockAttribute(URL_FULL, "http://www.example.com/payment/123");
574+
validateExpectedRemoteAttributes("www.example.com", "/payment");
575+
mockAttribute(URL_FULL, null);
576+
536577
// Validate behavior of Remote Operation from HttpTarget - with 1st api part. Also validates
537578
// that RemoteService is extracted from HttpUrl.
538579
mockAttribute(HTTP_URL, "http://www.example.com");
539580
validateExpectedRemoteAttributes("www.example.com", "/");
540581
mockAttribute(HTTP_URL, null);
541582

583+
// that RemoteService is extracted from url.full.
584+
mockAttribute(URL_FULL, "http://www.example.com");
585+
validateExpectedRemoteAttributes("www.example.com", "/");
586+
mockAttribute(URL_FULL, null);
587+
542588
// Validate behavior of Remote Service from HttpUrl
543589
mockAttribute(HTTP_URL, "http://192.168.1.1:8000");
544590
validateExpectedRemoteAttributes("192.168.1.1:8000", "/");
545591
mockAttribute(HTTP_URL, null);
546592

593+
// Validate behavior of Remote Service from url.full
594+
mockAttribute(URL_FULL, "http://192.168.1.1:8000");
595+
validateExpectedRemoteAttributes("192.168.1.1:8000", "/");
596+
mockAttribute(URL_FULL, null);
597+
547598
// Validate behavior of Remote Service from HttpUrl
548599
mockAttribute(HTTP_URL, "http://192.168.1.1");
549600
validateExpectedRemoteAttributes("192.168.1.1", "/");
550601
mockAttribute(HTTP_URL, null);
551602

603+
// Validate behavior of Remote Service from url.full
604+
mockAttribute(URL_FULL, "http://192.168.1.1");
605+
validateExpectedRemoteAttributes("192.168.1.1", "/");
606+
mockAttribute(URL_FULL, null);
607+
552608
// Validate behavior of Remote Service from HttpUrl
553609
mockAttribute(HTTP_URL, "");
554610
validateExpectedRemoteAttributes(UNKNOWN_REMOTE_SERVICE, UNKNOWN_REMOTE_OPERATION);
555611
mockAttribute(HTTP_URL, null);
556612

613+
// Validate behavior of Remote Service from url.full
614+
mockAttribute(URL_FULL, "");
615+
validateExpectedRemoteAttributes(UNKNOWN_REMOTE_SERVICE, UNKNOWN_REMOTE_OPERATION);
616+
mockAttribute(URL_FULL, null);
617+
557618
// Validate behavior of Remote Service from HttpUrl
558619
mockAttribute(HTTP_URL, null);
559620
validateExpectedRemoteAttributes(UNKNOWN_REMOTE_SERVICE, UNKNOWN_REMOTE_OPERATION);
560621
mockAttribute(HTTP_URL, null);
561622

623+
// Validate behavior of Remote Service from url.full
624+
mockAttribute(URL_FULL, null);
625+
validateExpectedRemoteAttributes(UNKNOWN_REMOTE_SERVICE, UNKNOWN_REMOTE_OPERATION);
626+
mockAttribute(URL_FULL, null);
627+
562628
// Validate behavior of Remote Operation from HttpTarget - invalid url, then remove it
563629
mockAttribute(HTTP_URL, "abc");
564630
validateExpectedRemoteAttributes(UNKNOWN_REMOTE_SERVICE, UNKNOWN_REMOTE_OPERATION);
565631
mockAttribute(HTTP_URL, null);
566632

633+
// Validate behavior of Remote Operation from url.full - invalid url, then remove it
634+
mockAttribute(URL_FULL, "abc");
635+
validateExpectedRemoteAttributes(UNKNOWN_REMOTE_SERVICE, UNKNOWN_REMOTE_OPERATION);
636+
mockAttribute(URL_FULL, null);
637+
567638
// Validate behaviour of Peer service attribute, then remove it.
568639
mockAttribute(PEER_SERVICE, "Peer service");
569640
validateExpectedRemoteAttributes("Peer service", UNKNOWN_REMOTE_OPERATION);
@@ -660,7 +731,9 @@ public void testPeerServiceDoesOverrideOtherRemoteServices() {
660731
validatePeerServiceDoesOverride(MESSAGING_SYSTEM);
661732
validatePeerServiceDoesOverride(GRAPHQL_OPERATION_TYPE);
662733
validatePeerServiceDoesOverride(NET_PEER_NAME);
734+
validatePeerServiceDoesOverride(SERVER_ADDRESS);
663735
validatePeerServiceDoesOverride(NET_SOCK_PEER_ADDR);
736+
validatePeerServiceDoesOverride(NETWORK_PEER_ADDRESS);
664737
// Actually testing that peer service overrides "UnknownRemoteService".
665738
validatePeerServiceDoesOverride(AttributeKey.stringKey("unknown.service.key"));
666739
}

0 commit comments

Comments
 (0)