Skip to content

Releases: DataDog/dd-trace-php

0.78.0

24 Aug 11:58
8ffb855
Compare
Choose a tag to compare

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

Changed

Internal changes

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

02 Aug 21:20
a76f1e4
Compare
Choose a tag to compare

⚠️ The tracer and profiling packages for PHP 7 and 8 are built on CentOS 7. These packages will not run on older GNU Linux versions like CentOS 6, Debian 7, and Ubuntu 12.04.

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 and runtime_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 to 0, off, or no.
  • Change logging format #1606. Add a new log level trace, which is even more verbose than debug.
  • Stop sending a profile on every phpinfo() (or the equivalent command line option --ri datadog-profiling) #1606

0.76.2

28 Jul 14:54
f92fd59
Compare
Choose a tag to compare

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)

0.76.1

14 Jul 19:43
f10f862
Compare
Choose a tag to compare

apache reload will cause crashes

Please upgrade to 0.76.2, if you get crashes with apache with versions 0.76.0 or 0.76.1.

Fixed

  • Bump PHP minimum version in PECL #1652
  • PHP 7.3+ Fix compatibility with opcache #1656

Internal changes

  • %d resource ids in language tests #1657

0.76.0

08 Jul 14:27
1b1af11
Compare
Choose a tag to compare

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

  • Add B3 headers injection and extraction #1629
  • Collect http.client_ip #1621

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

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

10 Jun 17:39
2c5dc18
Compare
Choose a tag to compare

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

12 May 13:11
7e112e4
Compare
Choose a tag to compare

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

27 Apr 17:41
af7719d
Compare
Choose a tag to compare

Application Security Monitoring

Breaking Changes

  • Rename ini settings from datadog.appsec.rules_path to datadog.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

  • Update installer links in documentation and tests #76
  • Add parameter_view for non-ownership of WAF parameters #78
  • Accept IP list on X-Cluster-Client-IP header #81
  • Update ruleset to v1.3.1 #82
  • libddwaf upgraded to v1.3.0 #82
  • Update installation instructions #84

0.72.0

07 Apr 12:20
20236f9
Compare
Choose a tag to compare

Added

  • Add support for memcached on PHP 8 #1558

Fixed

  • Fix #1544: Handle hook dummy span hack when assigning parent #1557

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

31 Mar 15:01
4ba8218
Compare
Choose a tag to compare

⚠ 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)

Internal changes

  • Use latest ubuntu images in CI #1543
  • Use 8.1.4 in development buster images #1553
  • Add randomized tests for PHP 8.1 and make buster containers arm64 ready #1551
  • Remove regressions from randomized tests #1547