Class OpenTelemetrySpanFactory
java.lang.Object
org.axonframework.tracing.opentelemetry.OpenTelemetrySpanFactory
- All Implemented Interfaces:
org.axonframework.tracing.SpanFactory
public class OpenTelemetrySpanFactory
extends Object
implements org.axonframework.tracing.SpanFactory
Creates
Span implementations that are compatible with OpenTelemetry java agent instrumentation. OpenTelemetry
is a standard to collect logging, tracing and metrics from applications. This SpanFactory focuses on
supporting the tracing part of the standard.
To get started with OpenTelemetry, check out their documentation. Note
that, even after configuring the correct dependencies, you still need to run the application using the OpenTelemetry
java agent to export data. Without this, it will have the same effect as the
NoOpSpanFactory since the data is not sent anywhere.
When creating a trace, the context of the current trace is used as a parent, instead of the one active at the time of
starting the span (Default OpenTelemetry behavior). This is done using SpanBuilder.setParent(Context).
- Since:
- 4.6.0
- Author:
- Mitchell Herrijgers
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classBuilder class to instantiate aOpenTelemetrySpanFactory. -
Constructor Summary
ConstructorsConstructorDescriptionInstantiate aOpenTelemetrySpanFactorybased on the fields contained in theOpenTelemetrySpanFactory.Builder. -
Method Summary
Modifier and TypeMethodDescriptionbuilder()Instantiate a Builder to create aOpenTelemetrySpanFactory.org.axonframework.tracing.SpancreateDispatchSpan(Supplier<String> operationNameSupplier, org.axonframework.messaging.Message<?> parentMessage, org.axonframework.messaging.Message<?>... linkedSiblings) org.axonframework.tracing.SpancreateHandlerSpan(Supplier<String> operationNameSupplier, org.axonframework.messaging.Message<?> parentMessage, boolean isChildTrace, org.axonframework.messaging.Message<?>... linkedParents) org.axonframework.tracing.SpancreateInternalSpan(Supplier<String> operationNameSupplier) org.axonframework.tracing.SpancreateInternalSpan(Supplier<String> operationNameSupplier, org.axonframework.messaging.Message<?> message) org.axonframework.tracing.SpancreateRootTrace(Supplier<String> operationNameSupplier) <M extends org.axonframework.messaging.Message<?>>
MpropagateContext(M message) voidregisterSpanAttributeProvider(org.axonframework.tracing.SpanAttributesProvider provider) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.axonframework.tracing.SpanFactory
createChildHandlerSpan, createLinkedHandlerSpan
-
Constructor Details
-
OpenTelemetrySpanFactory
Instantiate aOpenTelemetrySpanFactorybased on the fields contained in theOpenTelemetrySpanFactory.Builder.- Parameters:
builder- theOpenTelemetrySpanFactory.Builderused to instantiate aOpenTelemetrySpanFactoryinstance.
-
-
Method Details
-
builder
Instantiate a Builder to create aOpenTelemetrySpanFactory.The
SpanAttributeProviedersare defaulted to an empty list, and theTraceris defaulted to the tracer defined byGlobalOpenTelemetry.- Returns:
- a Builder able to create a
OpenTelemetrySpanFactory.
-
propagateContext
public <M extends org.axonframework.messaging.Message<?>> M propagateContext(M message) - Specified by:
propagateContextin interfaceorg.axonframework.tracing.SpanFactory
-
createRootTrace
- Specified by:
createRootTracein interfaceorg.axonframework.tracing.SpanFactory
-
createHandlerSpan
public org.axonframework.tracing.Span createHandlerSpan(Supplier<String> operationNameSupplier, org.axonframework.messaging.Message<?> parentMessage, boolean isChildTrace, org.axonframework.messaging.Message<?>... linkedParents) - Specified by:
createHandlerSpanin interfaceorg.axonframework.tracing.SpanFactory
-
createDispatchSpan
public org.axonframework.tracing.Span createDispatchSpan(Supplier<String> operationNameSupplier, org.axonframework.messaging.Message<?> parentMessage, org.axonframework.messaging.Message<?>... linkedSiblings) - Specified by:
createDispatchSpanin interfaceorg.axonframework.tracing.SpanFactory
-
createInternalSpan
- Specified by:
createInternalSpanin interfaceorg.axonframework.tracing.SpanFactory
-
createInternalSpan
public org.axonframework.tracing.Span createInternalSpan(Supplier<String> operationNameSupplier, org.axonframework.messaging.Message<?> message) - Specified by:
createInternalSpanin interfaceorg.axonframework.tracing.SpanFactory
-
registerSpanAttributeProvider
public void registerSpanAttributeProvider(org.axonframework.tracing.SpanAttributesProvider provider) - Specified by:
registerSpanAttributeProviderin interfaceorg.axonframework.tracing.SpanFactory
-