Skip to content

Releases: DataDog/dd-trace-php

1.4.2

21 Oct 10:52
a618ff5
Compare
Choose a tag to compare

Tracer

Changed

  • Disable sidecar sending on lambda #2904

Fixed

  • Fix exception property offset computation for PHP 8.1+ #2901
  • Prevent Laravel Queue hooks from stacking up #2899
  • Fix crash with missing name in span in debug mode #2893
  • Restrict remote config path to a definite 31 chars DataDog/libdatadog#676

Application Security Management

Changed

  • Update event obfuscation regex #2897

Fixed

  • Fix abort() call on appsec helper unload #2900

1.4.1

14 Oct 13:22
72c5212
Compare
Choose a tag to compare

Tracer

Fixed

  • Fix: MongoDBIntegration condition typo #2884
  • Fix crash in profiler when span stack switch causes GC run #2885
  • Support build with disabled zend signals #2886
  • Send git tags via remote config #2890
  • Fix memory leak with sidecar trace sender #2875

Profiling

Fixed

  • Fix profiler ZTS build on alpine #2887

Application Security Management

Fixed

  • Improve behavior with empty DD_SERVICE/DD_ENV #2888

1.4.0

08 Oct 17:33
dcc880f
Compare
Choose a tag to compare

Tracer

The default value for datadog.trace.cli_enabled is now set to true (except for composer), meaning that CLI processes will be traced by default.

Added

  • Dynamic configuration #2796
  • Dynamic instrumentation #2796
    • Can be enabled with datadog.dynamic_instrumentation.enabled=1.
  • Exception replay #2796
    • Can be enabled with datadog.exception_replay_enabled=1.
  • Track peak memory usage in root span metrics #2840

Changed

  • Enable sidecar trace sender on PHP 8.3 #2729
  • Optimize sending traces via sidecar DataDog/libdatadog#598
  • Add new ini config datadog.crashtracking_enabled #2850
  • Add ionCube to the list of incompatible extensions + add INI setting to ignore incompatible extensions #2858
  • Enable CLI by default #2871

Fixed

  • Crashtracker: fix a use-after-free error #2843
  • Fix curl integration race condition #2847
  • Fix memory leak with sidecar trace sender #2875
  • OpenTelemetry: Missing addLink method and Fiber handling #2849
  • Mongodb: Deprecated exception in v1.20+ #2870
  • Fix leaking sidecar sessions DataDog/libdatadog#642
  • Implement deadlock watchdog for sidecar DataDog/libdatadog#647

Internal

SSI Loader changes

  • Add SSI requirements.json file #2813
  • Disable the tracer in case of a potential incompatibility (extension/jit) #2853

Profiling

Internal

  • bump to Rust 1.76 #2876

Application Security Management

Changed

  • Move helper to sidecar remote config #2864

Fixed

  • Fix improper symbol exports in appsec ext/helper #2854
  • Remove gid from socket/lock path of helper #2855
  • appsec ext: retry on connection refused #2860
  • Fix orderly helper appsec shutdown #2859

Internal changes

  • Add appsec benchmarks #2791

1.3.2

26 Sep 13:51
a5e07d7
Compare
Choose a tag to compare

Tracer

Fixed

  • Fix crash with git metadata injection #2862

1.3.1

06 Sep 16:24
2b11926
Compare
Choose a tag to compare

Warning

This version can crash with git source code integration when the .git/ folder is in an inconsistent state. To mitigate set datadog.trace.git_metadata_enabled=0 (or environment variable DD_TRACE_GIT_METADATA_ENABLED=0) or upgrade to v1.3.2.

Tracer

Fixed

  • Fix DD_AUTOLOAD_NO_COMPILE #2833
  • Loader: Use the same version number as for other extensions #2838
  • Consider ifunc symbols also defined DataDog/libdatadog#609
  • Fix crash with double parent key in tracestate #2837
  • Fix #2831: Failure with LTO #2839

Internal

  • Avoid using non-bundled rust git dependencies #2827

1.3.0

30 Aug 13:05
8b6e326
Compare
Choose a tag to compare

Warning

This version can crash with git source code integration when the .git/ folder is in an inconsistent state. To mitigate set datadog.trace.git_metadata_enabled=0 (or environment variable DD_TRACE_GIT_METADATA_ENABLED=0) or upgrade to v1.3.2.

