Skip to content

Releases: DataDog/dd-trace-rb

2.4.0

11 Oct 15:09
@y9v y9v
14cdd6f
Compare
Choose a tag to compare

Highlights

  • Enable API Catalog for AppSec with added http.route tag
  • Add preview support for correlating profiling with otel ruby gem
  • Disable crashtracking by default due to an unexpected interaction with the Process.wait family of calls

Allocation Profiling is now GA

As of both version 2.3.0 and 2.4.0 the allocation profiling feature is now generally available.

See our announcement blog post for more details.

You can enable this feature by using the DD_PROFILING_ALLOCATION_ENABLED=true environment variable, or via code:

Datadog.configure do |c|
  # ... existing configuration ...
  c.profiling.allocation_enabled = true
end

GVL profiling for Ruby 3.2+ is now in preview

Inspired on "Understanding the Ruby Global VM Lock by observing it"
the profiler is now able to show when threads are waiting for the Ruby GVL.

You'll be able to spot when threads are prevented from working by other "noisy neighbor" threads, including background threads. See #3929 for screenshots and more details. Note that currently this feature requires Ruby 3.2+.

You can enable this feature by using the DD_PROFILING_PREVIEW_GVL_ENABLED=true environment variable, or via code:

Datadog.configure do |c|
  # ... existing configuration ...
  c.settings.profiler.advanced.preview_gvl_enabled = true
end

