Changes
This release adds support to OpenTelemetry so that you can use the OpenTelemetry API to generate Datadog spans. This is off by default. Enable it with the environment variable `DD_TRACE_OTEL_ENABLED=1` or INI setting `datadog.trace.otel_enabled=1. Also, the tracer now generates 128 bits trace ids by default, in an effort to match OpenTelemetry standards.
## Tracer
### Added
- Set _dd.base_service when overriding service name for a span #2275
- OpenTelemetry API #2332
- Add tracing for curl_multi_exec() #2347
- CakePHP http.route implementation #2360
### Changed
- Enable 128-bit trace ID generation by default #2358, #2368
- Respect DD_LOGS_INJECTION default value #2365
- Completely avoid instrumenting the PSR NullLogger #2367
- Inject the _dd.dbm_trace_injected tag only when full propagation is enabled #2346
- Retain tracestate from tracecontext if extracted at all #2359
### Fixed
- Handle extra arguments for internal overrideArgs #2348
- Fix possible double-free with hooks on internal methods inherited by user classes #2372
- Fix crash with functions with no run_time_cache yet #2373
- Workaround php bug #81634 in PHP 8.0-8.1.0 #2353
- Fix PHP5: The Magento Integration is not part of PHP5 #2363
- Fix orphans removal when 128-bit is enabled #2366
- Use _dd.agent_psr instead of _dd.rule_psr for agent sampling #2370
### Internal changes
- Add xfail for Zend/tests/stack_limit/stack_limit_013.phpt on PHP 8.3 #2371
## Profiling
### Added
- Add idle phases to timeline #2343
### Fixed
- perf: increase allocation sampling distance #2350, #2364
### Internal changes
- add DD_PROFILING_WALLTIME_ENABLED for testing #2316