Skip to content

Releases: DataDog/dd-trace-php

0.87.2

19 May 13:11
8578f89
Compare
Choose a tag to compare

Application Security Management (0.8.1)

Fixed

0.87.1

16 May 10:54
a3bb5f4
Compare
Choose a tag to compare

This bugfix release fixes a regression introduced in 0.87.0, causing 4xx responses from Laravel to be marked as errors.

Fixed

  • Fix opline being replaced by ZEND_HANDLE_EXCEPTION in uncaught finally on PHP 7 #2052
  • Won't set 4xx errors on Laravel root span every time an Exception is caught #2053

0.87.0

12 May 10:04
d0d60c5
Compare
Choose a tag to compare

Added

  • Add config mode to datadog-setup.php #1951
  • Add file hooking to DDTrace\install_hook #1989
  • Allow DDTrace\install_hook to take any callable #1991
  • Add Laminas integration #1990
  • Add php-amqp integration #1996
  • Add Laravel Queue integration with Span Links #2026
  • Add SQLSRV Integration #2031
  • Implement replacing of return values #2018

Changed

  • Allow for consuming an array via DDTrace\consume_distributed_tracing_headers #2010
  • Allow DDTrace\install_hook to take any callable #1991
  • Do not force cycle collection at runtime on flush by default #2046

Fixed

  • Add fixes for parametric testsuite #1988
  • Fix exceptions and errors in auto_prepend_file #1987
  • [Yii] Do not use module property if it doesn't exist #1999
  • Load API files relative to the ComposerBootstrap.php instead of the ddtrace autoloader #2013
  • Avoid side effects from errors within the sandbox #2015
  • Prevent execution of install_hook() hooks after disabling tracer #2016
  • Fix install_hook on functions returning by-reference #2017
  • Fix #2012: Remove PHP 7-only types from signatures #2021 Thanks, @jmakuc, for reporting the issue.
  • Ensure internal server errors are set on the root span in Laravel #2026
  • Starting multiple traces in parallel does not confuse the limiter #2026
  • Fix #2030: Segmentation fault with autoloaders bailing out #2037 Thanks, @NickStallman, for reporting the issue.
  • Possible segfault when instrumenting curl_setopt() in PHP 7 #2039
  • Fix resolving hooks within files declaring many functions on PHP 7.2 - 8.1 #2045

Internal changes

  • Increase the number of configuration entries in zai config #2020
  • Reduce the allocated heap size of the elasticsearch7 container #2040

Profiling

The profiling version number is now in sync with the tracer for stable releases.

Changed

  • Sync profiling version number with tracer #1992
  • refactor: move upscaling to libdatadog #1984
  • perf: raise sampling distance for allocations to 2048 KB #2036

Fixed

  • Fix crashes when allocation sampling occurs in certain places #2039

Internal changes

  • add test to ensure we do not crash with fibers #2003
  • add stack walking test #2034

Application Security Management (0.8.0)

Fixed

Added

Changed

Internal Changes

0.86.3

06 Apr 08:41
4356321
Compare
Choose a tag to compare

Application Security Monitoring (0.7.2)

Fixed

0.86.2

04 Apr 14:41
950cfd6
Compare
Choose a tag to compare

Fixed

  • [Tracer][YII] Do not use module property if it doesn't exist #1999

Application Security Monitoring (0.7.1)

Fixed

0.86.1

30 Mar 19:12
fbe276f
Compare
Choose a tag to compare

Profiling (0.15.1)

Fixed

  • Fix crash by reverting "perf(profiling): speed up stack walking by using function run_time_cache" #1994. Thanks, @zeroxs for reporting.

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