Loading

Technologies supported by EDOT PHP

Elastic Stack Serverless Observability

EDOT PHP is a distribution of OpenTelemetry PHP. It inherits all the supported technologies of the OpenTelemetry PHP.

EDOT PHP sends data through the OpenTelemetry protocol (OTLP). While OTLP ingest works with later 8.16+ versions of the EDOT Collector, for full support use either EDOT Collector versions 9.x or Elastic Cloud Serverless for OTLP ingest.

Note

Ingesting data from EDOT SDKs through EDOT Collector 9.x into Elastic Stack versions 8.18+ is supported.

Refer to EDOT SDKs compatibility for support details.

EDOT PHP supports PHP versions 8.1 to 8.4.

Unlike the upstream OpenTelemetry PHP agent, EDOT PHP supports extension-level instrumentation starting from PHP 8.1. This allows you to capture detailed traces from libraries such as cURL, PDO, and MySQLi even in PHP 8.1 environments.

The following SAPIs are supported:

  • php-cli
  • php-fpm
  • php-cgi/fcgi
  • mod_php (prefork)

EDOT PHP supports all popular variations of using PHP in combination with a web server, such as Apache with mod_php, Apache with php_fpm or cgi, NGINX with php_fpm or cgi, and others.

The following operating systems are supported:

  • Linux
    • Architectures: x86_64 and ARM64
    • glibc-based systems: Packages available as DEB and RPM
    • musl libc-based systems (Alpine Linux): Packages available as APK

The following frameworks are supported:

  • Laravel versions 6.x, 7.x, 8.x, 9.x, 10.x, and v11.x
  • Slim version 4.x

The following libraries are supported:

  • Curl versions 8.1 to 8.4
  • HTTP Async (php-http/httplug) version 2.x
  • MySQLi versions 8.1 to 8.4
  • PDO versions 8.1 to 8.4

Unlike the upstream OpenTelemetry PHP agent, EDOT PHP works fully automatically. There is no need to modify your application code, add Composer packages, or adjust deployment scripts. Once the system package is installed, EDOT PHP automatically detects your application and injects the instrumentation code at runtime, without requiring manual integration.

EDOT PHP automatically creates the root span for each incoming request, providing a consistent entry point for trace data without requiring manual instrumentation.

Transaction spans are grouped by URL patterns to reduce cardinality and improve readability in dashboards and trace views.

EDOT PHP automatically detects and generates spans for common operations like database queries or HTTP calls, even when no manual instrumentation is present. This feature is currently in preview.

Telemetry data is sent in the background to avoid impacting application performance. This ensures minimal latency and efficient resource usage.

Note

EDOT PHP supports background data transmission (non-blocking export), but only when the exporter is set to http/protobuf (OTLP over HTTP), which is the default configuration. If you change the exporter or the transport protocol, for example to gRPC or another format, telemetry will be sent synchronously, potentially impacting request latency.