Releases: DataDog/dd-trace-php
0.93.2
0.93.1
0.93.0
⛔ 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
- Set sampling priority using ddtrace_set_priority_sampling_on_root DataDog/dd-appsec-php#311
0.92.2
0.92.1
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
- Improve tracer state detection DataDog/dd-appsec-php#305
- Fix setting perdir INI setting for multiple ZAI config users #2277
0.92.0
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 settingdatadog.trace.sidecar_trace_sender=1
. It replaces the sending of traces through a dedicated thread.
- This functionality is currently experimental and guarded behind a configuration option
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
- Add default processors and scanners DataDog/dd-appsec-php#298
- Exchange more types between extension and helper DataDog/dd-appsec-php#299
- API security configuration settings DataDog/dd-appsec-php#300
Fixed
- Propagate Runtime IDs and keep a valid pool in the RC client DataDog/dd-appsec-php#301
Internal changes
- Add nginx container to integration tests DataDog/dd-appsec-php#294
- Upgrade WAF to 1.14.0 DataDog/dd-appsec-php#295
- Upgrade tracer to v0.91.0 and remove master build downloads DataDog/dd-appsec-php#296
- Upgrade ruleset to 1.8.0 DataDog/dd-appsec-php#302
- Merge appsec repository as subtree #2267
0.91.2
0.91.1
0.91.0
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 throughdatadog.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
- Add trusted IPs capability DataDog/dd-appsec-php#279
- Add extra_services configuration DataDog/dd-appsec-php#282
Fixed
- Ensure ddtrace is also enabled DataDog/dd-appsec-php#281
- Fix service name alias configuration DataDog/dd-appsec-php#293
Internal changes
- Add automated login events integration test for Laravel and Symfony DataDog/dd-appsec-php#270
- Upload suppressions and fix current ones DataDog/dd-appsec-php#280
- WAF upgrade to 1.13.1 DataDog/dd-appsec-php#292
- Send events even when limiter does not force manual keep DataDog/dd-appsec-php#290
- Update ruleset to 1.7.2 DataDog/dd-appsec-php#291
0.90.0
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
Fixed
Internal changes
- refactor(profiling): apply clippy suggestions #2141