Tracer

The default value for datadog.log_backtrace is now set to true, meaning that on compatible systems, a segmentation fault will cause the process's backtrace to be printed in the log.

Added

  • Add SpanEvents support for DD and OTEL #2754
  • Symfony Messenger Integration #2749
  • Add crashtracker #2763

Changed

  • Updates the expected telemetry tags for OTel env-var mapping in line with the latest RFC #2775

Fixed

  • Multiple Workers in SWOOLE_BASE mode #2778
  • Fix ini creation when --extension-dir is used #2789
  • Fix fatal error when reading uninit $meta on a span #2790
  • Fix JIT crash with instrumented generators #2797
  • Handle absolute paths in extension_dir containing forward slashes #2798
  • Fix setup with spaces in path to php binary #2803
  • Fix #2774: shared hooks removal caused xdebug end handler to be skipped #2780
  • Fix error message for not loaded/not available #2810
  • Implement fallback for when memfd is not available on Linux DataDog/libdatadog#591
  • Use the Windows User ID as sidecar identifier instead of the Session ID DataDog/libdatadog#558
  • Fix error check in trampoline.c DataDog/libdatadog#569
  • Do not implicitly fall back to spl_autoload() if no autoloader is registered on PHP 7 #2822
  • Prevent crash in shutdown if hook was not stored #2824

Internal

  • Send x-datadog-test-session-token metric and send metrics to request-replayer #2802
  • Only warn on missing json extension #2805
  • Fix compilation after alpine container upgrade #2811
  • Telemetry v2 schema for app-started payload requires 'configuration' DataDog/libdatadog#543

Profiling

Added

  • Add timestamp to exception sample #2793

Internal

  • Perf: remove profiler mutex #2714

Application Security Management

Added

  • Automated user ID collection modes #2782
  • Report backtraces #2715

Changed

Fixed

  • Refactor the sampler to fix errors #2761

1.2.0

23 Jul 11:52
dbdd922
Compare
Choose a tag to compare

⚠️ This version can crash with git source code integration when the .git/ folder is in an inconsistent state. To mitigate set datadog.trace.git_metadata_enabled=0 (or environment variable DD_TRACE_GIT_METADATA_ENABLED=0) or upgrade to v1.3.2.

This release adds beta support for PHP Single Step Instrumentation, allowing the instrumentation of your PHP applications without the manual installation of the dd-trace-php extension.

Read https://docs.datadoghq.com/tracing/trace_collection/automatic_instrumentation/single-step-apm/ for more details.

Tracer

Added

  • Add span field meta_struct #2673
  • Add config to disable obfuscation in memcached queries #2725
  • Add PDO spans to orphans removal #2743
  • Make generators replaceable #2718
  • Source Code Integration #2731
  • OpenAI Integration #2685
  • Add support for Single Step Instrumentation #2684 #2723

Fixed

  • Fix PHP binary detection in package post-install script #2707
  • Handle OTel HTTP semantic conventions < 1.21.0 #2717
  • Respect the active service/env/version for metric tags #2742
  • Fix post bailout hook execution in 8.3 unoptimized builds #2737
  • Fix env&version tags leaking in metrics #2745
  • Fix global priority sampling #2728
  • Fix crash in OpenTelemetry Span::getCurrent() when accessing span link #2767

Internal

  • Compile sidecar and extension separately, to link them together later #2741
  • Sync with libdatadog for telemetry flush data intval #2757

Profiling

Internal

  • Keep string cache data alive longer #2668
  • Extract func is_internal() #2736
  • Less unsafe code #2739
  • Refactor fork handling #2747

Application Security Management

Fixed

  • Refactor the sampler to fix errors #2761

Internal

  • Upgrade helper to use WAF 1.18.0 #2660
  • Add more logs around schema extraction #2755

1.1.0

10 Jun 21:30
65bf25c
Compare
Choose a tag to compare

Tracer

Added

  • Implement OTel config remapping #2691
  • Remap OTel to DD status code #2695

Fixed

  • Apply some fixes with sidecar trace sender #2680, #2686, #2689, #2698, #2700
  • Don't treat Symfony 2 differently from other versions #2693
  • Ensure DDTRACE_G(active_stack) is always NULL when the root span is being pushed #2701

