Skip to content

Releases: DataDog/dd-trace-php

1.17.1

03 Apr 19:52
42c7c25

Choose a tag to compare

All products

Fixed

Internal

  • Changed defaults of configurations and fixed DD_TRACE_HTTP_CLIENT_ERROR_STATUSES #3621, #3677

Tracer

Fixed

  • Fix _dd.p.ksr scientific notation for very small sampling rates #3721
  • Fixed shell_exec() null return being interpreted as error #3723
  • Batch endpoint collection & remove Wordpress Endpoint collection #3764
  • Fix sidecar performance by batching ack sending & consumption DataDog/libdatadog#1835

Profiler

Fixed

  • Fix crash due to AAS getenv #3746

Internal

  • Update libdatadog to v30.0, make CA root optional for profiling #3758

1.17.0

24 Mar 13:10
a1bb038

Choose a tag to compare

Warning

This version may have performance issues with Symfony, Laravel or Wordpress. Please use 1.17.1 instead.

All products

Changed

  • Cache system getenv calls for improved request initialization performance #3670

Fixed

  • Fix zombie creation in loader #3683

Internal

  • Changed defaults of configurations and fixed DD_TRACE_HTTP_CLIENT_ERROR_STATUSES #3621, #3677

Tracer

Added

  • Collect framework endpoints for Symfony, Laravel, and WordPress #3548
  • Add sidecar thread mode as fallback connection for restricted environments #3573
  • Add process_tags #3580, #3582, #3627, #3658, #3706, #3709
  • Add _dd.p.ksr propagated tag for Knuth sampling rate #3701
  • Add container tags support for DBM correlation #3708

Changed

Fixed

  • Poll for new remote config after unblocking SIGVTALRM #3717
  • Fix crash during shutdown in FrankenPHP #3662
  • Fix possible race condition leading to crash on sidecar reconnect in ZTS mode #3655
  • Fix possible crash in end hook of traced closure #3624
  • Fix hook is_internal being backwards #3625
  • Enforce span limit in curl_multi_exec and DDTrace\start_span code paths #3691
  • Prevent dangling tracked_streams #3689
  • Fix debugger ephemerals handling for nested log probes #3685
  • Block sidecar notification signal during sleep to prevent premature wakeup #3656
  • Fix sidecar permission denied with IIS AppPools DataDog/libdatadog#1776
  • Cleanup limiters on sidecar shutdown DataDog/libdatadog#1659
  • Fix function and type name ordering in debugger DataDog/libdatadog#1715

Profiler

Added

  • Add I/O profiling support for macOS #3648
  • Add process_tags to profiler uploader #3609
  • Improve time sample accuracy by also gathering during allocation samples #3559

Fixed

  • Store and restore errno in I/O profiling wrappers #3654

Internal

  • Add internal metrics for profiling overhead #3616
  • Avoid copy of function name when already UTF-8 encoded #3700
  • Use libdd-profiling's ThinStr for function names #3631
  • Shrink maximum file and function name length to 16,383 characters #3712
  • Refactor ErrnoBackup::new is safe #3659
  • Remove once_cell as a dependency #3607

AppSec

Added

  • Support parsing partial JSON #3680
  • Enable LLM event observability for OpenAI PHP client #3664

Changed

  • Revert DD_APPSEC_ENABLED to runtime config #3598

Fixed

  • Send response headers on meta even without event #3653

Internal

  • Rewrite AppSec helper in Rust #3581
  • Submit worker count and route AppSec metrics directly to sidecar #3530
  • Upgrade libxml2 #3690

1.16.0

21 Jan 13:15
efd9fb9

Choose a tag to compare

All products

Fixed

  • Fix packaging apks for new alpine versions #3555
  • Fix http_response_header deprecation in installer #3553

Tracer

Added

  • Support OpenTelemetry Metrics #3487
  • Adds process_tags to the first span of each tracing payload #3566
  • Distributed tracing header injection in HyperF/Swoole environments #3544
  • Stream context integration with HTTP method #3534

Changed

  • Enable http.endpoint calculation when appsec is explicitly enabled #3556

Fixed

Internal

  • bump libdatadog to v25.0.0 #3568

Profiler

Changed

  • Optimise allocation profiling for PHP >= 8.4 #3550

Fixed

  • Fixed bindgen compatibility with PHP 8.5.1+ on macOS #3583
  • Fixed SystemSettings initialization #3579
  • Fixed UB and simplify SystemSettings #3578
  • Fixed crash in upload for DD_EXTERNAL_ENV #3576
  • Fixed crash in ddtrace_get_profiling_context #3563
  • Check long string before allocating #3561
  • Fixed incompatibility with ext-grpc #3542
  • Revert unsafe optimization in memory profiling #3541
  • Cap dependency name length to copied bytes #3538

Internal

  • Pre-reserve function name buffer #3445
  • Use cached heap in alloc_prof_orig_* functions #3547

AppSec

