plunkettscott/laravel-otel
OpenTelemetry integration for Laravel that instruments HTTP requests, database queries, queues, and console commands to emit traces, metrics, and logs through OTLP exporters, with middleware, service provider wiring, and publishable config.
laravel-otel is an OpenTelemetry instrumentation layer for Laravel, so it decouples "what telemetry we emit" from "who stores and displays it." That makes the real decision the backend (Grafana/Tempo, Honeycomb, Datadog, New Relic, an internal collector), which can be trialed, swapped, or dual-shipped without re-instrumenting the app. Instrumentation becomes a one-time cost instead of a per-vendor migration.ScheduleWatcherOptions, i.e. the configuration surface for scheduled-task tracing — a signal that this exact gap is being actively worked, and a reason to include "scheduled job visibility" as a near-term deliverable rather than a someday item.Adopt when:
Look elsewhere or defer when:
Risk notes to carry into the decision: pre-1.0 versioning (0.x) means no compatibility promise; bus-factor of one maintainer argues for a fork-and-vendor contingency or at least a documented fallback to manual OTel SDK instrumentation; and instrumentation overhead should be measured on your own hot paths, not assumed from benchmarks.
For executives (one paragraph): We can add production tracing to our Laravel services using an open-source, open-standard integration instead of buying a proprietary agent. That means we pay for the observability backend we choose — and can change that choice later without re-instrumenting the application. The business outcome is faster incident diagnosis ("why is checkout slow") and visibility into background jobs that currently fail silently. The cost is a small, time-boxed engineering effort plus ongoing ownership by the platform team. The main caveat is maturity: this is a pre-1.0 package with essentially one maintainer, so we should pin the version, keep our configuration in our own code, and treat the fallback (manual OpenTelemetry instrumentation) as a documented plan B rather than an emergency.
For engineering (the honest version): This is a thin, config-driven instrumentation layer — you'll get spans for requests, queries, queues, and the scheduler without hand-writing middleware everywhere. The v0.4.2 release is a targeted fix to ScheduleWatcherOptions, which is the knob for scheduled-task tracing; if scheduler visibility is on your list, this release is the one that makes that configuration behave. Two things to internalize before you adopt: (1) 0.x means minor bumps can move behavior — pin it and read changelogs on upgrade; (2) it does not include the collector or backend, so budget for that pipeline and its owner explicitly. Recommendation: time-box a spike on one non-critical service, measure overhead against our p95 latency budget, confirm the data is actionable in the backend, and only then standardize across services.
How can I help you explore Laravel packages today?