jcchavezs/zipkin-instrumentation-symfony
A Symfony bundle for Zipkin distributed tracing that instruments HTTP requests and application spans, helping you collect and report timing data to a Zipkin server for performance monitoring and debugging across services.
Architecture fit
Bundle class, DI extension/compiler passes, kernel event subscribers. That is the layer Laravel does not consume. Laravel uses Symfony components (HttpFoundation, Console, EventDispatcher, Routing), not the Symfony framework (Kernel, Bundle, container compilation).openzipkin/zipkin-php (tracer, spans, B3/W3C propagation, HTTP reporters) plus the sibling instrumentation libraries (Guzzle middleware, DBAL middleware, PSR-18 wrapper). 3.1.0 confirms the package now tracks zipkin-php 3.0, which is the version we would target if we go native. That is the one piece of genuinely useful news in this release.Integration feasibility
kernel.request / kernel.response subscribers → Laravel middleware pair (start span in handle, finish in a terminable middleware or finally).Http::globalMiddleware() or per-client handler stack. Low lift.DB::listen() plus a query span, though Laravel's listener lacks pre-query timing so span duration must be measured around the call.CommandStarting / CommandFinished events.JobProcessing/JobProcessed hooks.composer.json constraints before estimating further — the changelog implies Symfony 4.4/5.4-era components.Technical risk
traceparent interop — are absent from this package and would be net-new work regardless of version.Key questions
traceparent, or only B3? Header coexistence with existing gateway/mesh instrumentation must be settled early.Stack fit
openzipkin/zipkin-php 3.0 directly, or — preferred — OpenTelemetry PHP SDK with the Zipkin exporter, which gives the same wire format plus a migration path to OTLP.Migration path
zipkin-php. Now more viable than before, because 3.1.0 tells us zipkin-php 3.0 is the supported pairing. Still only sensible if we need one or two spans on a single critical path and nothing more.Compatibility
composer.json, not the changelog: PHP floor/ceiling (expect 7.4–8.1), symfony/* component constraints (expect 4.4/5.4-era), PSR-18 client version, Guzzle version. Expect to relax or override constraints in a fork.Sequencing
Maintenance
Support
Scaling
Failure modes
Ramp-up
Bottom line: 3.1.0 is a maintenance release, not a pivot — it raises the PHP ceiling to 8.1, adopts zipkin-php 3.0, and leaves the framework mismatch, the Octane gap, the queue-tracing gap, and the strategic drift toward OpenTelemetry untouched. The package remains a useful reference, not a dependency. Recommend the OTel-first path; if Zipkin-native semantics are mandatory, scope a fork explicitly against zipkin-php 3.0 with named ownership before committing.
How can I help you explore Laravel packages today?