Added

  • Core: Allow changing sampling rate for customer defined tags and resources (#3956)
  • Profiling: Add GVL profiling for Ruby 3.2+ as a preview feature (#3929)
  • Profiling: Otel: Add preview support for correlating profiling with otel ruby gem (#3984)
  • Tracing: AppSec: Add http.route tag to Rails, Grape, and Sinatra integrations (#3849)
  • Tracing: Add capabilities to remote config: tracing sample rate, tracing logs injection, tracing http header tags (#3888)
  • AppSec: Add a force disable of AppSec feature when using Ruby >= 3.3 with old FFI gem version (#3969)

Changed

  • AppSec: Improve PII compliance (#3857)
  • AppSec: Integrations: Improve accuracy of login tracking for Devise (#3867)
  • Crashtracking feature is now disabled by default (#3970)

Fixed

  • AppSec: Integrations: Fix GraphQL instrumentation for query fragments (#3887)
  • Bug: Profiling: Fix (small) memory leak in profiler when forking (#3852)
  • Tracing: Integrations: Fix GraphQL integration reconfiguration (#3859)

Read the full changeset and the release milestone.

2.3.0

22 Aug 14:13
c5ab063
Compare
Choose a tag to compare

Added

  • Core: Support agentless telemetry (#3779)
  • Tracing: Add support for span events (#3776)
  • Tracing: Add tags to enable inferred service dependencies for databases (#3789)
  • Tracing: Emit log message and instructions for incompatible Lograge setup (#3812, #3839)
  • Tracing: Add append_comment option to append SQL comment propagation for mysql, pg and trilogy (#3809)
  • AppSec: Add threat detection and protection for graphql (#3769, #3814)

Changed

  • Core: Enable crashtracking by default (#3826)
  • Profiling: Reduce allocation overhead (#3805, #3797)
  • Profiling: Speed up stack sampling (#3837)
  • Profiling: Upgrade to libdatadog 11 (#3799)
  • Profiling: Disable allocation counting feature by default (#3798)
  • Profiling: Reduce the maximum biased result for allocation samples (#3793)
  • Tracing: Reduce noisy integration logs (#3785)

Fixed

  • Tracing: Fix require issue for graphql (#3813)
  • AppSec: Fix an error when parsing http headers with integer value (#3790)
  • AppSec: Fix an error when tracking login failure without user_id (#3841)
  • Fix a syntax error for Ruby < 2.4 during single step instrumentation (#3795)

Read the full changeset and the release milestone.

2.2.0

11 Jul 11:10
a5820c5
Compare
Choose a tag to compare

Added

  • Core: Support metrics telemetry (#3734, #3742, #3768)
  • Tracing: Add Rails Runner instrumentation (#2509)
  • Tracing: Introduce a new, reworked GraphQL tracer to comply with span attributes specification (#3672)
  • Tracing: Enhance ActiveSupport::Cache instrumentation with ActiveSupport::Notifications subscription (#3772)
  • Profiling: Track unscaled allocation counts in allocation profiler (#3770)

Changed

  • Core: Send Telemetry events in batches (#3749)
  • Tracing: Populate spans from ActiveSupport::Notifications as early as possible (#3725)
  • Profiling: Upgrade to libdatadog 10 (#3753)
  • Profiling: Optimize CodeProvenance#record_loaded_files to avoid allocations (#3757)

Fixed

  • Core: Fix Telemetry events blocking main thread (#3718)
  • Core: Fix deadlock from Telemetry threads (#3743)
  • Tracing: Fix empty log correlation when tracing is disabled (#3731)
  • Tracing: Fix HTTP propagation when missing parent span id (#3730)
  • Tracing: Ensure _dd.p.tid tag with fixed size (#3729)
  • OTel: Fix ids encoding/decoding for propagation (#3709)
  • Profiling: Workaround Ruby Dir returning incorrect results (#3720)
  • Profiling: Fix Phusion Passenger detection when missing from Gemfile/gems.rb (#3750)
  • Profiling: Fix rpath for linking to libdatadog when loading extension (#3706)
  • Profiling: Fix incorrect code provenance due to broken JSON monkey patch (#3695)
  • Profiling: Fix aggregation of actionview template classes (#3759, #3774)

Read the full changeset and the release milestone.

1.23.3

01 Jul 09:28
4e33388
Compare
Choose a tag to compare

Added

  • Add post install message about 2.x upgrade (#3723)

Fixed

  • Fix telemetry events blocking main thread (#3740)
  • Fix deadlock from telemetry threads (#3745)

Read the full changeset and the release milestone.

1.23.2

13 Jun 13:03
07bb120
Compare
Choose a tag to compare

Fixed

  • Profiling: Fix rpath for linking to libdatadog when loading from extension dir (#3683)

Read the full changeset and the release milestone.

2.1.0

10 Jun 22:32
7b867f6
Compare
Choose a tag to compare

Highlights

Added

  • Tracing: Configuration by OpenTelemetry environment variables (#3657)

Fixed

  • Tracing: Improved compatibility with W3C Trace Context propagation (#3631)

Read the full changeset and the release milestone.

2.0.0

06 Jun 13:11
ae63482
Compare
Choose a tag to compare

Highlights

The gem has been renamed from ddtrace to datadog. Make sure to checkout https://github.com/DataDog/dd-trace-rb/blob/master/docs/UpgradeGuide2.md for all upgrading details.

Added

  • Add Agent configuration option: timeout_seconds, uds_path, and use_ssl (#3350)
  • Tracing: Add lightweight log correlation generation (#3486)
  • Tracing: Support span links (#3546, #3572)
  • Tracing: Add span_remote field to TraceDigest (#3516)
  • Tracing: Add _dd.parent_id to tracestate (#3488)
  • Tracing: Allow RateSampler with zero sampling rate (#3295)
  • Tracing: Add dynamically configurable sampling rules (#3598)
  • Tracing: Add sampling rule glob pattern matching (#3616)
  • Core: Add libdatadog crash tracker (#3384)
  • Grape: Add on_error settings (#3370)
  • Tracing: Remap http status code tag for otel span for trace metrics (#3664)

Changed

  • Rename gem from ddtrace to datadog (#3490)
  • Require Ruby >= 2.5 (#3291)
  • Frozen string literals (#3392)
  • Startup logs emit when reconfigures (#3441)
  • Enhance validation for configuration (#3332, #3326)
  • Tracing: Propagation style configuration becomes case-insensitive (#3299)
  • Tracing: Return string for #trace_id and #span_id from Correlation::Identifier (#3322)
  • Elasticsearch: Replace instance configuration from client to transport instance (#3399)
  • Grape: Change error_statuses settings to error_status_codes (#3370)
  • GraphQL: Instrument with GraphQL::Tracing::DataDogTrace and more (#3409, #3417, #3388)
  • Rack: Change http proxy span pattern (#3369)
  • Sidekiq: Remove tag_args option and worker specific configuration (#3396, #3402)
  • Integrations: Rename error_handler settings to on_error (#3341)
  • Profiling: Upgrade to libdatadog 9 (#3627)
  • Tracing: Cache ActiveRecord configuration resolver (#3630)

Fixed

  • Tracing: Fix error_status_codes options (#3344)
  • Core: Fix error during telemetry debug logging attempt (#3617)
  • OpenTelemetry: Fix attribute merge with Datadog tags (#3651)
  • Tracing: Fix environment logger repeated entries (#3624)

Removed

  • Profiling: Remove bin/ddtracerb (#3506)
  • Ci-app: Remove datadog-ci gem dependency (#3288)
  • Tracing: Remove SpanOperation aliases (#3330)
  • Tracing: Remove b3 style from default propagation (#3293)
  • Tracing: Minimize sampling API (#3423)
  • Tracing: Remove client_ip disabled env (#3404)
  • Tracing: Remove use alias for instrument (#3403)
  • Tracing: OpenTracing, qless removed (#3398, #3443)
  • Net/Http: Remove Datadog::Tracing::Contrib::HTTP::Instrumentation.after_request (#3367)
  • Rails: Drop support for Rails 3 (#3324)
  • Rails: Remove exception_controller option (#3243)
  • Remove constants, methods and more (#3401, #3336, #3454, #3338, #3335, #3298, #3297, #3309, #3294, #3325, #3300)

Read the full changeset and the release milestone.

1.23.1

06 Jun 10:07
0c68089
Compare
Choose a tag to compare

Fixed

AppSec: Fix undefined method error when Tracing disabled (#3650)

Read the full changeset and the release milestone.

2.0.0.rc1

24 May 21:06
b908262
Compare
Choose a tag to compare
2.0.0.rc1 Pre-release
Pre-release

Highlights

  • Tracing now supports dynamically configurable sampling rules and glob pattern matching for sampling rules.
  • The Tracing integration with OpenTelemetry now supports Span Links.
  • Profiling now reports endpoint profiling for Sidekiq and other background job processors. Also unused, deprecated Profiling settings were removed.

Added

  • Core: Add libdatadog crash tracker (#3384)
  • OpenTelemetry: Add support for Span Links (#3572)
  • Profiling: Enable endpoint profiling for Sidekiq and other background job processors (#3610)
  • Tracing: Add dynamically configurable sampling rules (#3598)
  • Tracing: Add sampling rule glob pattern matching (#3616)

Changed

  • Profiling: Upgrade to libdatadog 9 (#3627)
  • Tracing: Cache ActiveRecord configuration resolver (#3630)

Fixed

  • Core: Fix error during telemetry debug logging attempt (#3617)
  • OpenTelemetry: Fix attribute merge with Datadog tags (#3651)
  • Tracing: Fix environment logger repeated entries (#3624)
  • Appsec: Fix undefined method error when Tracing disabled (#3645)

Removed

  • Profiling: Remove profiler support for Ruby 2.3 and 2.4 (#3621)
  • Profiling: Remove deprecated profiler settings (#3597)

Read the full changeset and the release milestone.

1.23.0

09 May 15:03
cf264ae
Compare
Choose a tag to compare

Added

  • Profiling: Enable endpoint profiling for Sidekiq and similar background job processors (#3619)

Fixed

  • Fix no such file or directory issue when using single step instrumentation (#3623)
  • Fix error during telemetry debug logging attempt (#3618)

Read the full changeset and the release milestone.