Releases: DataDog/dd-trace-php
0.78.0
Symfony integration partially broken
Some Symfony spans may be of service unnamed-php-service
instead of the proper service name. Under version 0.77.0 the behaviour is as expected.
Added
- Instrument pcntl_fork and reset tracing when it is called #1633 (Thanks @jlesueur)
- ARM64 support (Build arm images in CI) #1701
- ARM64 is supported for the tracer and the profiler now. Appsec has no ARM64 support yet.
Changed
- Accept pseudonym on via header as specified by rfc7230 #1696
- Add agent target URL to flush-message to help with debugging #1705
- Add IPv6 support to DD_AGENT_HOST #1707
Fixed
- Fix span memory leak and packaging #1697
- Fix datadog-setup.php failing in environments without scan directory #1702
- Fix random number generator usage #1704
- Set root span name only in HttpKernel::boot() to avoid side effects on CLI #1706
- Fix meta information loss in PDOIntegration #1708 (Thanks @frankdejonge)
Internal changes
- Update artifact URL for v0.77.0 gitlab deployments #1686
- Update relenv to use datadog-setup.php #1689
- Add arm support to docker images #1699
Application Security Monitoring (v0.4.0)
Fixed
- Fix interned string invalidation on PHP <= 7.2 DataDog/dd-appsec-php#99
- Replace
php_error_docref
withphp_log_err
DataDog/dd-appsec-php#101
Changed
- Log helper communication DataDog/dd-appsec-php#97
- Set environment values at rinit on php-fpm DataDog/dd-appsec-php#105
Internal changes
- Update development documentation DataDog/dd-appsec-php#98
- Update system tests with new variants DataDog/dd-appsec-php#102
- Add helper test for config DataDog/dd-appsec-php#108
- Fix missing helper header coverage DataDog/dd-appsec-php#109
- Upgrade integration test tracer version to 0.76.1 DataDog/dd-appsec-php#110
- Add a way to include local changes to the cmake build process DataDog/dd-appsec-php#111
- libddwaf upgraded to 1.4.0 DataDog/dd-appsec-php#116
Profiling (v0.9.0)
Added
- Add Unix Domain Socket (UDS) support #1698
Fixed
- Avoid PHP per-request interning #1700
Internal changes
- Add phpt tests for profiling #1690
0.77.0
Added
- Add single span ingestion mechanism #1628
- Add "recurse" => true option to hook/trace config array #1677
Changed
- Allow Symfony EventDispatcher::dispatch hooks to recurse #1678
Fixed
- Fix JIT compatibility under macOS #1661
- Fix -Werror=address-of-packed-member #1664
- Add support for ports on x-forwarded-for header #1675. Thanks, @estringana!
Internal changes
- Move to CentOS 7; begin adding profiling deps #1660
- Add profiling sources #1606
- Build and package datadog-profiling in CI #1663
- Fix profiler config in randomized tests #1682
Profiling (v0.8.0)
Added
- Add
process_id
andruntime_version
tags #1606. - Add support for changing env vars per request, such as per-directory env var settings in Apache #1606.
- Add fake frame when truncating stacks #1679. This way users can tell when the stack is truncated.
Changed
- Switch
<php>
to<?php
#1680 - Raise max stack depth to 512 #1681
- Enable CPU Time profile by default #1663. This can disabled by setting the environment variable
DD_PROFILING_EXPERIMENTAL_CPU_TIME_ENABLED
to0
,off
, orno
. - Change logging format #1606. Add a new log level
trace
, which is even more verbose thandebug
. - Stop sending a profile on every
phpinfo()
(or the equivalent command line option--ri datadog-profiling
) #1606
0.76.2
Fixed
- Check for datadog-profiling in startup only instead of inside a message_handler #1670. This fixes a possible crash when all of tracer, profiler and appsec are loaded.
- Add opcode shutdown handlers, fix integrations after repeated minit #1669. This fixes a crash when using reload on apache (sending SIGUSR1).
- (PHP 7) Fix curl wrapper use after free #1662. This fixes a possible crash when curl handles are manually released within destructors inside the PHP shutdown sequence.
- Fix -Werror=address-of-packed-member #1664
Internal changes
- Skip curl test if curl is not loaded #1668
Profiling (v0.7.2)
- Fix crash with SAPI env vars DataDog/dd-prof-php#46
- Avoid .message_handler due to upstream bug DataDog/dd-prof-php#47
0.76.1
0.76.0
Instrumentation partly broken with opcache
Note: If you are using opcache with PHP 7.3 or newer, it is advised to skip this version in favor of 0.76.1.
As part of a major refactor of our instrumenting code, we made ourselves incompatible with JIT (it will report an error that JIT will be disabled, but still work).
Additionally, with opcache active, a lot of user functions are not traceable anymore on PHP 7.3 and newer. This means that the resulting traces will be missing a lot of information.
Tracer
Added
Changed
- Filter x-datadog-tags for _dd.p. prefix and add DDTrace\add_distributed_tag #1618
- Rename query string obfuscation variable #1630
- Collect query string by default and obfuscate #1615
- Update regex to account for URL encoding #1622
- Update library versions used in tests + support plesk paths #1632
- Remove service name propagation #1635, #1636
- Add integration loaded output for deferred integrations on DD_TRACE_DEBUG=1 #1639
- Reduce memory footprint of strpprintf #1640
- New implementation for hooks #1617
- (PHP 5) Remove service name propagation and filter x-datadog-tags for _dd.p. prefix #1636
Fixed
- Fix crash with numerical value in $_SERVER array #1634
- Fix missing query string on http.url from integrations #1642
Internal changes
- Add link to compatibility requirements in README.md #1610
- Manually build PHP for randomized tests images #1616
- Eliminate PHP 5 references from master #1626
- Remove PHP 5 from CI and fetch it instead from the latest PHP-5 branch build #1624
- Fix test_web on PHP 8.0 #1631
- Add g1a/composer-test-scenarios and symfony/flex to composer allow-plugin list #1637
- (PHP 5) Run Wordpress testsuite actually against PHP 5 #1638
- Test debian bullseye instead of stretch in CI #1644
- Update rel env to use 0.75.0 (#1620)
- Disable clang format check in CI #1619
- Add one more allow-plugins in root composer.json #1646
- (PHP 5) Add g1a/composer-test-scenarios and symfony/flex to composer allow-plugin list #1647
Profiling (v0.7.0)
Changed
- Do not upload empty profiles. See DataDog/dd-prof-php@e03ff23 for details.
Fixed
- Fix a small memory leak with env var handling.
Added
- Add SAPI as profile tag.
- Add support for
DD_PROFILING_EXPERIMENTAL_CPU_TIME_ENABLED
env var. It previously supported this functionality under a different, undocumented name.
0.75.0
Tracer
Added
- Add a new decision maker mechanism #1598
- Rename DD_TRACE_X_DATADOG_TAGS_PROPAGATE_SERVICE to DD_TRACE_PROPAGATE_SERVICE #1612, #1613
- Add support for unix domain sockets #1601
- Add RedisCluster split by host #1602 (Thanks to @radykal-com)
- Add http.useragent to root span #1607
Fixed
- Fix #1582: *_id keys in meta and metrics are wrongly encoded #1599
- Fix dlerror logging format #1605
- Fix DD_TRACE_URL_AS_RESOURCE_NAMES_ENABLED accidentally guarding http.method and http.url as well #1608
Internal changes
- Fix downstream job trigger for deployments to rel-env #1597
- Update dd-trace-php link for reliability environment #1595
- Move request-replayer from our internal deprecated repository to dd-trace-php #1600
- Support restricting PHP versions while running randomized tests #1604
- Transition to non-legacy circleci images #1609
0.74.0
Tracer
Added
- Add configurations for retaining select query string parameters in resources and http.url #1566
Changed
- Respect autofinish on flush(), add warnings in debug mode when having unbalanced spans #1564, #1569
- Loose restrictions around distributed tracing context setting #1571
Fixed
- Fix dispatch resetting #1570
- Fix run_time_cache initialization for closure calls with foreign scope on PHP 7.4-8.1 #1578
- Eliminate the separate span id stack, fix distributed tracing trace_id #1586
- Fix handling of INI and ENV changes post minit, pre runtime #1593
- Fix inconsistent module load and unload sequence #1585
- Fix installer setting check for extensions #1584
Internal changes
- Pin composer on PHP 7 docker containers to version 2.2 #1565
- Disable flaky test on PHP 5.4 #1583
- Remove Symfony 4.2 from PHP 7.4 web tests #1587
- Add the scenario name to the randomized test docker name #1590
- Fix ownership of files within release artifact tars #1591
Profiling (v0.6.1)
Fixed
- Bump profiling to v0.6.1 #1588. This re-initializes static variables on startup/minit which may help prevent Apache reload from crashing.
- Enable profiling installation on PHP 8.1 #1576
Application Security Monitoring (v0.3.2)
Fixed
- Fix hybrid extension initialisation #92
0.73.0
Application Security Monitoring
Breaking Changes
- Rename ini settings from
datadog.appsec.rules_path
todatadog.appsec.rules
#74 - Interpret
datadog.appsec.waf_timeout
as microseconds rather than milliseconds #74
Fixes
- Add obfuscator strings when initialising WAF from client settings #83
- Fix relative module order with ddtrace on PHP 7.3 issue #88 - #86
Additions
- Add WAF metrics and errors to traces #79
- Actor IP resolution from request headers #80
- Add support for WAF event obfuscator #82
- Add obfuscator regex for values #84
Miscellaneous Changes
0.72.0
Added
- Add support for memcached on PHP 8 #1558
Fixed
Internal changes
- Add gdbinit files for php 8.0 and 8.1 #1556
- Add system tests in CI #1552
- Use latest 8.0.17 in buster images #1559
- Update flex to v1.18.5 in composer.lock files for Symfony 4.0 and 5.0 #1560
- Add a single test to xfail after upgrade of docker image to 8.0.18 #1561
- Update link to download 0.71.1 in the reliability environment #1555
0.71.1
⚠ This release fixes a critical issue in this library that exists for PHP 8.1.4+ and PHP 8.0.18+ ⚠
Fixed
- Use -1 as uninitialized op_array_extension marker #1550 (thanks @blazarecki for the report)