datadog_trace

APM and distributed tracing for PHP


The Datadog PHP Tracer brings APM and distributed tracing to PHP.

License: BSD 3-Clause

Latest releases

Version Release Download
0.77.0 2022-08-02 datadog_trace-0.77.0.tgz
0.76.2 2022-07-28 datadog_trace-0.76.2.tgz
0.76.1 2022-07-14 datadog_trace-0.76.1.tgz
0.76.0 2022-07-08 datadog_trace-0.76.0.tgz
0.75.0 2022-06-10 datadog_trace-0.75.0.tgz
Show all releases

Changelog

Version Message
0.77.0 ?? 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 to - 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 ### 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 ### 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 ### 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) Add g1a/composer-test-scenarios and symfony/flex to composer allow-plugin list #1647

### 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@e03ff23e5216f863061285e13170d011d0c04bc8 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
Show complete changelog