Class MultiTextMapPropagator
java.lang.Object
io.opentelemetry.context.propagation.MultiTextMapPropagator
- All Implemented Interfaces:
TextMapPropagator
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Collection<String> private final TextMapPropagator[] -
Constructor Summary
ConstructorsConstructorDescriptionMultiTextMapPropagator(TextMapPropagator... textMapPropagators) MultiTextMapPropagator(List<TextMapPropagator> textMapPropagators) -
Method Summary
Modifier and TypeMethodDescription<C> Contextextract(Context context, C carrier, TextMapGetter<C> getter) Extracts data from upstream.fields()The propagation fields defined.getAllFields(TextMapPropagator[] textPropagators) <C> voidinject(Context context, C carrier, TextMapSetter<C> setter) Injects data for downstream consumers, for example as HTTP headers.toString()
-
Field Details
-
textMapPropagators
-
allFields
-
-
Constructor Details
-
MultiTextMapPropagator
MultiTextMapPropagator(TextMapPropagator... textMapPropagators) -
MultiTextMapPropagator
MultiTextMapPropagator(List<TextMapPropagator> textMapPropagators)
-
-
Method Details
-
fields
Description copied from interface:TextMapPropagatorThe propagation fields defined. If your carrier is reused, you should delete the fields here before callingTextMapPropagator.inject(Context, Object, TextMapSetter))}.For example, if the carrier is a single-use or immutable request object, you don't need to clear fields as they couldn't have been set before. If it is a mutable, retryable object, successive calls should clear these fields first.
Some use cases for this are:
- Allow pre-allocation of fields, especially in systems like gRPC Metadata
- Allow a single-pass over an iterator
- Specified by:
fieldsin interfaceTextMapPropagator- Returns:
- the fields that will be used by this formatter.
-
getAllFields
-
inject
Description copied from interface:TextMapPropagatorInjects data for downstream consumers, for example as HTTP headers. The carrier may be null to facilitate calling this method with a lambda for theTextMapSetter, in which case that null will be passed to theTextMapSetterimplementation.- Specified by:
injectin interfaceTextMapPropagator- Type Parameters:
C- carrier of propagation fields, such as an http request- Parameters:
context- theContextcontaining the value to be injected.carrier- holds propagation fields. For example, an outgoing message or http request.setter- invoked for each propagation key to add or remove.
-
extract
Description copied from interface:TextMapPropagatorExtracts data from upstream. For example, from incoming http headers. The returned Context should contain the extracted data, if any, merged with the data from the passed-in Context.If the incoming information could not be parsed, implementations MUST return the original Context, unaltered.
- Specified by:
extractin interfaceTextMapPropagator- Type Parameters:
C- the type of carrier of the propagation fields, such as an http request.- Parameters:
context- theContextused to store the extracted value.carrier- holds propagation fields. For example, an outgoing message or http request.getter- invoked for each propagation key to get data from the carrier.- Returns:
- the
Contextcontaining the extracted data.
-
toString
-