Package org.apache.solr.util.tracing
Class TraceUtils
java.lang.Object
org.apache.solr.util.tracing.TraceUtils
Utilities for distributed tracing.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Predicate<io.opentelemetry.api.trace.Span> static final Stringstatic Predicate<io.opentelemetry.api.trace.Span> this should only be changed in the context of testing, otherwise it would risk not recording trace data.static final io.opentelemetry.api.common.AttributeKey<String> static final io.opentelemetry.api.common.AttributeKey<String> static final io.opentelemetry.api.common.AttributeKey<String> static final io.opentelemetry.api.common.AttributeKey<String> static final Stringstatic final io.opentelemetry.api.common.AttributeKey<String> static final io.opentelemetry.api.common.AttributeKey<String> static final io.opentelemetry.api.common.AttributeKey<Long> static final io.opentelemetry.api.common.AttributeKey<String> static final io.opentelemetry.api.common.AttributeKey<String> static final io.opentelemetry.api.common.AttributeKey<String> static final String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic io.opentelemetry.context.ContextextractContext(jakarta.servlet.http.HttpServletRequest req) static io.opentelemetry.api.trace.Tracerstatic io.opentelemetry.api.trace.SpangetSpan(jakarta.servlet.http.HttpServletRequest req) static io.opentelemetry.context.propagation.TextMapPropagatorstatic io.opentelemetry.api.trace.TracergetTracer(jakarta.servlet.http.HttpServletRequest req) static voidstatic voidifValidTraceId(io.opentelemetry.api.trace.Span span, Consumer<io.opentelemetry.api.trace.Span> consumer) Sometimes the tests will use a recoding noop span to verify the complete code path so we need to distinguish this case and only perform a specific operation (like updating the MDC context) only in case the generated trace id is validstatic voidinjectTraceContext(org.eclipse.jetty.client.Request req) static voidsetDbInstance(io.opentelemetry.api.trace.Span span, String coreOrColName) static voidsetDbInstance(SolrQueryRequest req, String coreOrColl) static voidsetHttpStatus(io.opentelemetry.api.trace.Span span, int httpStatus) static voidsetOperations(SolrQueryRequest req, String clazz, List<String> ops) static voidsetSpan(jakarta.servlet.http.HttpServletRequest req, io.opentelemetry.api.trace.Span span) static voidsetTracer(jakarta.servlet.http.HttpServletRequest req, io.opentelemetry.api.trace.Tracer t) static voidstatic io.opentelemetry.api.trace.SpanstartCollectionApiCommandSpan(String name, String collection, boolean isAsync) static io.opentelemetry.api.trace.SpanstartHttpRequestSpan(jakarta.servlet.http.HttpServletRequest request, io.opentelemetry.context.Context context)
-
Field Details
-
DEFAULT_SPAN_NAME
- See Also:
-
WRITE_QUERY_RESPONSE_SPAN_NAME
- See Also:
-
TAG_DB
-
TAG_DB_TYPE
-
TAG_USER
-
TAG_HTTP_STATUS
-
TAG_HTTP_METHOD
-
TAG_HTTP_URL
-
TAG_HTTP_PARAMS
-
TAG_RESPONSE_WRITER
-
TAG_CONTENT_TYPE
-
TAG_OPS
-
TAG_CLASS
-
TAG_DB_TYPE_SOLR
- See Also:
-
DEFAULT_IS_RECORDING
-
IS_RECORDING
this should only be changed in the context of testing, otherwise it would risk not recording trace data.
-
-
Constructor Details
-
TraceUtils
public TraceUtils()
-
-
Method Details
-
getGlobalTracer
public static io.opentelemetry.api.trace.Tracer getGlobalTracer() -
getTextMapPropagator
public static io.opentelemetry.context.propagation.TextMapPropagator getTextMapPropagator() -
setDbInstance
-
setDbInstance
-
setUser
-
setHttpStatus
public static void setHttpStatus(io.opentelemetry.api.trace.Span span, int httpStatus) -
ifNotNoop
public static void ifNotNoop(io.opentelemetry.api.trace.Span span, Consumer<io.opentelemetry.api.trace.Span> consumer) -
ifValidTraceId
public static void ifValidTraceId(io.opentelemetry.api.trace.Span span, Consumer<io.opentelemetry.api.trace.Span> consumer) Sometimes the tests will use a recoding noop span to verify the complete code path so we need to distinguish this case and only perform a specific operation (like updating the MDC context) only in case the generated trace id is valid- Parameters:
span- current spanconsumer- consumer to be called
-
setSpan
public static void setSpan(jakarta.servlet.http.HttpServletRequest req, io.opentelemetry.api.trace.Span span) -
getSpan
public static io.opentelemetry.api.trace.Span getSpan(jakarta.servlet.http.HttpServletRequest req) -
setTracer
public static void setTracer(jakarta.servlet.http.HttpServletRequest req, io.opentelemetry.api.trace.Tracer t) -
getTracer
public static io.opentelemetry.api.trace.Tracer getTracer(jakarta.servlet.http.HttpServletRequest req) -
extractContext
public static io.opentelemetry.context.Context extractContext(jakarta.servlet.http.HttpServletRequest req) -
injectTraceContext
public static void injectTraceContext(org.eclipse.jetty.client.Request req) -
startHttpRequestSpan
public static io.opentelemetry.api.trace.Span startHttpRequestSpan(jakarta.servlet.http.HttpServletRequest request, io.opentelemetry.context.Context context) -
setOperations
-
startCollectionApiCommandSpan
-