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.78.0 2022-08-24 datadog_trace-0.78.0.tgz
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
Show all releases

Changelog

Version Message
0.78.0 ### Added
- Instrument pcntl_fork and reset tracing when it is called #1633 (Thanks @jlesueur)
- ARM64 support (Build arm images in CI) #1701

### 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

### 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` with `php_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
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.
Show complete changelog