Skip to content

Releases: DataDog/dd-trace-rb

2.7.0

13 Nov 17:16
7b5fef3
Compare
Choose a tag to compare

Added

  • Profiling: Enable "heap clean after GC" profiler optimization by default (#4085)

Changed

  • Enable crashtracking by default (#4083)
  • Upgrade to libdatadog 14.1 (#4082)

Fixed

  • Fix Process.waitall hanging and stack overflow when crashtracking enabled (#4082)

Read the full changeset and the release milestone.

2.6.0

06 Nov 23:30
06ad072
Compare
Choose a tag to compare

Changed

  • Core: Upgrade to libdatadog 14.0 (#4065)

Fixed

  • AppSec: Remove unintentional libddwaf require (#4078)

Read the full changeset and the release milestone.

2.5.0

05 Nov 15:05
243ed25
Compare
Choose a tag to compare

Highlights

This release contains a fix for Grape instrumentation. Redundant slashes at the beginning of the resource names will be replaced with a single slash. If you have monitors depending on this resource names, please adjust them accordingly.

Before

RackAPI GET //path/with/leading/slash

After

RackAPI GET /path/with/leading/slash

Added

  • Performance: Profiling: Add setting to lower heap profiling memory use/latency by cleaning up young objects after Ruby GC (#4020)

Changed

  • Core: Replace the debase-ruby_core_source gem with the datadog-ruby_core_source (#4014)
  • Core: Upgrade to libdatadog 13.1 (#3997)

Fixed

  • Fix undefined method error for Rails runner (#3996)
  • Apply version tag only to spans that use the global/default service name (#4027)
  • Ensure UDS takes precedence over HTTP when both Agent configurations defined (#4024)
  • Remove duplicate leading slash in resource name for Grape routes (#4033)

Read the full changeset and the release milestone.

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.profiling.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

Upgrading

If you are using automatic instrumentation and mostly default configurations on Ruby 2.5+, you only need to update the name of the gem from ddtrace to datadog.

If you use custom instrumentation, additional configuration options, or have advanced usages, check out the upgrade guide for all upgrading details.

Highlights

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.