Releases: DataDog/dd-trace-php
0.85.0
Added
- Add hooking for Closures #1904
- Add hooking for abstract methods #1914
- User tracking through DDTrace\set_user #1910
- Add a DDTrace\generate_distributed_tracing_headers() function #1905
- Add HookData->overrideArguments() method to replace arguments in a pre-hook #1937
- Add Database Monitoring Integration #1941
- Add Custom Instrumentation Documentation #1942, #1963
- Add DD_TRACE_HOOK_LIMIT #1965, #1968
Changed
- Add IPv6 support to DD_AGENT_HOST #1707
- Add an error.stack to curl_exec() on failure #1934
- Add db.system tag to all relevant integrations #1912
- Slightly reword the exception message to use Caught and Uncaught only at top-level #1954
- Inherit version, env and _dd.origin from parent span #1960
Fixed
- Fix automatic injection of w3c headers #1917
- Fix observing the attribute constructor on old PHP 8.0 and 8.1 versions #1953
- Use ZEND_TLS/TSRM_TLS macros instead of __thread to only use thread local storage in ZTS builds #1959
- Ensure that internal functions we trace in our integrations are always traced under JIT #1966
Internal changes
- Build alpine using 3.17 #1922
- Enable shared JSON in PHP 7.4 image #1929
- Cleanup _asan usages in Makefile #1964
- Reduce flakiness from docker containers not starting properly #1962
- Add Zend Framework v1.21 integration test #1944, #1961
- Set coredump_filter to include private file mapped areas in dumps #1935
Profiling (0.14.0)
Fixed
- Use checked_sub duration ops for handling cpu time #1926, #1928
- Mask Zend Signals in profiling threads #1927
- Do not block indefinitely in mshutdown #1932, #1967
Changed
- perf: increased allocation sampling distance to 512KiB #1913
- perf: optimize prepare_sample_message #1952
- Add IPv6 support to DD_AGENT_HOST #1707
Internal changes
- build: move to Rust v1.64, Alpine 3.17 #1922, #1930
- perf: use numbers instead of numeric strings in pprof labels #1831
- chore: upgrade libdatadog to v2.0.0 #1831
- update Cargo.lock #1907
- refactor: cleanup add/remove interrupts #1906
- refactor: cleanup stalk walking #1908
- refactor: cleanup after Rust 1.64 upgrade #1931
- refactor: extract thread_utils module #1943
- refactor: extract uploader, promote profiling.rs to directory #1946
- refactor: extract stalk walking code #1947
- refactor: extract interrupt manager #1948
0.84.0
Added
- Add component tag #1834
- Add W3C tracecontext propagation and propagate full 128 bit B3 headers #1856
- Implement #[DDTrace\Trace] attribute #1867
- Add 128-bit trace id generation and propagation via _dd.p.tid #1875
- Allow IP Collection, disabled by default #1895
- Add support for tracing Dispatched Events in Laravel 5.8+ #1897 (Thanks @ralphschindler)
Changed
- Show error message when PDO returns an error #1839
Fixed
- Make active_stack infallible: there always exists a stack #1883
- Fix DDTrace\flush() with DD_AUTOFINISH_SPANS=1 #1892
- Null the parent span of span stacks when resetting the tracer #1899
Internal changes
- style(datadog-setup.php): reformat file #1869
- refactor(datadog-setup.php): cleanup PhpStorm warnings #1870
- Add test Wordpress 6.1 application #1884
- Revert bogus revert commit #1888
- Add apt update before fetching codecov dependencies #1893
- Fix running CI in external PRs #1898
- Add Symfony 6.2 testsuite #1900
- Add exported function to close all spans and flush #1902, #1901
Profiling (0.13.0)
This release adds new profile types: allocation size and allocation samples. They are off by default. Enable them with the environment variable DD_PROFILING_EXPERIMENTAL_ALLOCATION_ENABLED=1
or INI setting datadog.profiling.experimental_allocation_enabled=1
.
Added
Fixed
Changed
Internal changes
- docs: wall-time and cpu-time #1850
- refactor: fix clippy::too_many_arguments #1871
- tests: Add test for the fix in #1885 #1887
Application Security Monitoring (v0.6.0)
Added
- Add zai config DataDog/dd-appsec-php#114
- Replace actor.ip with http.client_ip DataDog/dd-appsec-php#128
- PHP 8.2RC support DataDog/dd-appsec-php#151
- Generate IP on appsec DataDog/dd-appsec-php#155
- Support PHP 8.2 Release DataDog/dd-appsec-php#166
- Login and custom event SDK DataDog/dd-appsec-php#174
- Update SDK with separate success/failure functions DataDog/dd-appsec-php#177
Fixed
- Return error response in helper when incoming message can't be adequately handled DataDog/dd-appsec-php#120
- Avoid creating log file as root DataDog/dd-appsec-php#124
- Reset context on shutdown DataDog/dd-appsec-php#130
- Handle errors on request_shutdown DataDog/dd-appsec-php#132
- Avoid regenerating ip when multiple headers are already present DataDog/dd-appsec-php#170
Internal changes
- Upgrade WAF to 1.5.0 and ruleset to 1.4.0 DataDog/dd-appsec-php#117
- Update ip extraction module DataDog/dd-appsec-php#125
- Make test use latest version of ddtrace 0.79.0 DataDog/dd-appsec-php#129
- Update ddtrace-basic test to be compatible with older tracers DataDog/dd-appsec-php#142
- Fix package / release build DataDog/dd-appsec-php#152
- Update LLVM script DataDog/dd-appsec-php#153
- Fix package build DataDog/dd-appsec-php#172
- WAF upgrade to 1.6.0 and ruleset to 1.4.2 DataDog/dd-appsec-php#175
- Upgrade deprecated actions and ruleset to 1.4.3 DataDog/dd-appsec-php#176
0.83.1
Infinite Loop
Please use version 0.84.0 or newer. This version contains a bug, sometimes leading to an infinite loop during sending of traces.
Fixed
0.83.0
Infinite Loop
Please use version 0.84.0 or newer. This version contains a bug, sometimes leading to an infinite loop during sending of traces.
Added
Changed
- Change error.msg to error.message #1821
- Change process_id to metrics tag #1826
- Remove libexecinfo on Alpine #1838
- Always interpolate error message placeholders to avoid confusion #1849
Fixed
- Fix installer name in help output in datadog-setup.php #1829
- Fix #1828: crash when copying an immutable array #1832
- Fix CodeIgniter integration to not depend on CI_Controller class #1835
- (PHP 7) Fix memory leak with custom CURLOPT_READFUNCTION #1841
- Support custom ini names in installer #1846, #1851
- Clear the active closed stack head when resetting the tracer #1853
Internal changes
- Speed up "Attaching workspace" step in CI #1823
- Improve test suite flakiness & randomized asan #1817
Profiling (0.12.0)
Added
- Add configuration to save profiles to disk #1837
Changed
Internal changes
0.82.0
Added
Changed
- Change system.pid to process_id #1796
Fixed
- Extract priority sampling whenever is string or int #1789
- Fix crash during preloading on 8.1+ #1799
- Fix $integration->setError() to also accept \Error instances #1802
- Fix ZEND_CATCH chaining logic #1803, #1814
- Fix misbehaviour with 256+ hooks on a same function #1809
- FIX PSR-4 autoloading in ComposerBootstrap class #1816 (Thanks @ls-youssef-jlidat)
- Fix dropped spans causing an infinite loop #1818
Internal changes
Profiling (0.11.0)
Profiling is now installed and enabled when --enable-profiling
is passed on the installer. Previously it was installed but not enabled. This removes one step in onboarding as the environment variable DD_PROFILING_ENABLED no longer needs to be set to 1, which can be difficult in some situations. The recommended way to configure profiling is to use .ini settings, which is generally easier.
Added
Changed
Internal Changes
- Add troubleshooting to README #1761
0.81.1
0.81.0
Traces disappearing
We have an issue causing span counters to not be reset properly after a flush. Thus the span limit of 1000 being reached, and then hooks not being executed anymore. This impacts long-running CLI processes only.
It is advised to stay on 0.80.0 until we have released 0.81.1.
Added
Changed
Fixed
- Guzzle Integration not initialized correctly #1762.
- Do not create root spans for certain Symfony methods #1771. Thanks, @radykal-com!
- ldconfig not found by installer #1773
- Fix crash in ddtrace_curl_multi_get_gc #1779
Internal changes
Profiling (v0.10.2)
Fixed
Application Security Monitoring (v0.4.4)
Added
- Generate ip and duplicate ip headers on appsec DataDog/dd-appsec-php#141
0.80.0
Changed
- Make sampling priorities public API again #1742
Fixed
- Fix behaviour of return false in trace hooks #1749
- Handle non-binaries in installer #1743
- Fix mishandling of payload size limit #1750
Profiling (v0.10.1)
Fixed
- Match the service names of the tracer when unset or empty #1733
- Avoid crashing when pcntl_fork is called #1745
Application Security Monitoring (v0.4.3)
Fixed
- Return error response in helper when incoming message can't be unpacked DataDog/dd-appsec-php#120
- Avoid creating a log file during MINIT/MSHUTDOWN DataDog/dd-appsec-php#124
- Handle helper errors gracefully DataDog/dd-appsec-php#127
- Reset context on shutdown DataDog/dd-appsec-php#130
- Handle errors on request shutdown DataDog/dd-appsec-php#132
Internal changes
- Enable CI on all relevant branches DataDog/dd-appsec-php#123
0.79.0
Added
- Integrate with Symfony console commands #1724
Changed
Fixed
- Fix #1709 appsec attempting to load erroneously #1711
- Fix symfony service and root span name #1723 (Thanks @numyx)
- Initialize hooks and config early to prevent conflicts with code executed in early startup #1726
- Fix hook dynamic data zeroing when new hooks are added during hook execution #1730
Internal changes
Profiling (v0.10.0)
Added
- Add Endpoint Profiling #1720
Internal changes
- Extract C API module; refactor Uuid #1710
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