datadog_trace

APM and distributed tracing for PHP


The Datadog PHP Tracer brings APM and distributed tracing to PHP.

License: BSD 3-Clause

Latest releases

Version Release Download
1.19.2 2026-05-06 datadog_trace-1.19.2.tgz
1.19.1 2026-04-30 datadog_trace-1.19.1.tgz
1.19.0 2026-04-28 datadog_trace-1.19.0.tgz
1.18.0 2026-04-15 datadog_trace-1.18.0.tgz
1.17.1 2026-04-03 datadog_trace-1.17.1.tgz
Show all releases

Changelog

Version Message
1.19.2 ## Tracer
### Changed
- Restrict the accepted amount of extracted tags and baggage #3854

### Fixed
- Fix parentId refcount underflow #3851
- Fix SpanStack active reference corruption #3853
- Retry FFI telemetry batches when session config not yet available DataDog/libdatadog#1929
- Fallback to ftruncate if fallocate gets EPERM DataDog/libdatadog#1938
1.19.1 ## Tracer
### Fixed
- Fix catastrophic backtracking in PDO integration #3848
1.19.0 ## All products
### Fixed
- Fix critical ZTS race condition in INI value refcounting that caused use-after-free crashes under concurrent load #3832
- Ensure a unique installation directory to avoid conflicts with other tools #3835

## Tracer
### Added
- Implement client-side stats computation using shared memory for zero-copy stats delivery, with fallback to socket on first payloads #3756, #3811, #3815, #3836

### Changed
- Use a webserver-wide session ID for sidecar instead of per-fork session IDs, and propagate it to child processes via environment #3828, #3838

### Fixed
- Fix ZTS race condition in `process_tags.serialized` refcounting on shared inter-thread string #3831
- Fix dynamic instrumentation installation regression when enabling via dynamic config #3843
- Handle `APM_MULTI_CONFIG` remote configuration and fix missing data for exception replay #3791
- Fix duration of httpstream and live debugger spans being incorrectly reported as zero #3821
- Fix `instanceof` type aliases for PHP 7.x in live debugger DSL (`integer`/`double` vs `int`/`float`) #3813
- Obfuscate `:name` placeholder parameters in PDO queries for correct DBM correlation #3801
- Fix locale settings breaking ksr resolution #3797 (thank you @jdmaguire for the report!)
- Fix exception in PDO::__construct when signals arrive during database connection setup #3841
- Fix infinite loop in crashtracker runtime stack collection #3845

### Internal
- Add timeout to sidecar info fetcher DataDog/libdatadog#1890
- Allow sidecar worker to be stopped cleanly after fork DataDog/libdatadog#1893
- Use a dedicated sidecar connection per PHP thread, reducing lock contention and enabling per-thread request queuing #3770
- Emit environment variable names in telemetry config (e.g., `DD_TRACE_GENERATE_ROOT_SPAN`) instead of INI dot notation #3783
- Default crash report upload to errors intake to be enabled DataDog/libdatadog#1902
- Flush telemetry on anticipated sidecar shutdown to avoid data loss for short-lived sidecars #3806
- Skip sending empty telemetry payloads DataDog/libdatadog#1894
- Wire telemetry extended heartbeat interval through sidecar SessionConfig DataDog/libdatadog#1882, #3800

## Profiling
### Added
- Support generator unwinding in stack traces #3807

## AppSec
### Fixed
- Fix Remote Config regression in Rust helper #3840
- Fix double-logging of broken connections as errors and improve connection error handling in Rust helper #3792, #3803

### Internal
- Enable helper-rust by default also on PHP 8.4 #3842
- Update vendored libxml2 from 2.15.2 to 2.15.3 #3814
1.18.0 ## All products
### Internal
- Update and shrink build images, migrate to clang 19 #3771

## Tracer
### Added
- Support ApmTracingMulticonfig in dynamic config #3773

### Fixed
- Improve Symfony http.route resolution performance #3779 (thank you @B-Galati for the report!)
- Wrap PDO::__construct for signal handling #3786

### Internal
- Fix spawn\_worker trampoline issues DataDog/libdatadog#1844

## AppSec
### Added
- Enable rust helper on PHP 8.5 #3780 (can be disabled with `DD_APPSEC_HELPER_RUST_REDIRECTION=false`)
1.17.1 ## All products

### Fixed
- Fix SSI crashing on apache reload; add SSI int tests for appsec #3724, #3733
- Fix entity_id handling for Podman cgroupns=host cgroup path DataDog/libdatadog#1828

### Internal
- Changed defaults of configurations and fixed DD_TRACE_HTTP_CLIENT_ERROR_STATUSES #3621, #3677

## Tracer
### Fixed
- Fix _dd.p.ksr scientific notation for very small sampling rates #3721
- Fixed shell_exec() null return being interpreted as error #3723
- Batch endpoint collection ${changelog} remove Wordpress Endpoint collection #3764
- Fix sidecar performance by batching ack sending ${changelog} consumption DataDog/libdatadog#1835

## Profiler
### Fixed
- Fix crash due to AAS getenv #3746

### Internal
- Update libdatadog to v30.0, make CA root optional for profiling #3758
Show complete changelog