Get the current W3C Trace Context (traceparent/tracestate) if OpenTelemetry is available.
()
| 7 | |
| 8 | |
| 9 | def get_trace_context() -> dict[str, str]: |
| 10 | """Get the current W3C Trace Context (traceparent/tracestate) if OpenTelemetry is available.""" |
| 11 | try: |
| 12 | from opentelemetry import context, propagate |
| 13 | except ImportError: |
| 14 | return {} |
| 15 | |
| 16 | carrier: dict[str, str] = {} |
| 17 | propagate.inject(carrier, context=context.get_current()) |
| 18 | result: dict[str, str] = {} |
| 19 | if "traceparent" in carrier: |
| 20 | result["traceparent"] = carrier["traceparent"] |
| 21 | if "tracestate" in carrier: |
| 22 | result["tracestate"] = carrier["tracestate"] |
| 23 | return result |
| 24 | |
| 25 | |
| 26 | @contextmanager |
searching dependent graphs…