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.18.0 2026-04-15 datadog_trace-1.18.0.tgz
1.17.1 2026-04-03 datadog_trace-1.17.1.tgz
1.16.0 2026-03-04 datadog_trace-1.16.0.tgz
1.15.2 2025-12-22 datadog_trace-1.15.2.tgz
1.15.1 2025-12-19 datadog_trace-1.15.1.tgz
Show all releases

Changelog

Version Message
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
1.16.0 ## All products
### Fixed
- Fix packaging apks for new alpine versions #3555
- Fix http_response_header deprecation in installer #3553

## Tracer
### Added
- Support OpenTelemetry Metrics #3487
- Adds process_tags to the first span of each tracing payload #3566
- Distributed tracing header injection in HyperF/Swoole environments #3544
- Stream context integration with HTTP method #3534

### Changed
- Enable http.endpoint calculation when appsec is explicitly enabled #3556

### Fixed
- Fix panic after bailout in previous request #3537
- Avoid curl_getenv for unix:// too #3540
- Correct a bug on prepared statement regarding DBM correlation #3545
- Fix onclose in cycle collected spans #3587
- prefer poll() for channel DataDog/libdatadog#1443
- AWS lambda also can return EACCESS for shm_open DataDog/libdatadog#1446

### Internal
- bump libdatadog to v25.0.0 #3568

## Profiler
### Changed
- Optimise allocation profiling for PHP >= 8.4 #3550

### Fixed
- Fixed bindgen compatibility with PHP 8.5.1+ on macOS #3583
- Fixed SystemSettings initialization #3579
- Fixed UB and simplify SystemSettings #3578
- Fixed crash in upload for DD_EXTERNAL_ENV #3576
- Fixed crash in ddtrace_get_profiling_context #3563
- Check long string before allocating #3561
- Fixed incompatibility with ext-grpc #3542
- Revert unsafe optimization in memory profiling #3541
- Cap dependency name length to copied bytes #3538

### Internal
- Pre-reserve function name buffer #3445
- Use cached heap in alloc_prof_orig_* functions #3547

## AppSec
### Added
- Reduce cardinality of helper.connection_* #3586
- Added fallback on http.endpoint for schema sampler #3557

### Fixed
- Use abstract namespace on linux #3525
- Fix spurious munmaps in ZTS mode #3590

### Internal
- Improvements for appsec libxml2 usage #3564
- Improve xml parsing in appsec #3558
1.15.2 ## Profiler
### Fixed
- Revert unsafe optimization (#3541)
1.15.1 ## Tracer
### Fixed
- Fix panic after bailout in previous request #3537
Show complete changelog