mirror of
https://github.com/keycloak/keycloak.git
synced 2026-01-09 15:02:05 -03:30
[quarkus-next] Removed exception escaped OTel attribute (#43848)
Closes #43845 Signed-off-by: Martin Bartoš <mabartos@redhat.com>
This commit is contained in:
parent
71160384ca
commit
12d9ec048b
@ -23,6 +23,7 @@ import io.opentelemetry.api.trace.SpanBuilder;
|
||||
import io.opentelemetry.api.trace.Tracer;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.Scope;
|
||||
import io.opentelemetry.semconv.incubating.CodeIncubatingAttributes;
|
||||
import jakarta.enterprise.inject.spi.CDI;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jboss.resteasy.reactive.common.model.ResourceClass;
|
||||
@ -57,8 +58,9 @@ public final class KeycloakTracingCustomizer implements HandlerChainCustomizer {
|
||||
Tracer myTracer = openTelemetry.getTracer(this.getClass().getName(), Version.VERSION);
|
||||
SpanBuilder spanBuilder = myTracer.spanBuilder(spanName);
|
||||
spanBuilder.setParent(Context.current().with(Span.current()));
|
||||
spanBuilder.setAttribute("code.function", methodName);
|
||||
spanBuilder.setAttribute("code.namespace", className);
|
||||
// for semconv >= 1.32 use CODE_FUNCTION_NAME instead
|
||||
spanBuilder.setAttribute(CodeIncubatingAttributes.CODE_FUNCTION, methodName);
|
||||
spanBuilder.setAttribute(CodeIncubatingAttributes.CODE_NAMESPACE, className);
|
||||
Span span = spanBuilder.startSpan();
|
||||
requestContext.setProperty("span", span);
|
||||
requestContext.setProperty("scope", span.makeCurrent());
|
||||
|
||||
@ -18,6 +18,7 @@
|
||||
package org.keycloak.quarkus.runtime.tracing;
|
||||
|
||||
import io.opentelemetry.api.OpenTelemetry;
|
||||
import io.opentelemetry.api.common.AttributeKey;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.api.trace.SpanBuilder;
|
||||
@ -100,7 +101,7 @@ public class OTelTracingProvider implements TracingProvider {
|
||||
public void error(Throwable exception) {
|
||||
var span = getCurrentSpan();
|
||||
var exceptionAttributes = Attributes.builder() // based on OTel Semantic Conventions
|
||||
.put(ExceptionAttributes.EXCEPTION_ESCAPED, true)
|
||||
.put(AttributeKey.booleanKey("exception.escaped"), true) // remove once semconv >= 1.32 is used
|
||||
.put(ExceptionAttributes.EXCEPTION_MESSAGE, exception.getMessage())
|
||||
.put(ExceptionAttributes.EXCEPTION_TYPE, exception.getClass().getCanonicalName())
|
||||
.put(ExceptionAttributes.EXCEPTION_STACKTRACE, ExceptionUtils.getStackTrace(exception))
|
||||
|
||||
@ -202,8 +202,7 @@ public class OTelTracingProviderTest extends AbstractTestRealmKeycloakTest {
|
||||
var exceptionData = (ExceptionEventData) eventData;
|
||||
var exceptionAttributes = exceptionData.getAttributes();
|
||||
assertThat(exceptionAttributes, notNullValue());
|
||||
|
||||
assertThat(exceptionAttributes.get(ExceptionAttributes.EXCEPTION_ESCAPED), is(true));
|
||||
assertThat(exceptionAttributes.get(AttributeKey.booleanKey("exception.escaped")), is(true));
|
||||
assertThat(exceptionAttributes.get(ExceptionAttributes.EXCEPTION_MESSAGE), is("something bad happened"));
|
||||
assertThat(exceptionAttributes.get(ExceptionAttributes.EXCEPTION_STACKTRACE), not(emptyOrNullString()));
|
||||
assertThat(exceptionAttributes.get(ExceptionAttributes.EXCEPTION_TYPE), is(RuntimeException.class.getCanonicalName()));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user