public abstract static class Propagation.Factory extends Object
Modifier and Type | Field | Description |
---|---|---|
static Propagation.Factory |
B3 |
Deprecated.
use
B3Propagation.FACTORY to avoid initialization race condition |
Constructor | Description |
---|---|
Factory() |
Modifier and Type | Method | Description |
---|---|---|
abstract <K> Propagation<K> |
create(Propagation.KeyFactory<K> keyFactory) |
|
TraceContext |
decorate(TraceContext context) |
Decorates the input such that it can propagate extra data, such as a timestamp or a carrier
for extra fields.
|
boolean |
requires128BitTraceId() |
|
boolean |
supportsJoin() |
Does the propagation implementation support sharing client and server span IDs.
|
@Deprecated public static final Propagation.Factory B3
B3Propagation.FACTORY
to avoid initialization race conditionpublic boolean supportsJoin()
the parent span ID
is null, you've been propagated a root span. When
join is not supported, you must always fork a new child.public boolean requires128BitTraceId()
public abstract <K> Propagation<K> create(Propagation.KeyFactory<K> keyFactory)
public TraceContext decorate(TraceContext context)
Implementations should be idempotent, returning the same instance where needed. Implementations are responsible for data scoping, if relevant. For example, if only global configuration is present, it could suffice to simply ensure that data is present. If data is span-scoped, an implementation might compare the context to its last span ID, copying on write or otherwise to ensure writes to one context don't affect another.
TraceContext.extra()
Copyright © 2018 OpenZipkin. All rights reserved.