spatie/laravel-open-telemetry
Add OpenTelemetry tracing to Laravel to measure performance and follow requests across dispatched jobs and services. Export traces to tools like Jaeger or Aspecto for end-to-end visibility and debugging. (Package still in development.)
laravel-monitoring) could be replaced with minimal refactoring.spatie/laravel-http-middleware).open-telemetry/php (OTel PHP SDK), which may introduce versioning constraints or breaking changes if the package evolves independently.laravel-telescope or monolog) be consolidated or replaced?opentelemetry/opentelemetry-php directly).composer.json for supported Laravel versions (likely 8.x–10.x). Test against your version.pcntl for async workers (if using Laravel Horizon). Verify ext-opentelemetry is available.spatie/laravel-monitoring (duplicate metrics).laravel-telescope (alternative debugging tool).php artisan vendor:publish --provider="Spatie\OpenTelemetry\OpenTelemetryServiceProvider")..env.use Spatie\OpenTelemetry\Middleware\TraceRequests;
Route::middleware(TraceRequests::class)->group(...);
$this->app->bind(ShouldBeTracing::class, function () {
return new ShouldBeTracing(app('tracer'));
});
open-telemetry/php for breaking changes. Pin versions in composer.json to avoid surprises.traceparent headers for HTTP or OTel context APIs for queues.10% of traces).service.version, deployment.environment to filter noise in production.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| OTel backend unavailable | Lost telemetry; blind spots | Fallback to local logging; alert on backend health. |
| High cardinality in attributes | Backend overload; slow queries | Limit attributes (e.g., user_id only for errors). |
| Context propagation failures | Broken end-to-end traces | Validate traceparent headers; use Baggage. |
| Package version conflicts | Broken instrumentation | Pin versions; test upgrades in staging. |
| Laravel cache/queue issues | Missing spans for jobs/routes | Monitor queue workers; retry failed jobs. |
@withSpan macros).use Spatie\OpenTelemetry\Facades\OpenTelemetry;
OpenTelemetry::tracer()->spanBuilder('custom.service')->startSpan(...);
How can I help you explore Laravel packages today?