Skip to content

Releases: DataDog/dd-trace-php

0.93.2

13 Nov 13:12
Compare
Choose a tag to compare

Tracer

This release fixes a bug in the PDO integration (cf #2351). Please do not use previous 0.93.x versions

Fixed

  • [PDO] injectDBIntegration should be public. #2351

0.93.1

31 Oct 17:46
db7c775
Compare
Choose a tag to compare

⛔ This release contains a bug when using PDO (cf #2351).
Please use 0.93.2 instead

Tracer

Fixed

  • Reset distributed context on request init #2340. Fixes a bug introduced in 0.93.0

0.93.0

30 Oct 11:07
93664fd
Compare
Choose a tag to compare

⛔ This release contains a bug where some spans would report to previous traces and an issue with the PDO integration.
Please use 0.93.2 instead

This release adds support for PHP 8.3 for the tracer and the profiler. Please be aware that we are currently building against PHP 8.3.0 RC3.

Tracer

Added

  • Add Magento 2 Integration #2274
  • Support for PHP 8.3 #2098, #2282
  • Add a configuration flag to disable laravel queue distributed tracing #2304
  • Laminas RESTful methods handling #2322
  • Expand arrays in meta and metrics into nested-tag format #2302, #2333
  • Report extensions used in telemetry #2295

Changed

  • Redis Span Removal and Priority Sampling Orphans Cleanup #2306
  • Subclass SpanData with RootSpanData #2309
  • Refactor tightly coupled extraction state #2314

Fixed

  • Propagate env to telemetry #2313
  • Fix ZAI config handling for .htaccess with php-fpm #2298
  • Explicitly drop dd.p.dm if provided in propagated tags when the incoming sampling priority is reject #2310
  • Strictly validate dd.p.tid #2303
  • Fix PHP 5: The Drupal integration is not part of PHP 5 #2326
  • Avoid %.*s in places where longer strings are used #2330
  • Respect service mapping when propagating for DBM #2321
  • Specify the odbc driver in db.system and exclude the Ingres driver from DBM #2334
  • Fix daemonization of sidecar closing stderr properly DataDog/libdatadog#271

Profiling

Added

Fixed

  • neighboring extension handling in gc_mem_caches() #2297
  • panic after shutdown of forked child when USE_ZEND_ALLOC=0 #2301
  • fix typo in info log message #2307
  • sampling distance in exception profiling #2323
  • reuse thread RNG and poisson sampler #2320

Internal changes

  • fix reliability environment deployment #2289
  • upgrade to libdatadog v5 #2299
  • add memory benchmark #2319
  • fix flaky exception correctness test #2331

Application Security Management (0.14.3)

Fixed

0.92.2

06 Oct 15:46
d1546b6
Compare
Choose a tag to compare

Application Security Management (0.14.2)

Fixed

0.92.1

02 Oct 13:17
548306b
Compare
Choose a tag to compare

Tracer

Fixed

  • Handle UnwindExit in sandbox error reporting #2288
  • Add a safeguard nullcheck for the sidecar into telemetry reporting #2293

Profiling

Fixed

  • Do not leak module entry on purpose #2291
  • Fix allocation profiling shutdown with USE_ZEND_ALLOC=0 crashing #2294

Application Security Management (0.14.1)

Fixed

0.92.0

26 Sep 17:35
14ec354
Compare
Choose a tag to compare

This release adds experimental exception profiling to the profiler. This is off by default. Enable it with the environment variable DD_PROFILING_EXPERIMENTAL_EXCEPTION_ENABLED=1 or INI setting datadog.profiling.experimental_exception_enabled=1.

In Application Security Management, this release introduces the latest version of the WAF v1.14.0 and the latest ASM ruleset v1.8.0, as well as a fix to ensure runtime IDs reported by the remote configuration client are always valid and consistent with those reported by the Tracer.

Tracer

Added

  • Add Drupal Integration #2188
  • Implement sidecar tracing #2234
    • This functionality is currently experimental and guarded behind a configuration option DD_TRACE_SIDECAR_TRACE_SENDER=1 or INI setting datadog.trace.sidecar_trace_sender=1. It replaces the sending of traces through a dedicated thread.

Fixed

  • Do not emit a deprecated diagnostic for DD_LOGS_INJECTION #2253
  • Set peer.service as dddbs when available #2260
  • Fix toggling datadog.trace.enabled with perdir configuration #2269
  • Enable auto flush for artisan commands #2270

Internal changes

  • Keep doctrine/dbal to major version 2 in symfony 5.2 tests #2254
  • docs: Explain minimum and nice-to-have from LLVM #2264

Profiling

Added

  • Add exception profiling #2197, #2262
  • Do not disable allocation profiling on fixed PHP versions with active JIT #2246

Fixed

  • Add missing end_timestamp_ns to string compilation event #2251
  • store customized heap #2261
  • remove “BETA” in datadog-setup.php as the profiler is not beta anymore #2278
  • use-after-free with Closure trampolines #2280

Internal changes

  • add tests for timeline #2192

Application Security Management (0.14.0)

Added

Fixed

Internal changes

0.91.2

14 Sep 16:33
67d0ca8
Compare
Choose a tag to compare

Tracer

Fixed

  • fix: Use DD_SERVICE if available (Laravel) #2256

0.91.1

08 Sep 16:57
2e9e3b7
Compare
Choose a tag to compare

Profiling

Fixed

  • detect an uninitialized runtime cache #2250

0.91.0

06 Sep 16:42
7a50d6f
Compare
Choose a tag to compare

⚠️ Important: If you are using the profiler please update to 0.91.1 to avoid a possible crash (see #2250 for more information).

Summary

This release adds:

  • an enhanced WordPress integration, which can be enabled through datadog.trace.wordpress_enhanced_integration=1 in INI. Even more extensive span collection can be enabled through datadog.trace.wordpress_callbacks=1. Feedback is welcome - just open a new issue with your thoughts!
  • Agent sampling as described in our public documentation. This will allow an automatic control of sampling rates allowing to reduce the traffic sent to Datadog while keeping most important spans.

Added

  • Add automated login events to Wordpress #2162
  • Enhance the WordPress Integration #2126
  • Implement agent sampling #2223
  • Add Laravel 9.X & 10.X tests #2237
  • Add http.route to laravel #2204 #2241

Fixed

  • (Legacy OpenTracing API) Check if the active span has a parent #2177
  • Handle killed workers and change root span initialization in the integrations #2176
  • fix: add Symfony command's exception to the root span #2194
  • Fix #2174: Can't pass less args to an untyped function than originally passed #2227, #2243
  • Fix #2232: Add Cargo.lock to pecl #2233
  • fix: wrong service name on some laravel.event.handle spans #2235
  • fix: PHP7 compatibility in logs correlation #2236
  • Store library_dependencies in memfd, referenced via /proc/self/fd/X DataDog/libdatadog#221
  • fix datadog-setup.php when INI file is a symlink #2242
  • update webpki and other dependencies #2247

Internal Changes

  • Add log levels #2158
  • Add zai_option_str and use it in config #2205, #2213
  • Refactor zai_string_view APIs and use them more #2203
  • Rename zai_string_view to zai_str #2206, #2207, #2212
  • Require zai_str.ptr to not be null #2214
  • Add zai_string and use it in zai_config #2217
  • Fix tests: allocate less TLS space by putting uhook HashTables into module globals #2219
  • Add sidecar metrics into their own namespace, fix seq id DataDog/libdatadog#220

Profiling

This release reduces CPU overhead to collect stacks, and also reduces overhead when services are idle or partially idle. It also reduces the average amount of memory used.

Added

  • attach fiber's function name as a label #2169

Fixed

  • enable allocation profiling only if profiling is enabled #2185
  • enable timeline only if profiling is enabled and lower overhead when disabled #2189
  • fix empty profiles with timeline due to end_timestamp_ns unit being set #2244

Internal changes

  • perf: speed up stack walking by using function run_time_cache #1998, #2182
  • perf: only wake every 10ms if PHP is serving a request #2168
  • refactor: extract ZaiStringView::to_string #2175
  • build: update Cargo.lock #2183
  • refactor: simplify string tables #2186
  • perf: use u32 instead of usize for string table indices #2187
  • test: add Datadog\Profiling\trigger_time_sample #2201
  • build: Update to Rust 1.71 / LLVM 16 #2208
  • Bump libdatadog to v3.0.0 #2210
  • fix(profiling): clippy lints #2215
  • style(profiler): use let-else syntax #2216
  • build(profiling): bump dependencies including libdatadog v4.0.0 #2228

Application Security Management (0.13.1)

Added

Fixed

Internal changes

0.90.0

17 Jul 11:28
ec17a97
Compare
Choose a tag to compare

This release adds logs correlation and telemetry support:

  • Used configurations, libraries and integrations will be collected. This may be disabled with DD_INSTRUMENTATION_TELEMETRY_ENABLED=0.
  • Logs written by common logging libraries will be attached metadata about the trace and span the log line was generated in. This may be disabled with DD_LOGS_INJECTION=0.

Added

  • Add Logs Correlation #2118
  • Add network destination name to http client spans #2134
  • Add peer.service to Mysqli instrumentation #2142
  • Add peer.service to PHPRedis instrumentation #2152
  • Add peer.service to PDO instrumentation #2148
  • Add peer.service to SQLSRV instrumentation #2155
  • Add peer.service to Mongodb instrumentation #2147
  • Add peer.service to Memcached clients instrumentation #2145
  • Add peer.service to http client instrumentations #2134
  • Add automated login events to Symfony #2132 #2146
  • Opt-in to flat service names #2163

Changed

  • Move all integrations to deferred loading #2153
  • Reflect changes to datadog.version and datadog.env in existing spans #2165
  • Evaluate the service name after the service mapping for a sampling decision #2166

Fixed

  • Add invalid regex handling for sampling rules #2160

Internal Changes

  • Add SpanData::peerServiceSources #2130
  • Handle peer.service-related post-process in the extension #2135
  • Enable instrumentation telemetry by default #2153
    • With this change, a new datadog-ipc-helper process will be started alongside the application. This process will be in charge of collecting telemetry and will take over more responsibilities in upcoming releases.

Profiling

Added

  • doc(profiling): make phpinfo() output more helpful #2144
  • timeline: add eval() timings #2150

Fixed

  • Explicit shutdown allocation profiling on fork() #2149
  • Optimize event timestamp for timeline #2157

Internal changes

  • refactor(profiling): apply clippy suggestions #2141