Class BaseTracer
- java.lang.Object
-
- io.opentelemetry.instrumentation.api.tracer.BaseTracer
-
- Direct Known Subclasses:
DatabaseClientTracer,HttpClientTracer,HttpServerTracer,RpcClientTracer,RpcServerTracer
public abstract class BaseTracer extends Object
Base class for all instrumentation specific tracer implementations.Tracers should not use
Spandirectly in their public APIs: ideally all lifecycle methods (ex. start/end methods) should return/acceptContext.The
BaseTraceroffers severalstartSpan()utility methods for creating bare spans without any attributes. If you want to provide some additional attributes on span start please consider writing your own specificstartSpan()method in the your tracer.When constructing
Spans tracers should set all attributes available during construction on aSpanBuilderinstead of aSpan. This waySpanProcessors are able to see those attributes in theonStart()method and can freely read/modify them.
-
-
Constructor Summary
Constructors Constructor Description BaseTracer()BaseTracer(io.opentelemetry.api.OpenTelemetry openTelemetry)BaseTracer(io.opentelemetry.api.trace.Tracer tracer)Deprecated.prefer to pass in an OpenTelemetry instance, instead.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddThrowable(io.opentelemetry.api.trace.Span span, Throwable throwable)voidend(io.opentelemetry.api.trace.Span span)Deprecated.Useend(Context)instead.voidend(io.opentelemetry.api.trace.Span span, long endTimeNanos)Deprecated.Useend(Context, long)instead.voidend(io.opentelemetry.context.Context context)voidend(io.opentelemetry.context.Context context, long endTimeNanos)voidendExceptionally(io.opentelemetry.api.trace.Span span, Throwable throwable)Deprecated.UseendExceptionally(Context, Throwable)instead.voidendExceptionally(io.opentelemetry.api.trace.Span span, Throwable throwable, long endTimeNanos)Deprecated.UseendExceptionally(Context, Throwable, long)instead.voidendExceptionally(io.opentelemetry.context.Context context, Throwable throwable)voidendExceptionally(io.opentelemetry.context.Context context, Throwable throwable, long endTimeNanos)<C> io.opentelemetry.context.Contextextract(C carrier, io.opentelemetry.context.propagation.TextMapGetter<C> getter)static <C> io.opentelemetry.context.ContextextractWithGlobalPropagators(C carrier, io.opentelemetry.context.propagation.TextMapGetter<C> getter)Deprecated.We should eliminate all static usages so we can use the non-global propagators.static io.opentelemetry.api.trace.SpangetCurrentServerSpan()Returns span of type SERVER from the current context ornullif not found.static io.opentelemetry.api.trace.SpangetCurrentServerSpan(io.opentelemetry.context.Context context)Returns span of type SERVER from the given context ornullif not found.io.opentelemetry.context.propagation.ContextPropagatorsgetPropagators()StringspanNameForClass(Class<?> clazz)This method is used to generate an acceptable span (operation) name based on a given class reference.StringspanNameForMethod(Method method)This method is used to generate an acceptable span (operation) name based on a given method reference.io.opentelemetry.context.ContextstartSpan(io.opentelemetry.context.Context parentContext, String spanName, io.opentelemetry.api.trace.SpanKind kind)io.opentelemetry.context.ContextstartSpan(Class<?> clazz)io.opentelemetry.context.ContextstartSpan(Method method)io.opentelemetry.context.ContextstartSpan(String spanName)io.opentelemetry.context.ContextstartSpan(String spanName, io.opentelemetry.api.trace.SpanKind kind)
-
-
-
Constructor Detail
-
BaseTracer
public BaseTracer()
-
BaseTracer
@Deprecated public BaseTracer(io.opentelemetry.api.trace.Tracer tracer)
Deprecated.prefer to pass in an OpenTelemetry instance, instead.Prefer to pass in an OpenTelemetry instance, rather than just a Tracer, so you don't have to use the GlobalOpenTelemetry Propagator instance.
-
BaseTracer
public BaseTracer(io.opentelemetry.api.OpenTelemetry openTelemetry)
-
-
Method Detail
-
getPropagators
public io.opentelemetry.context.propagation.ContextPropagators getPropagators()
-
startSpan
public io.opentelemetry.context.Context startSpan(Class<?> clazz)
-
startSpan
public io.opentelemetry.context.Context startSpan(Method method)
-
startSpan
public io.opentelemetry.context.Context startSpan(String spanName)
-
startSpan
public io.opentelemetry.context.Context startSpan(String spanName, io.opentelemetry.api.trace.SpanKind kind)
-
startSpan
public io.opentelemetry.context.Context startSpan(io.opentelemetry.context.Context parentContext, String spanName, io.opentelemetry.api.trace.SpanKind kind)
-
spanNameForMethod
public String spanNameForMethod(Method method)
This method is used to generate an acceptable span (operation) name based on a given method reference. Anonymous classes are named based on their parent.
-
spanNameForClass
public String spanNameForClass(Class<?> clazz)
This method is used to generate an acceptable span (operation) name based on a given class reference. Anonymous classes are named based on their parent.
-
end
public void end(io.opentelemetry.context.Context context)
-
end
public void end(io.opentelemetry.context.Context context, long endTimeNanos)
-
end
@Deprecated public void end(io.opentelemetry.api.trace.Span span)
Deprecated.Useend(Context)instead.End span.
-
end
@Deprecated public void end(io.opentelemetry.api.trace.Span span, long endTimeNanos)
Deprecated.Useend(Context, long)instead.End span.
-
endExceptionally
public void endExceptionally(io.opentelemetry.context.Context context, Throwable throwable)
-
endExceptionally
public void endExceptionally(io.opentelemetry.context.Context context, Throwable throwable, long endTimeNanos)
-
endExceptionally
@Deprecated public void endExceptionally(io.opentelemetry.api.trace.Span span, Throwable throwable)
Deprecated.UseendExceptionally(Context, Throwable)instead.End span.
-
endExceptionally
@Deprecated public void endExceptionally(io.opentelemetry.api.trace.Span span, Throwable throwable, long endTimeNanos)
Deprecated.UseendExceptionally(Context, Throwable, long)instead.End span.
-
addThrowable
public void addThrowable(io.opentelemetry.api.trace.Span span, Throwable throwable)
-
extractWithGlobalPropagators
@Deprecated public static <C> io.opentelemetry.context.Context extractWithGlobalPropagators(C carrier, io.opentelemetry.context.propagation.TextMapGetter<C> getter)
Deprecated.We should eliminate all static usages so we can use the non-global propagators.Do extraction with the propagators from the GlobalOpenTelemetry instance. Not recommended.
-
extract
public <C> io.opentelemetry.context.Context extract(C carrier, io.opentelemetry.context.propagation.TextMapGetter<C> getter)
-
getCurrentServerSpan
public static io.opentelemetry.api.trace.Span getCurrentServerSpan()
Returns span of type SERVER from the current context ornullif not found.
-
getCurrentServerSpan
public static io.opentelemetry.api.trace.Span getCurrentServerSpan(io.opentelemetry.context.Context context)
Returns span of type SERVER from the given context ornullif not found.
-
-