Skip to content

Releases: DataDog/dd-trace-rb

2.8.0

10 Dec 17:19
8ebc8a1
Compare
Choose a tag to compare

Highlights

Dynamic instrumentation is now available in Ruby as a Preview. Currently only log probes are implemented, and they can be set on both methods and lines. If you are interested in trying out Dynamic Instrumentation for Ruby, please contact Datadog to be added to the Preview program or open a GitHub issue.

Added

  • AppSec: Add SQL injection detection for ActiveRecord for following adapters: mysql2, postgresql, and sqlite3 (#4167)
  • Telemetry: Add environment variable to disable logs (#4153)
  • Integrations: Add configuration option on_error to Elasticsearch tracing (#4066)

Changed

  • Upgrade libdatadog dependency to 14.3.1 (#4196)
  • Profiling: Require Ruby 3.1+ for heap profiling (#4178)
  • Appsec: Update libddwaf to 1.18.0.0.0 (#4164)
  • Single-step: Lower SSI GLIBC requirements down to 2.17 (#4137)

Fixed

  • Integrations: Avoid loading ActiveSupport::Cache::RedisCacheStore, which tries to load redis >= 4.0.1 regardless of the version of Redis the host application has installed (#4197)
  • Profiling: Fix unsafe initialization when using profiler with otel tracing (#4195)
  • Single-step: Add safe NOOP injection script for very old rubies (#4140)

Read the full changeset and the release milestone.

2.7.1

28 Nov 15:49
94f50fe
Compare
Choose a tag to compare

Fixed

  • Tracing: Fix missing version tag (#4075)
  • Profiling: Fix profiling not loading in certain situations on Ruby 2.5 and 3.3 (#4161)

Read the full changeset and the release milestone.

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.