From 3e63ae097ccdd3ea44ccccc5183e187295ddb726 Mon Sep 17 00:00:00 2001 From: Andrea Marziali Date: Mon, 26 Aug 2024 11:28:43 +0200 Subject: [PATCH] Fix grpc server error mark --- .../grpc/client/GrpcClientDecorator.java | 5 +--- .../grpc/server/GrpcServerDecorator.java | 20 ++++++++++++--- .../src/test/groovy/ArmeriaGrpcTest.groovy | 25 ++++++++++++------- .../grpc/client/GrpcClientDecorator.java | 5 +--- .../grpc/server/GrpcServerDecorator.java | 20 ++++++++++++--- .../grpc-1.5/src/test/groovy/GrpcTest.groovy | 25 ++++++++++++------- 6 files changed, 68 insertions(+), 32 deletions(-) diff --git a/dd-java-agent/instrumentation/armeria-grpc/src/main/java/datadog/trace/instrumentation/armeria/grpc/client/GrpcClientDecorator.java b/dd-java-agent/instrumentation/armeria-grpc/src/main/java/datadog/trace/instrumentation/armeria/grpc/client/GrpcClientDecorator.java index 7a6f76d200a..060f88eaa43 100644 --- a/dd-java-agent/instrumentation/armeria-grpc/src/main/java/datadog/trace/instrumentation/armeria/grpc/client/GrpcClientDecorator.java +++ b/dd-java-agent/instrumentation/armeria-grpc/src/main/java/datadog/trace/instrumentation/armeria/grpc/client/GrpcClientDecorator.java @@ -115,10 +115,7 @@ public AgentSpan onClose(final AgentSpan span, final Status status) { // TODO why is there a mismatch between client / server for calling the onError method? onError(span, status.getCause()); - if (CLIENT_ERROR_STATUSES.get(status.getCode().value())) { - span.setError(true); - } - + span.setError(CLIENT_ERROR_STATUSES.get(status.getCode().value())); return span; } } diff --git a/dd-java-agent/instrumentation/armeria-grpc/src/main/java/datadog/trace/instrumentation/armeria/grpc/server/GrpcServerDecorator.java b/dd-java-agent/instrumentation/armeria-grpc/src/main/java/datadog/trace/instrumentation/armeria/grpc/server/GrpcServerDecorator.java index de5058948e2..7d51b672439 100644 --- a/dd-java-agent/instrumentation/armeria-grpc/src/main/java/datadog/trace/instrumentation/armeria/grpc/server/GrpcServerDecorator.java +++ b/dd-java-agent/instrumentation/armeria-grpc/src/main/java/datadog/trace/instrumentation/armeria/grpc/server/GrpcServerDecorator.java @@ -14,6 +14,8 @@ import datadog.trace.bootstrap.instrumentation.decorator.ServerDecorator; import io.grpc.ServerCall; import io.grpc.Status; +import io.grpc.StatusException; +import io.grpc.StatusRuntimeException; import java.util.BitSet; import java.util.LinkedHashMap; import java.util.function.Function; @@ -97,15 +99,27 @@ public AgentSpan onCall(final AgentSpan span, ServerCall AgentSpan onCall(final AgentSpan span, ServerCall