public abstract static class Propagation.Factory extends Object
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.
|
public 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 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.
Implementations should be idempotent, returning the same instance instead of re-applying change.
TraceContext.extra()
Copyright © 2018 OpenZipkin. All rights reserved.