Internal

  • Switch 2 logs to logev to avoid useless work #2679
  • shrink size of Rust artifacts #2696

Profiling

Added

  • Add thread id label on every sample #2692

Internal

  • Reduce memory usage by upgrading libdatadog to v10 #2697

1.0.0

04 Jun 15:08
c582c9f
Compare
Choose a tag to compare

This release introduces some minor breaking changes. An upgrade guide can be found at https://github.com/DataDog/dd-trace-php/blob/1.0.0/UPGRADE-1.0.md.

This changeset is on top of 1.0.0beta1.

Tracer

Added

  • Instrument AMQP batched publishing #2659 (Thanks @lcobucci!)
  • Peer Service Precursors for DBM #2664
  • Provide a DogStatsD API #2639
  • Collect trace_api.{requests,responses,errors} metrics in the background trace sender #2672

Changed

  • Use app name as service for laravel queue #2643
  • Mark Laravel Octane requests as laravel.request #2655
  • Move env and version from meta to span properties #2665
  • w3c(phase 3): ensure tracecontext headers always take precedence #2667

Fixed

  • Do not check get_DD_TRACE_ENABLED() outside of a request #2631
  • Fix rejected distributed sampling decision overwrite #2652
  • Fix Background Sender reset on Swoole Fork #2645
  • Don't handle fork in SWOOLE_BASE mode #2656
  • Web Tests Errors Detection #2666
  • Fix coalescing send data DataDog/libdatadog#451
  • Link libpthread into the spawn_worker trampoline DataDog/libdatadog#452
  • Make use of the sidecar thread safe #2671
  • Send a correct size hint to the sidecar trace flusher #2686
  • Allow synchronous sidecar flushes and reduce flush limit #2689

Internal

  • Update to maintain compatibility with libdatadog #2634, #2661
  • Minor cbindgen improvements #2651
  • Compile tracer version into sidecar #2678

Profiling

Added

  • Add uptime information to profiles #2610

Fixed

  • Fix exception profiling in Generator->throw() #2682

Internal

  • Stack walking cleanup #2638
  • Shrink env/service/version and simplify #2640
  • Use php_version when available #2657
  • Update profiling deps/libdatadog v9 #2662

Application Security Management

Changed

  • Update asm collected headers #2641
  • Add all asm headers on user events #2647

Fixed

  • Improve login accuracy event on Laravel>5 #2642

1.0.0beta1

17 Apr 08:09
e11c3aa
Compare
Choose a tag to compare
1.0.0beta1 Pre-release
Pre-release

This beta release contains all breaking changes planned for dd-trace-php 1.0. An upgrade guide can be found at https://github.com/DataDog/dd-trace-php/blob/1.0.0beta1/UPGRADE-1.0.md.

Tracer

Added

  • Add --ini and --extension-dir installation option #2620
  • CodeIgniter 3 Compatibility #2515
  • Add CakePHP 3+ Support #2618

Changed

  • Cleanup deferred loader and remove some PHP 5 compat code #2527
  • Change DD_TRACE_SAMPLING_RULES_FORMAT default from regex to glob #2534
  • Raise API errors instead of debug logs when wrong arguments are passed #2542
  • Change WordPress Default Behavior #2525
  • [OTel] Only set resource info on root spans #2558
  • Remove early code execution and use an autoloader instead #2530
  • Remove deprecated configuration keys or APIs #2574
  • Drop Configuration classes from API #2596

Fixed

  • Elasticsearch: Hook not being removed #2616
  • Fix shared compilation on macOS #2613
  • Fix host Scopes not being removed #2624
  • Add note about update_span_duration semantics #2622

Internal

  • Use a global version and change installer tests to use the version #2537
  • Clean PHP 5 checks #2584
  • Collect 'logs_created' internal metric #2604
  • Make the root Makefile macOS compatible #2614
  • Add stats reporting for sidecar and telemetry #2621
  • Clean Integration configuration #2598
  • Re-added spans_created telemetry metric DataDog/libdatadog#391

Application Security Management

Fixed

  • Disable Appsec when FrankenPHP SAPI is detected #2617