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.11.0 | 2025-07-29 | datadog_trace-1.11.0.tgz |
1.10.0 | 2025-05-28 | datadog_trace-1.10.0.tgz |
1.9.0 | 2025-05-09 | datadog_trace-1.9.0.tgz |
1.8.3 | 2025-04-10 | datadog_trace-1.8.3.tgz |
1.8.2 | 2025-04-03 | datadog_trace-1.8.2.tgz |
Version | Message |
1.11.0 |
## All products ### Internal - Implement new SSI configuration telemetry #3301 ### Fixed - Treat opcache.jit=0 as JIT disabled #3337 ## Tracer ### Changed - Add knuth sampling formula #3281 - Add db.type to PDO integration #3350 ### Fixed - Fix dd_patch_zend_call_known_function on early PHP 8 versions on Windows #3326 - Fix DogStatsD client crash when endpoint is unreachable #3344 - Fix trailing ; in tracestate #3354 - Fix DD_TRACE_AGENT_URL panic without scheme and path #3358 ### Internal - Fixup the otel.env.invalid metric name #3284 - Bump the required rust version to 1.84.1 #3299 - Add redaction in autoload_php_file #3313 - Reduce telemetry sent #3316 - Adding telemetry for baggage propagation #3353 - Make max memory of sidecar configurable DataDog/libdatadog#1105 - Fix possible remote config deadlock DataDog/libdatadog#1161 ## Profiling ### Fixed - Fewer borrows, less panics on borrows #3295 - Validate opline before access #3319 - Do not call zend_jit_status() on affected versions #3356 - Revert to more stable hooking for allocation profiling #3361 ### Internal - Bump Rust version #3330 - Bump patch versions, drop indexmap #3338 ## Application Security Management ### Added - Truncate input #3250 - Implement ATO v2 functions #3263, #3315 - Schema extraction with DD_APM_TRACING_ENABLED=false #3269 - Parse authorization header #3279 - Add forwarded header and private IP #3345 ### Changed - Update SLO metrics #3239 - Update event obfuscation regex #3290 ### Fixed - Fix rate limiter #3331 ### Internal - Send some telemetry logs from the helper #3236 - Fix warnings on clang-tidy-17 #3287 - Upgrade boost to 1.86 #3289 - Upgrade waf #3323 |
1.10.0 |
## All products ### Added - Add injection information to phpinfo output for the SSI loader #3271 - Allow specifying datadog.loader.force_inject=1 in loader #3278 ### Fixed - Add missing dep to injected ddappsec #3252 - Filter SSI paths from installer ini paths #3275 ## Tracer ### Added - Add http status error configuration #3223 (Thanks @scott-shields-github) - Baggage span tags #3262 ### Changed - Avoid retrieving all the roots all the time in remote config DataDog/libdatadog#1069 ### Fixed - Fix Laravel error reporting #3185 - Fix crash with non-interned string in Trace attribute tags #3251 - Init ddtrace_coms_globals.tmp_stack #3256 (Thanks @junjihashimoto) - Enhance Guzzle integration to handle promise fulfillment state #3260 - Block signals for mysqli_real_connect too #3264 - Fix exception serialize arena cleanup #3272 - Handle stack-allocated execute_data but outside of stack allocated func #3273 - Fix WordPress integration hook handling for "static" and object methods #3274 ### Internal - Remove non actionnable telemetry logs #3270 ## Profiling ### Changed - Re-enable allocation profiling with JIT for PHP 8.4.7 #3277 ### Fixed - Fix borrow error in request shutdown #3247 - Fix crash in ZEND_INIT_ARRAY #3255 ### Internal changes - Add opcache tags in crash report #3231 - Use local_key_cell_methods #3248 ## Application Security Management ### Fixed - Use the ddtrace handle instead of dlopen(NULL) #3244, #3249 |
1.9.0 |
## All products ### Added - Update config telemetry to support stable config #3198 ## Tracer ### Added - Support DD_DOGSTATSD_HOST configuration #3167 - Add referrer hostname as span tag #3196 ### Changed - Capture key before first colon in DD_TAGS #3179 ### Fixed - Check server first before accessing in ddtrace_ip_extraction_find #3216 - Fix assumptions around interned strings on PHP 7.3 #3224 - Fix initial double remote config reading #3225, #3238 - Fix dropped trace payloads for the sidecar Datadog/libdatadog#1047 - Fix Windows VirtualProtect call #3229 ### Internal - Store debug symbols in the SSI archive #3217 ## Profiling ### Added - Configurable allocation sampling distance #3227 ### Changed - Accept auto as valid value for DD_PROFILING_ENABLED #3166 ### Fixed - Fix empty internal metadata #3228 - Follow PHP globals model in allocation profiler #3175 ### Internal changes - Bump libdatadog to version 18 #3229 ## Application Security Management ### Added - AppSec support for Frankenphp #3165 - Detection/blocking of SQL injections through libddwaf #3186 - Add RASP_SQLI remote config capability #3203 ### Fixed - Make Appsec blocking compatible with Laravel error handler #3110 |
1.8.3 |
## All products ### Fixed - Checks for more ioncube extension names in SSI loader #3204 ## Tracer ### Fixed - Fix crash due to double close of span #3202 ## Profiling ### Fixed - Disable allocation profiling when JIT is enabled on PHP 8.4 #3199 |
1.8.2 |
## Application Security Management ### Fixed - Bug collecting client IPs #3183 |