open-telemetry/extension-propagator-b3
Provides B3 (Zipkin-style) context propagation for OpenTelemetry PHP, letting you read and inject single- or multi-header B3 trace headers alongside or instead of the default W3C Trace Context. Useful for services interoperating with Zipkin, Brave, or other B3-based tracing systems.
Consider it when all of the following hold:
php.ini control) and can promote a compiled extension through staging to prod with the same rigor as any other binary dependency.TextMapPropagator.Look elsewhere when:
Propagator interface).To executives: We have a trace-continuity gap at the PHP boundary — requests that originate in our mesh or from our Java services arrive at Laravel with B3 headers we currently discard, so traces stop at the edge. This extension lets Laravel participate in those traces without re-architecting the observability stack, which shortens incident diagnosis and reduces cross-team escalation time. The trade-off is operational, not financial: it adds a compiled PHP extension to our image build, and the project has near-zero community adoption, so we would own the risk. Recommendation: fund a one-service spike behind the existing build pipeline, with go/no-go gated on "can we ship and roll back the extension in prod?"
To engineering: It's a focused, native B3 propagator from the OpenTelemetry PHP org — plug it in as the propagator and the SDK handles extract/inject. It's fast and avoids per-request userland parsing, but it's a binary dependency: image rebuilds, php.ini wiring, and a version pin. Repo is READONLY with no dependents, so plan to pin exactly, verify the PHP-version matrix against our upgrade cadence, and keep a userland B3 propagator as a documented fallback. If we can't demonstrate a latency win over the userland path, don't take on the build burden.
How can I help you explore Laravel packages today?