SZL Holdings · Doctrine v6 · DOI 10.5281/zenodo.20434276
vsp-otel exports Λ-axis spans — each span carries a DSSE receipt, 9 governance-dimension scores, and a martingale-bounded Λ score over OTLP wire format.
§ 02 — What vsp-otel is
vsp-otel maps governance events to OpenTelemetry spans using the OTLP wire protocol and W3C trace context propagation. Each span receives a Λ-score and DSSE receipt — no proprietary backends required.
Pure Python · No C extensions
Implements the OTel exporter interface in pure Python. No C extensions, no native dependencies. Portable across CPython 3.11+ and PyPy.
W3C trace-context-compatible
Propagates traceparent and tracestate headers per W3C Trace Context Level 1. Interoperable with Jaeger, Tempo, and Honeycomb.
OTLP wire format
Exports spans via OTLP/HTTP or OTLP/gRPC — the standard OpenTelemetry wire protocol. Drop-in replacement for opentelemetry-exporter-otlp for governance workloads.
DSSE receipt per span
Every span receives a SHA-256 DSSE envelope with receiptHash, doctrine version, and issuedAt timestamp. Receipts are stored in the SCITT Merkle chain via szl.receipt.hash.
Lean-verified invariants
The Lutar Invariant Λ ∈ [0, 1] is machine-checked via 30 GREEN Lean 4 + Mathlib modules in szl-holdings/lutar-lean (DOI 10.5281/zenodo.20434308).
Open source · Apache 2.0
Licensed Apache 2.0. Source at szl-holdings/vsp-otel. DOI-pinned at 10.5281/zenodo.20434276.
§ 03 — Λ-axis spans
Each OTel span carries 9 axis scores in lambda.* attributes. The weighted sum produces the Lutar Invariant Λ ∈ [0, 1]. Spans failing the floor (Λ < 0.90) are flagged and receipt-attested.
§ 04 — OTel span field → backend mapping
The Sankey diagram below shows how 12 UDS span fields flow to their equivalent attribute names in Jaeger, Grafana Tempo, and Honeycomb backends via OTLP.
§ 05 — Live emitter
The vsp-otel-emitter Space runs the pure-Python port of the exporter. Adjust all 9 axis sliders, set span metadata, and observe the DSSE receipt output. Source: szl-holdings/vsp-otel.
§ 06 — Comparison vs OTel exporters
Comparison of vsp-otel against four OTel-compatible exporters across governance-specific capabilities.
| Feature | otel-python OTLP | otel-collector-contrib | Sentry OTel | Honeycomb | vsp-otel |
|---|---|---|---|---|---|
| Governance-axis dimensions (9) | ✗ none | ✗ none | ✗ none | ✗ none | ✓ 9 axes |
| DSSE receipt wrapping per span | ✗ | ✗ | ✗ | ✗ | ✓ |
| Lean-verified invariants | ✗ | ✗ | ✗ | ✗ | ✓ 30 GREEN |
| W3C trace-context | ✓ | ✓ | ✓ | ✓ | ✓ |
| OTLP wire format | ✓ | ✓ | ✓ | ✓ | ✓ |
| Open source | ✓ Apache 2.0 | ✓ Apache 2.0 | ⊘ partial | ✗ SaaS | ✓ Apache 2.0 |
| Martingale Λ-score | ✗ | ✗ | ✗ | ✗ | ✓ Doob-bounded |
§ 07 — What this is NOT
vsp-otel is a span exporter with governance semantics. These capabilities are explicitly out of scope.
✗
Not a replacement for opentelemetry-collector
vsp-otel is an exporter, not a collector. It sends spans to a collector or backend via OTLP. It does not route, filter, or batch spans at infrastructure level — use otel-collector-contrib for that.
✗
Not a SaaS product
vsp-otel has no hosted endpoint, no subscription, and no managed service. It is a library that your application instantiates. The HuggingFace Space is a demo environment only.
✗
Not a metrics aggregator
vsp-otel operates on traces and spans. It does not aggregate, roll up, or expose Prometheus-style metrics. For metrics pipelines, use the OTel Metrics API with a separate exporter.
✗
Not a general-purpose audit log
Λ-axis spans are governance events, not a generic log sink. Unstructured application logs should use the OTel Logs API, not vsp-otel span attributes.
§ 08 — Citations