open-telemetry/transport-grpc
gRPC transport for OpenTelemetry PHP, enabling OTLP trace, metric, and log export over gRPC. Integrates with the OpenTelemetry SDK and supports efficient protobuf-based telemetry delivery to collectors and observability backends.
Adopt when several of the following hold:
open-telemetry/sdk + open-telemetry/exporter-otlp and specifically need gRPC — because your Collector or a vendor's OTLP endpoint is gRPC-only, or span volume is high enough that protobuf-over-HTTP framing overhead is measurable.ext-grpc (a compiled PECL extension) into every runtime: php-fpm images, Octane/Swoole workers, Horizon containers, CI runners. This is the single biggest adoption gate. If you cannot ship the extension, this package is unavailable — not optional.Look elsewhere when:
Two caveats worth stating plainly: this is a read-only subtree split of the opentelemetry-php monorepo, so the low star count and zero listed dependents reflect packaging mechanics, not adoption or health — judge it on upstream release cadence and issues. And it has a hard native dependency with no pure-PHP fallback; ext-grpc historically lags new PHP minor releases, which can block a Laravel upgrade.
Executive summary. We can instrument our Laravel services with OpenTelemetry — an open, vendor-neutral standard — instead of embedding a specific APM vendor's agent in our codebase. That converts observability from a multi-year vendor commitment into a configurable pipeline: the app emits standard telemetry to a Collector we control, and we choose — and can change — the backend that stores it. This package is the small, single-purpose gRPC transport that carries that telemetry; it is maintained upstream as part of the official OpenTelemetry PHP SDK.
Business value. (1) Negotiating leverage — backend pricing becomes contestable because switching costs fall to a Collector config change. (2) Reliability foundation — cross-service traces are the prerequisite for SLOs, error budgets, and trustworthy canary gating. (3) Faster incident resolution — one trace ID spanning web, queue, and downstream calls replaces manual log correlation. (4) No license cost — spend is engineering time plus backend, not a per-host agent fee.
For engineering. The code cost is low; the infrastructure cost is real and mostly upfront: adding ext-grpc to every base image, running and operating an OTel Collector (or using a managed one), and writing Laravel-specific instrumentation the ecosystem doesn't hand us. Budget it as a platform-team initiative, not a ticket. Recommended sequence: stand up the Collector and prove it end to end with the HTTP/protobuf exporter (no compiled extension required); instrument HTTP requests and queue jobs first; measure Collector ingest cost at realistic sampling rates; only then evaluate swapping to this gRPC transport, behind an env flag and run in parallel against a second Collector pipeline for one release cycle before cutting over. Pin SDK and transport versions together, and treat upgrades as scheduled maintenance with a named owner — including an explicit check that ext-grpc supports whatever PHP version the next Laravel upgrade requires.
Recommendation. Worth pursuing if we're consolidating on OpenTelemetry across more than one service, or expect to re-evaluate our APM vendor within two years. If we're a single Laravel app with no Collector and no observability owner, defer — Pulse plus a managed error tracker delivers most of the near-term value at a fraction of the operational cost, and this stack can be revisited when a second service appears. Either way, treat the gRPC transport specifically as a performance optimization with a measured baseline, not the starting point.
How can I help you explore Laravel packages today?