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.13.0 | 2025-09-30 | datadog_trace-1.13.0.tgz |
1.12.1 | 2025-09-12 | datadog_trace-1.12.1.tgz |
1.12.0 | 2025-08-27 | datadog_trace-1.12.0.tgz |
1.11.0 | 2025-07-29 | datadog_trace-1.11.0.tgz |
1.10.0 | 2025-05-28 | datadog_trace-1.10.0.tgz |
Version | Message |
1.13.0 |
## Tracer ### Changed - Reduce integrations overhead #3380 - Avoid unnecessary gc_collect_cycles if there's no open span #3428 - Make use of fast_shutdown to avoid freeing overhead #3429 - Optimize PDOIntegration::parseDsn() #3430 ### Fixed - Fix #3135: Force flushing on shutdown of entry point processes #3398 - Support curl_multi_exec root spans #3419 - Fix a couple memory leaks #3420 ## Profiling ### Added - Add source code integration #3418 ### Fixed - Fix missing line numbers #3417 - Early init default connector to fix env var race #3432 ### Internal - Refactor tag handling #3423 - Permanently enable compilation of allocation, exception, and timeline features #3431 |
1.12.1 |
## Tracer ### Fixed - Fix double free at sidecar connection (#3407) - Fix crash with freed resource (#3402) - Fix invalid user headers injection (#3403) - Exclude /vendor from code origins (#3399) |
1.12.0 |
## All products ### Internal - Add injection metadata fields to telemetry forwarder #3359 ## Tracer ### Added - Add http.route tag to SymfonyIntegration.php #2992 - Add setting to avoid obfuscating mongodb queries #3390 - Handle native HTTP requests #3366 ### Changed - Expose curl_multi_exec_get_request_spans() as non-internal #3389 - Use resources_weak_* API for Curl as well #3386 - Gracefully handle sidecar broken pipes #3370 - Enable log injection by default #3355 ### Fixed - Capture the stack for log probes #3367 - Properly cache the telemetry cache #3387 - Fix names of global git tags for debugger #3377 - Fix SQLSRVIntegration resource handling #3379 - Set DD_APPSEC_RASP_ENABLED default to true as on the tracer #3374 - Fix top Code Origin frame for ExecIntegration and KafkaIntegration #3392 ### Internal - Update baggage telemetry typo #3382 - Switch to bookworm containers #3375 ## Application Security Management ### Added - Add fingerprint capabilities #3371 - Implement jwt #3352 ### Fixed - Fix musl appsec helper shutdown crash #3378 ### Internal - Fix submission of telemetry logs from appsec #3373 |
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 |