Closeable
, AutoCloseable
public abstract class Tracing extends Object implements Closeable
Tracer
.
Instances built via newBuilder()
are registered automatically such that statically
configured instrumentation like JDBC drivers can use current()
.
This type can be extended so that the object graph can be built differently or overridden, for example via spring or when mocking.
Modifier and Type | Class | Description |
---|---|---|
static class |
Tracing.Builder |
Modifier and Type | Method | Description |
---|---|---|
Clock |
clock(TraceContext context) |
This exposes the microsecond clock used by operations such as
Span.finish() . |
abstract void |
close() |
Ensures this component can be garbage collected, by making it not
current() |
static Tracing |
current() |
Returns the most recently created tracing component iff it hasn't been closed.
|
abstract CurrentTraceContext |
currentTraceContext() |
This supports in-process propagation, typically across thread boundaries.
|
static Tracer |
currentTracer() |
Returns the most recently created tracer if its component hasn't been closed.
|
abstract ErrorParser |
errorParser() |
|
abstract boolean |
isNoop() |
When true, no recording is done and nothing is reported to zipkin.
|
static Tracing.Builder |
newBuilder() |
|
Propagation<String> |
propagation() |
When a trace leaves the process, it needs to be propagated, usually via headers.
|
abstract Propagation.Factory |
propagationFactory() |
This supports edge cases like GRPC Metadata propagation which doesn't use String keys.
|
abstract Sampler |
sampler() |
Sampler is responsible for deciding if a particular trace should be "sampled", i.e.
|
abstract void |
setNoop(boolean noop) |
Set true to drop data and only return
noop spans regardless of sampling
policy. |
abstract Tracer |
tracer() |
All tracing commands start with a
Span . |
public static Tracing.Builder newBuilder()
public abstract Tracer tracer()
Span
. Use a tracer to create spans.public Propagation<String> propagation()
public abstract Propagation.Factory propagationFactory()
public abstract Sampler sampler()
Tracer.withSampler(Sampler)
public abstract CurrentTraceContext currentTraceContext()
public final Clock clock(TraceContext context)
Span.finish()
. This is
helpful when you want to time things manually. Notably, this clock will be coherent for all
child spans in this trace (that use this tracing component). For example, NTP or system clock
changes will not affect the result.context
- references a potentially unstarted span you'd like a clock correlated withpublic abstract ErrorParser errorParser()
@Nullable public static Tracer currentTracer()
This object should not be cached.
public abstract boolean isNoop()
Span.isNoop()
public abstract void setNoop(boolean noop)
noop spans
regardless of sampling
policy. This allows operators to stop tracing in risk scenarios.isNoop()
@Nullable public static Tracing current()
This object should not be cached.
public abstract void close()
current()
close
in interface AutoCloseable
close
in interface Closeable
Copyright © 2018 OpenZipkin. All rights reserved.