Added

  • Reduce cardinality of helper.connection_* #3586
  • Added fallback on http.endpoint for schema sampler #3557

Fixed

  • Use abstract namespace on linux #3525

Internal

  • Improvements for appsec libxml2 usage #3564
  • Improve xml parsing in appsec #3558

1.15.2

22 Dec 15:55
a01a304

Choose a tag to compare

Profiler

Fixed

  • Revert unsafe optimization (#3541)

1.15.1

19 Dec 11:01
9e93650

Choose a tag to compare

Tracer

Fixed

  • Fix panic after bailout in previous request #3537

1.15.0

16 Dec 11:46
3626b11

Choose a tag to compare

All products

Internal

  • bump tracing-core from 0.1.33 to 0.1.35 #3516

Tracer

Internal

  • Const-ify some logging thread-local variables #3513

Fixed

  • Avoid curl's getenv calls #3528
  • code_origin_for_spans_enabled naming inconsistency #3494
  • Add NULL guard clause in sidecar reconnect callback #3499

Profiler

Added

  • Detect parallel threads #3515

Changed

  • Speedup hot path in allocator #3505

Fixed

  • Fixed asserting length of INI #3508

AppSec

Added

  • Minify blocking json message #3502
  • Add Custom Data Classification #3524
  • Add metrics for extension connections #3527

Fixed

  • Amend string on request abort #3506
  • Fix accessing to incorrectly hardcoded $_GET #3501
  • Amend issue where security_response_id is being release before displaying it #3493
  • AppSec helper: add send timeouts #3518
  • Minor fixes and improvements to file descriptor reclamation #3526
  • LaravelIntegration: be more defensive #3503
  • Fix duration_ext metric #3507
  • Fix segfault iterating mapping #3517
  • Fix double end hook run/segfault when blocking in PHP 7.x #3490
  • Fix _iovec_writer_flush and enforce limits on $_POST #3495
  • Clear client_ip on request_init #3496

1.14.1

26 Nov 15:27
7c08828

Choose a tag to compare

Profiling

Fix

1.14.0

13 Nov 14:16
12004d3

Choose a tag to compare

All products

  • Add PHP 8.5 support #3400

Tracer

Added

  • Implement APM endpoint resource renaming #3415
  • Enable dynamic configuration for debugger-related products #3476

Fixed

  • Collect incompletely fetched CurlMulti handles upon destruction #3469
  • Safeguard proc_get_span in case proc_assoc_span is not happening #3471
  • Skip SSI injector in installer for accurate ini-dir readings #3472
  • Make stub file compatible with php 8.4+ parser #3475
  • Fix function resolver on PHP 8.0 and PHP 8.1 for targets without HAVE_GCC_GLOBAL_REGS and with active JIT #3482
  • Support ENOENT as shm_open failure mode DataDog/libdatadog#1315
    • This fixes a failure mode present on some serverless runtimes.

Internal

  • Add crashtracker support for the sidecar #3453
  • Strip error messages from hook telemetry #3449
  • Collect runtime crash frames #3479
  • Use a dedicated endpoint for enriched logs DataDog/libdatadog#1338

Profiling

Internal

  • Cleanup I/O profiling code #3406
  • Upgrade to libdatadog v23, profiling uses zstd now #3470
  • Switch panics to abort #3474

Application Security Management

Added

Changed

  • Upgrade libddwaf and rules #3438
  • Adapt security_response_id to latest #3480

1.13.1

30 Oct 13:52
303d859

Choose a tag to compare

Tracer

Fixed

  • Fix closed resource handling in live debugger #3437
  • Ensure local variables in exception replay are redacted #3440
  • Reset ddtrace_endpoint properly #3451
  • Use a local limiter if shared memory fails to allocate #3454
  • Do not skip error handling for timeouts happening during hook execution #3459
  • Defer Theme\Registry::getRuntime() call until posthook #3465
  • Ensure there's no trailing semicolon with only tid as propagated tag #3466

Profiling

Fixed

  • Reset interrupt count when removing interrupt #3455

Application Security Management

Fixed

  • Ensure json dependency is loaded at runtime #3462
  • Fix several bugs and potential bugs in appsec #3463
  • When helper is unavailable, avoid very long waits (> 7s) #3464

1.13.0

30 Sep 16:55
bc34608

Choose a tag to compare

Tracer

Changed

  • Reduce integrations overhead #3380
  • Avoid unnecessary gc_collect_cycles if there's no open span #3428
  • Make use of fast_shutdown to avoid freeing overhead #3429
  • Optimize PDOIntegration::parseDsn() #3430

Fixed

  • Fix #3135: Force flushing on shutdown of entry point processes #3398
  • Support curl_multi_exec root spans #3419
  • Fix a couple memory leaks #3420

Profiling

Added

  • Add source code integration #3418

Fixed

  • Fix missing line numbers #3417
  • Early init default connector to fix env var race #3432

Internal

  • Refactor tag handling #3423
  • Permanently enable compilation of allocation, exception, and timeline features #3431