Releases: DataDog/dd-trace-rb
2.7.0
Added
- Profiling: Enable "heap clean after GC" profiler optimization by default (#4085)
Changed
Fixed
- Fix
Process.waitall
hanging and stack overflow when crashtracking enabled (#4082)
Read the full changeset and the release milestone.
2.6.0
2.5.0
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 thedatadog-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
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
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 formysql
,pg
andtrilogy
(#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 forgraphql
(#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
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 withActiveSupport::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 fromGemfile
/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
1.23.2
2.1.0
2.0.0
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
, anduse_ssl
(#3350) - Tracing: Add lightweight log correlation generation (#3486)
- Tracing: Support span links (#3546, #3572)
- Tracing: Add
span_remote
field toTraceDigest
(#3516) - Tracing: Add
_dd.parent_id
totracestate
(#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
todatadog
(#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
fromCorrelation::Identifier
(#3322) Elasticsearch
: Replace instance configuration fromclient
totransport
instance (#3399)Grape
: Changeerror_statuses
settings toerror_status_codes
(#3370)GraphQL
: Instrument withGraphQL::Tracing::DataDogTrace
and more (#3409, #3417, #3388)Rack
: Change http proxy span pattern (#3369)Sidekiq
: Removetag_args
option and worker specific configuration (#3396, #3402)- Integrations: Rename
error_handler
settings toon_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 forinstrument
(#3403) - Tracing:
OpenTracing
,qless
removed (#3398, #3443) Net/Http
: RemoveDatadog::Tracing::Contrib::HTTP::Instrumentation.after_request
(#3367)Rails
: Drop support for Rails 3 (#3324)Rails
: Removeexception_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.