PHP A language-specific implementation of OpenTelemetry in PHP.

This is the OpenTelemetry PHP documentation. OpenTelemetry is an observability framework – an API, SDK, and tools that are designed to aid in the generation and collection of application telemetry data such as metrics, logs, and traces. This documentation is designed to help you understand how to get started using OpenTelemetry PHP.

Status and Releases

The current status of the major functional components for OpenTelemetry PHP is as follows:


For releases, including the latest release, see Releases.

Further Reading


OpenTelemetry for PHP requires a minimum PHP version of 7.4, and auto-instrumentation requires version 8.0+.


Some of the SDK and Contrib packages have a dependency on both a HTTP Factories (PSR-17) and a php-http/async-client implementation. You can find appropriate composer packages implementing given standards on

See http-factory-implementations to find a PSR-17 (HTTP factories) implementation, and async-client-implementations to find a php-http/async-client implementation.

Optional PHP extensions

ext-grpcRequired to use gRPC as a transport for the OTLP exporter
ext-mbstringMore performant than the fallback, symfony/polyfill-mbstring
ext-zlibIf you want to compress exported data
ext-ffiFiber-based context storage
ext-protobufSignificant performance improvement for otlp+protobuf exporting


Fibers support can be enabled by setting the OTEL_PHP_FIBERS_ENABLED environment variable to true. Using fibers with non-CLI SAPIs may require preloading of bindings. One way to achieve this is setting ffi.preload to src/Context/fiber/zend_observer_fiber.h and setting opcache.preload to vendor/autoload.php.


The native protobuf library is significantly slower than the extension. We strongly encourage the use of the extension.


OpenTelemetry for PHP is distributed via packagist, in a number of packages. We recommend that you install only the packages that you need, which as a minimum is usually API, Context, SDK and an exporter.

We strongly encourage that your code only depend on classes and interfaces in the API package.

Getting Started

Get up and running with OpenTelemetry for PHP.

Automatic Instrumentation

Manual Instrumentation

Manual instrumentation for OpenTelemetry PHP



Context propagation for the PHP API