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.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
Show all releases

Changelog

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
Show complete changelog