traceway/opentelemetry-symfony
Symfony integration for OpenTelemetry that adds tracing and instrumentation to your applications. Capture HTTP requests, database queries, and service calls, then export spans via OTLP to observability backends such as Jaeger, Tempo, or Traceway for performance monitoring and debugging.
Architecture fit. This package is a Symfony bundle — not a Laravel package. That distinction is the single most important finding for a Laravel-centric roadmap. It instruments by registering Symfony bundle extensions, DI compiler passes, and event subscribers against HttpKernel, Console, Messenger, Scheduler, Mailer, Doctrine DBAL, Cache, Twig, and Monolog. Laravel shares underlying Symfony components (http-foundation, console, mailer, process) but does not boot bundles or expose those same extension points, so composer require into a Laravel app will not produce traces. Treat it as (a) a viable adoption path for any Symfony services in the estate, and (b) a reference implementation and semantic-convention baseline for a Laravel-native instrumenter.
Where it does fit architecturally, the design is sound: pure-PHP, no C extension required (ext-protobuf recommended for production), stable semantic conventions, and OTLP export — which means backend-agnostic. That vendor neutrality is the main strategic asset; it lets a Laravel fleet and a Symfony fleet report into one collector and share dashboards rather than fracturing into per-framework APM agents.
Integration feasibility. For a Laravel target: low as-shipped. Estimated effort is not "configuration" but "porting" — reimplementing listeners as service providers and event hooks (Kernel request/terminate, DB::listen, queue job events, Http:: client middleware, console commands). For a Symfony target: high — it is essentially install-and-configure, contingent on Symfony LTS and PHP version support in the compatibility matrix.
Technical risk. Elevated and mostly non-technical. 86 stars and 0 dependents is effectively zero production signal; the opportunity score (36.29) and overall score (19.95) reflect a project that has not been validated by the market. Expect a single-maintainer bus factor. The release date (2026-10-18) should be verified before it appears in any dependency-policy review — anomalous release metadata is a supply-chain and process question, not a footnote. MIT licensing is permissive enough to fork and vendor internally if the instrumentation logic proves worth keeping.
Key questions for the maintainer / spike.
Messenger async boundaries and Scheduler workers? Broken async context is the most common and most misleading instrumentation failure.ext-protobuf.Stack fit. Decide the fleet posture before deciding the package. Two coherent options:
Migration path. There is no migration — this is greenfield instrumentation layered onto running services. Sequence it as:
Compatibility. Run the full matrix in CI before committing: PHP version, Symfony LTS, ext-protobuf present/absent, and conflicts with any existing APM agent (Datadog dd-trace, New Relic, Elastic). Double instrumentation produces duplicate spans, inflated cost, and contradictory latency numbers — a common and expensive mistake.
Sequencing. Backend → collector → single-service pilot → async coverage → logs → metrics → fleet rollout. Do not let the instrumenter choice precede the backend choice; that inverts the lock-in risk.
Maintenance. Single-maintainer dependency with no dependents to surface regressions. Pin exact versions, avoid floating constraints, and budget for a fork if upstream goes quiet. Semantic-convention upgrades are effectively breaking changes for dashboards — treat them as planned work, not incidental.
Support. No commercial support. Internal ownership must be named explicitly (platform/SRE), with an escalation path and a documented decision on fork-vs-replace if maintenance lapses. A dependency review board should see the star count and dependent count alongside the adoption request.
Scaling. Cost is driven by span volume, and the noisiest instrumentations here are Doctrine, Cache, and Twig — high call counts per request. Enforce collector-side sampling (head sampling for baseline; tail sampling if error/latency retention matters) and disable per-instrumentation where the signal is low-value. Long-running Messenger and Scheduler workers need scrutiny for span accumulation and memory growth; these processes are where instrumentation bugs become incidents.
Failure modes to design against.
ext-protobuf in production — CPU and latency regression from userland serialization; enforce as a deploy prerequisite, not a suggestion.Ramp-up. Platform team: roughly one sprint to stand up collector, backend, and baseline dashboards. Application teams: a short runbook on reading traces, naming conventions, and when to add manual spans. Realistically two to three sprints from decision to a service map leadership will actually use.
Bottom line for the roadmap. Fund this only if Symfony services exist. If the estate is Laravel, reject the package as a direct dependency, adopt its coverage checklist and semantic conventions, and invest the integration effort in a Laravel-native instrumenter behind an OTLP collector. Low adoption, zero dependents, and a framework mismatch make this a reference implementation, not a platform commitment.
How can I help you explore Laravel packages today?