otpl-json
is an OTLP serialisation library.
It's written in pure Python, without dependencies.
It serialises a bunch of spans into OTLP 1.5 JSON format.
Tracing should be on by default.
OTLP is the standard data format and API, and the standard Python package is opentelemetry-exporter-otlp-proto-http
. It brings in a total of 18 packages and adds 9MB to the project virtual environment.
A typical Python application, that's being instrumented, only generates own tracing data and needs to send it out. It doesn't need that much complexity.
from otlp_json import CONTENT_TYPE, encode_spans
class SomeExporter:
def export(self.spans: Sequece[ReadableSpan]) -> None:
requests.post(
"http://localhost:4318/v1/traces",
data=encode_spans(spans),
headers={"Content-Type": CONTENT_TYPE},
)
- 3KB whl, containing:
- 4KB Python source
- ?? metadata
- link to rust library
- link to urllib sender
- link to test vector generator
- Events
- Links
- Baggage
- Schemata, when open-telemetry/opentelemetry-python#4359 lands
- Status fields
- validate what fields are in fact optional
- ???
This library is meant to marshal tracing data that's collected in the same Python process.
It is not meant to be used for data received and forwarded.