Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

OpenTelemetry Baggage Span Processor

pypi

The BaggageSpanProcessor reads entries stored in Baggage from the parent context and adds the baggage entries’ keys and values to the span as attributes on span start.

Installation

pip install opentelemetry-processor-baggage

Add this span processor to a tracer provider.

Keys and values added to Baggage will appear on subsequent child spans for a trace within this service and be propagated to external services in accordance with any configured propagation formats configured. If the external services also have a Baggage span processor, the keys and values will appear in those child spans as well.

[!WARNING]

Do not put sensitive information in Baggage.

To repeat: a consequence of adding data to Baggage is that the keys and values will appear in all outgoing HTTP headers from the application.

Usage

Add the span processor when configuring the tracer provider.

To configure the span processor to copy all baggage entries during configuration:

from opentelemetry.processor.baggage import BaggageSpanProcessor, ALLOW_ALL_BAGGAGE_KEYS

tracer_provider = TracerProvider()
tracer_provider.add_span_processor(BaggageSpanProcessor(ALLOW_ALL_BAGGAGE_KEYS))

Alternatively, you can provide a custom baggage key predicate to select which baggage keys you want to copy.

For example, to only copy baggage entries that start with my-key:

starts_with_predicate = lambda baggage_key: baggage_key.startswith("my-key")
tracer_provider.add_span_processor(BaggageSpanProcessor(starts_with_predicate))

For example, to only copy baggage entries that match the regex ^key.+:

regex_predicate = lambda baggage_key: baggage_key.startswith("^key.+")
tracer_provider.add_span_processor(BaggageSpanProcessor(regex_predicate))

BaggageLogProcessor

The BaggageLogProcessor reads entries stored in Baggage from the current context and adds the baggage entries’ keys and values to the log record as attributes on emit.

Add this log processor to a logger provider.

To configure the log processor to copy all baggage entries:

from opentelemetry.processor.baggage import BaggageLogProcessor, ALLOW_ALL_BAGGAGE_KEYS

logger_provider = LoggerProvider()
logger_provider.add_log_record_processor(BaggageLogProcessor(ALLOW_ALL_BAGGAGE_KEYS))

Alternatively, you can provide a custom baggage key predicate to select which baggage keys you want to copy.

For example, to only copy baggage entries that start with my-key:

starts_with_predicate = lambda baggage_key: baggage_key.startswith("my-key")
logger_provider.add_log_record_processor(BaggageLogProcessor(starts_with_predicate))

For example, to only copy baggage entries that match the regex ^key.+:

regex_predicate = lambda baggage_key: re.match(r"^key.+", baggage_key) is not None
logger_provider.add_log_record_processor(BaggageLogProcessor(regex_predicate))

For example, to copy baggage entries matching multiple predicates:

multiple_predicates = [
    lambda baggage_key: baggage_key.startswith("my-key"),
    lambda baggage_key: baggage_key.startswith("other-key"),
]
logger_provider.add_log_record_processor(BaggageLogProcessor(multiple_predicates))

References

Release files for opentelemetry-processor-baggage 0.66b0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for opentelemetry-processor-baggage 0.66b0
File Size Uploaded
opentelemetry_processor_baggage-0.66b0.tar.gz 8.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for opentelemetry-processor-baggage 0.66b0
File Interpreter ABI Platform
opentelemetry_processor_baggage-0.66b0-py3-none-any.whl Python 3 none any Details

Total release size: 18.3 kB

Release files / opentelemetry_processor_baggage-0.66b0.tar.gz

Download URL opentelemetry_processor_baggage-0.66b0.tar.gz
Size 8.8 kB
Tags Source
SHA-256 checksum
How to use checksums
0f6cadcc590476112b7b1f95d85615c7192f69c98039ea9f2f20135d69fae0b1
BLAKE2b-256 checksum
How to use checksums
25d32b1b1ce353bae92238820eda56f2e4cab33d39730b94aade84bc41a4fb47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / opentelemetry_processor_baggage-0.66b0-py3-none-any.whl

Download URL opentelemetry_processor_baggage-0.66b0-py3-none-any.whl
Size 9.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0dcb119ce823818e7949b326e94f20b25bef3d7c2577db5820adc6a207d1e4c2
BLAKE2b-256 checksum
How to use checksums
16facc89d3ad6be8a6a8a8b7451d4aebb17493887476fe1062f20645997a1d70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.21

Release history Release notifications | RSS feed

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page