Skip to content

Releases: DataDog/dd-trace-php

0.86.0

23 Mar 13:29
567c62c
Compare
Choose a tag to compare

Important: Enabling profiling on this release can crash if your code or any code dependencies use magic methods. Since this is difficult to determine, we recommend avoiding this release and moving to 0.86.1 or newer.

Added

  • Add MemcacheIntegration #1981
  • Add PSR18 tracing support in any PSR18 ClientInterface #1938
  • Collect HTTP POST Data and headers #1971

Fixed

  • Restrict backends on DBM propagation #1983
  • Allow for hooking of extended internal classes #1976

Internal changes

  • Include the circleci URL for 1.0.0-nightly installers #1977

Profiling (0.15.0)

Fixed

  • Fix issues when preloading and non-root php-fpm user are used #1975

Changed

  • perf: speed up stack walking by using function run_time_cache #1949

Internal changes

  • Fix system ini handling of invalid values in zai config #1982

Application Security Monitoring (v0.7.0)

Breaking Changes

Fixed

Added

Internal Changes

0.85.0

16 Mar 13:01
6ea2981
Compare
Choose a tag to compare

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

03 Feb 16:30
0dbf1c9
Compare
Choose a tag to compare

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

Fixed

Internal changes

0.83.1

18 Jan 20:53
1c4f968
Compare
Choose a tag to compare

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

  • Use the HttpWorker instead of the Psr7Worker for Roadrunner for more generic usage #1864
  • Fix trace_id reset in DDTrace\set_distributed_tracing_context() #1863
  • Work around broken enum functions run_time_cache on PHP 8.2.0 and 8.2.1 #1862

0.83.0

13 Jan 18:27
cec4cd7
Compare
Choose a tag to compare

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

  • Bump libdatadog to 1.0 #1825
  • Bump profiling version for release #1848

Internal changes

  • Fix compile time warnings when compiling without features #1819
  • Avoid putting .package-cache into the cache, commit Cargo.lock #1852

0.82.0

06 Dec 16:58
002e752
Compare
Choose a tag to compare

Added

  • PHP-8.2 support #1800
  • Add Elasticsearch 8 support #1808
  • Add a Roadrunner integration #1813

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

  • Avoid deprecated zend_atol on PHP 8.2 #1778
  • Retry docker images not starting in CI #1807

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

  • Add .ini support #1775.
  • Groundwork for allocation profiling #1794

Changed

  • Bump libdatadog to 0.9 #1782.
  • Bump env_logger to 0.9.3 #1804.

Internal Changes

  • Add troubleshooting to README #1761

0.81.1

03 Nov 12:22
34267c6
Compare
Choose a tag to compare

Fixed

  • Fix span limiter not being reset in long running processes #1785

0.81.0

02 Nov 11:19
811647a
Compare
Choose a tag to compare

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

  • Rate limiting support #1769
  • Add span stacks #1746

Changed

  • Stop collecting IP on tracer #1774
  • Amend wording when uninstalling datadog #1756

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

  • Fix in-tree compilation #1760
  • Reusability of zai config across products #1765

Profiling (v0.10.2)

Fixed

  • Prevent deadlocks when forking #1752
  • Fix linking on arm64 mac #1759

Application Security Monitoring (v0.4.4)

Added

0.80.0

28 Sep 14:18
c82659b
Compare
Choose a tag to compare

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

Internal changes

0.79.0

09 Sep 12:47
77e083b
Compare
Choose a tag to compare

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

  • Fix compilation on MacOS #1716
  • Deduplicate PHP 7 and PHP 8 source files #1722

Profiling (v0.10.0)

Added

  • Add Endpoint Profiling #1720

Internal changes

  • Extract C API module; refactor Uuid #1710