mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2026-03-13 08:10:39 +08:00
* try 3.14 in pyramid Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * see what's broken Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix pyramid Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix pyramid ci Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix sqlalchemy Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix httpx tests Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix pymssql Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix grpc tests Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix exporter-prometheus-write tests Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * try fastapi fix Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix django tests Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix aiopg Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix aiohttp-client Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix django Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix aiopg Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix httpx Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix fastapi Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix vertexai Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix workflows Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix openai-v2 Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix contributing.md and lint to use py314 Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix lint Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * Update tox.ini Co-authored-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com> * Update instrumentation/opentelemetry-instrumentation-asyncio/tests/test_asyncio_run_coroutine_threadsafe.py Co-authored-by: Aaron Abbott <aaronabbott@google.com> * Apply suggestion from @emdneto * Apply suggestion from @emdneto * Update tox.ini * Update tox.ini * fix lint Signed-off-by: Emídio Neto <9735060+emdneto@users.noreply.github.com> * add changelog Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * add trove classifiers Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> --------- Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> Signed-off-by: Emídio Neto <9735060+emdneto@users.noreply.github.com> Co-authored-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com> Co-authored-by: Aaron Abbott <aaronabbott@google.com>
OpenTelemetry Baggage Span Processor
====================================
|pypi|
.. |pypi| image:: https://badge.fury.io/py/opentelemetry-processor-baggage.svg
:target: https://pypi.org/project/opentelemetry-processor-baggage/
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))
References
----------
* `OpenTelemetry Project <https://opentelemetry.io/>`_