Skip to content

Conversation

@jack-berg
Copy link
Member

See comment.

Supersedes #173.

This refactors .propagator.composite from being an array of string entries to an array of objects. Each object has a single key identifying the name of the propagator.

This aligns propagator with the data modeling of other SDK extension points (processors, exporters, readers, sampler) where the extension point identifier is a key, and the object's value is passed as a node to configure that extension point. In the case of propagators, none of the built-in propagators currently accept configuration, but its conceivable that they may in the future.

The propagator comments have also been changed to indicate that omitting .propagator or having an empty .propagator.composite list results in a noop propgator. This aligns propagator config with the "what you see is what you get" philosophy used elsewhere in declarative config data modeling.

Finally, a new .propagator.composite_list property has been added with the same semantics as OTEL_PROPAGATORS env var. The comments indicate a merge semantic where entries from .propagator.composite_list are appended to .propagator.composite (with duplicates removed) when both are present. The ordering here is important because order that propagators are registered is signficiant, particularly when extracting context.

@jack-berg jack-berg requested a review from a team as a code owner March 6, 2025 22:51
Copy link
Member

@marcalff marcalff left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for the fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants