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.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
1.15.0 2025-12-16 datadog_trace-1.15.0.tgz
1.14.1 2025-11-26 datadog_trace-1.14.1.tgz
Show all releases

Changelog

Version Message
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
1.15.0 ## All products
### Internal
- bump tracing-core from 0.1.33 to 0.1.35 #3516

## Tracer
### Internal
- Const-ify some logging thread-local variables #3513
### Fixed
- Avoid curl's `getenv` calls #3528
- `code_origin_for_spans_enabled` naming inconsistency #3494
- Add `NULL` guard clause in sidecar reconnect callback #3499

## Profiler
### Added
- Detect parallel threads #3515
### Changed
- Speedup hot path in allocator #3505
### Fixed
- Fixed asserting length of INI #3508

## AppSec
### Added
- Minify blocking json message #3502
- Add Custom Data Classification #3524
- Add metrics for extension connections #3527
### Fixed
- Amend string on request abort #3506
- Fix accessing to incorrectly hardcoded `$_GET` #3501
- Amend issue where `security_response_id` is being release before displaying it #3493
- AppSec helper: add send timeouts #3518
- Minor fixes and improvements to file descriptor reclamation #3526
- LaravelIntegration: be more defensive #3503
- Fix `duration_ext` metric #3507
- Fix segfault iterating mapping #3517
- Fix double end hook run/segfault when blocking in PHP 7.x #3490
- Fix `_iovec_writer_flush` and enforce limits on `$_POST` #3495
- Clear `client_ip` on `request_init` #3496
1.14.1 ## Profiling
### Fix
- Upgrade to libdatadog v24.0.2 #3492 #3498
Show complete changelog