Skip to content

Commit

Permalink
Use lower priorities for grpc server errors
Browse files Browse the repository at this point in the history
  • Loading branch information
amarziali committed Dec 2, 2024
1 parent 9f01834 commit 822b3cb
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import datadog.trace.api.cache.QualifiedClassNameCache;
import datadog.trace.bootstrap.instrumentation.api.AgentScope;
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
import datadog.trace.bootstrap.instrumentation.api.ErrorPriorities;
import datadog.trace.bootstrap.instrumentation.api.Tags;
import java.lang.reflect.Method;
import java.net.Inet4Address;
Expand Down Expand Up @@ -86,8 +87,14 @@ public AgentScope onError(final AgentScope scope, final Throwable throwable) {
}

public AgentSpan onError(final AgentSpan span, final Throwable throwable) {
return onError(span, throwable, ErrorPriorities.DEFAULT);
}

public AgentSpan onError(final AgentSpan span, final Throwable throwable, byte errorPriority) {
if (throwable != null) {
span.addThrowable(throwable instanceof ExecutionException ? throwable.getCause() : throwable);
span.addThrowable(
throwable instanceof ExecutionException ? throwable.getCause() : throwable,
errorPriority);
}
return span;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import datadog.trace.api.cache.DDCaches;
import datadog.trace.api.naming.SpanNaming;
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
import datadog.trace.bootstrap.instrumentation.api.ErrorPriorities;
import datadog.trace.bootstrap.instrumentation.api.InternalSpanTypes;
import datadog.trace.bootstrap.instrumentation.api.UTF8BytesString;
import datadog.trace.bootstrap.instrumentation.decorator.ServerDecorator;
Expand Down Expand Up @@ -102,7 +103,8 @@ public <RespT, ReqT> AgentSpan onCall(final AgentSpan span, ServerCall<ReqT, Res
public AgentSpan onStatus(final AgentSpan span, final Status status) {
span.setTag("status.code", status.getCode().name());
span.setTag("status.description", status.getDescription());
return span.setError(SERVER_ERROR_STATUSES.get(status.getCode().value()));
return span.setError(
SERVER_ERROR_STATUSES.get(status.getCode().value()), ErrorPriorities.HTTP_SERVER_DECORATOR);
}

public AgentSpan onClose(final AgentSpan span, final Status status) {
Expand All @@ -114,7 +116,7 @@ public AgentSpan onClose(final AgentSpan span, final Status status) {

@Override
public AgentSpan onError(AgentSpan span, Throwable throwable) {
super.onError(span, throwable);
super.onError(span, throwable, ErrorPriorities.HTTP_SERVER_DECORATOR);
if (throwable instanceof StatusRuntimeException) {
onStatus(span, ((StatusRuntimeException) throwable).getStatus());
} else if (throwable instanceof StatusException) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import datadog.trace.api.cache.DDCaches;
import datadog.trace.api.naming.SpanNaming;
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
import datadog.trace.bootstrap.instrumentation.api.ErrorPriorities;
import datadog.trace.bootstrap.instrumentation.api.InternalSpanTypes;
import datadog.trace.bootstrap.instrumentation.api.UTF8BytesString;
import datadog.trace.bootstrap.instrumentation.decorator.ServerDecorator;
Expand Down Expand Up @@ -102,7 +103,8 @@ public <RespT, ReqT> AgentSpan onCall(final AgentSpan span, ServerCall<ReqT, Res
public AgentSpan onStatus(final AgentSpan span, final Status status) {
span.setTag("status.code", status.getCode().name());
span.setTag("status.description", status.getDescription());
return span.setError(SERVER_ERROR_STATUSES.get(status.getCode().value()));
return span.setError(
SERVER_ERROR_STATUSES.get(status.getCode().value()), ErrorPriorities.HTTP_SERVER_DECORATOR);
}

public AgentSpan onClose(final AgentSpan span, final Status status) {
Expand All @@ -114,7 +116,7 @@ public AgentSpan onClose(final AgentSpan span, final Status status) {

@Override
public AgentSpan onError(AgentSpan span, Throwable throwable) {
super.onError(span, throwable);
super.onError(span, throwable, ErrorPriorities.HTTP_SERVER_DECORATOR);
if (throwable instanceof StatusRuntimeException) {
onStatus(span, ((StatusRuntimeException) throwable).getStatus());
} else if (throwable instanceof StatusException) {
Expand Down

0 comments on commit 822b3cb

Please sign in to comment.