Skip to content

Latest commit

 

History

History
71 lines (54 loc) · 3.33 KB

File metadata and controls

71 lines (54 loc) · 3.33 KB
title description weight cSpell:ignore
PHP
<img width="35" class="img-initial" src="/https/github.com/img/logos/32x32/PHP.svg" alt="PHP"> A language-specific implementation of OpenTelemetry in PHP.
21
mbstring opcache

{{% docs/languages/index-intro php /%}}

Further Reading

Requirements

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

Dependencies

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 packagist.org.

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

Extension Purpose
ext-grpc Required to use gRPC as a transport for the OTLP exporter
ext-mbstring More performant than the fallback, symfony/polyfill-mbstring
ext-zlib If you want to compress exported data
ext-ffi Fiber-based context storage
ext-protobuf Significant performance improvement for otlp+protobuf exporting

ext-ffi

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.

ext-protobuf

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

Setup

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.