APM and distributed tracing for PHP
The Datadog PHP Tracer brings APM and distributed tracing to PHP.
License: BSD 3-Clause
| 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 |
| 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 |