Skip to content

Releases: DataDog/dd-trace-rb

0.50.0

07 Jun 21:40
52bd204
Compare
Choose a tag to compare

Dropping support for Ruby 2.0

As of 0.50.0, Ruby 2.0 is not supported.
Ruby 2.1 is now the minimum supported version.
Users are welcome to continue using version < 0.50.0 for their Ruby 2.0 deployments going forward.

Added

  • Add warning, update documentation, for incompatible dogstastd-ruby version (#1544 #1533)
  • Add CI mode and Test mode feature (#1504)
  • Add Gem.loaded_specs fallback behavior if protobuf or dogstatsd-ruby already loaded(#1506 #1510)

Changed

  • Declare EOL for Ruby 2.0 support (#1534)
  • Rename Thread#native_thread_id to #pthread_thread_id to avoid conflict with Ruby 3.1 (#1537)

Fixed

  • Fix tracer ignoring value for service tag (service.name) in DD_TAGS (#1543)
  • Fix nested error reporting to correctly walk clause chain (#1535)
  • Fix AWS integration to prevent S3 URL presigning from generating a remote request span (#1494)
  • Fix backtrace handling of exception classes that return nil message (#1500) (@masato-hi)

Refactored

Read the full changeset and the release milestone.

0.49.0

12 May 18:20
339c1d2
Compare
Choose a tag to compare

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.49.0

Git diff: v0.48.0...v0.49.0

Added

  • Add cause to error stack trace (#1472)

Changed

Fixed

  • Prevent double initialization when auto instrumenting non-Rails applications (#1497)
  • Support kwargs in Ruby 3.0 for sucker_punch (#1495) (@lloeki 🎉 )
  • Fargate fixes and Container parsing for CGroups (#1487 #1480)
  • Fix ActionPack instrumentation #starts_with? error(#1489)
  • Doc fixes (#1473) (@kexoth 🎉 )

Refactored

Read the full changeset and the release milestone.

0.48.0

19 Apr 21:41
ab0a4e0
Compare
Choose a tag to compare

Deprecating support for Ruby 2.0

Ruby 2.0 will be supported up to release 0.49.x.
From release 0.50.0 and greater, Ruby 2.1 will be the minimum supported version.
Users are welcome to continue using version < 0.50.0 for their Ruby 2.0 deployments going forward.

Added

Changed

  • Add deprecation warning for Ruby 2.0 support (#1441)
  • Auto instrument Resque workers by default (#1400)

Fixed

  • Ensure DD_TRACE_SAMPLE_RATE enables full RuleSampler (#1416)
  • Fix Fargate 1.4 container ID not being read (#1457)
  • Correctly close all StatsD clients (#1429)

Refactored

Read the full changeset and the release milestone.

0.47.0

29 Mar 23:00
dfddf9b
Compare
Choose a tag to compare

Added

Changed

  • BREAKING Separate Resolver configuration and resolution steps (#1319)

    ActiveRecord describes configuration now supports partial matching

    Partial matching of connection fields (adapter, username, host, port, database) is now allowed. Previously, only an exact match of connections fields would be considered matching. This should help greatly simplify database configuration matching, as you will only need to provide enough fields to correctly separate your distinct database connections.

    If you have a c.use active_record, describe: statement in your application that is currently not matching any connections, you might start seeing them match after this release.

    c.use active_record, describe: statements that are currently matching a connection will continue to match that same connection.

    You can refer to the expanded ActiveSupport documentation for details on how to use the new partial matchers and configuration code examples.

    Datadog::Contrib::Configuration::Resolver interface changed

    The interface for Datadog::Contrib::Configuration::Resolver has changed: custom configuration resolvers that inherit from Datadog::Contrib::Configuration::Resolver will need be changed to fulfill the new interface. See code documentation for Datadog::Contrib::Configuration::Resolver for specific API requirements.

  • Remove type check from ThreadLocalContext#local. (#1399) (@orekyuu)

Fixed

  • Support for JRuby 9.2.0.0 (#1409)
  • Failed integration message (#1394) (@e1senh0rn)
  • Addressed "warning: instance variable @components not initialized" (#1419)
  • Close /proc/self/cgroup file after reading (#1414)
  • Improve internal "only once" behavior across the tracer (#1398)
  • Increase thread-safety during tracer initialization (#1418)

Refactored

Read the full changeset and the release milestone.

0.46.0

03 Mar 21:32
42ebdb9
Compare
Choose a tag to compare

Added

  • Add EventBridge to supported AWS services (#1368) (@tomgi)
  • Add time_now_provider configuration option (#1224)
    • This new option allows the span start_time and end_time to be configured in environments that change the default time provider, like with Timecop. More information in the official documentation.
  • Add name to background threads created by ddtrace (#1366)

Changed

  • Rework RSpec instrumentation as separate traces for each test (#1381)

Fixed

  • ArgumentError: wrong number of arguments (given 2, expected 0) due to concurrent require (#1306, #1354) (@EvNomad)
  • Fix Rails' deprecation warnings (#1352)
  • Fully populate Rake span fields on exceptions (#1377)
  • Fix a typo in httpclient integration (#1365) (@y-yagi)
  • Add missing license files for vendor'd code (#1346)

Refactored

Removed

  • Remove deprecated Datadog::Monkey (#1341)
  • Remove deprecated Datadog::DeprecatedPin (#1342)
  • Remove unused Shim/MethodWrapper/MethodWrapping (#1347)
  • Remove APP_ANALYTICS from tests instrumentation (#1378) (@AdrianLC)

Read the full changeset and the release milestone.

0.45.0

27 Jan 17:06
fe6152e
Compare
Choose a tag to compare

This release includes a new way to automatically instrument all available gems in an application: require: 'ddtrace/auto_instrument' (#1260). There's no need to require 'ddtrace' or invoke Datadog.configure when using auto_instrument.

For Rails application, all that is needed is an additional require option in your Gemfile:

gem 'ddtrace', require: 'ddtrace/auto_instrument'

For any other application, invoke require 'ddtrace/auto_instrument' after all gems that you would like instrumented have been required.

All defaults and custom settings can still be configured in a Datadog.configure block as usual. Make sure to call Datadog.configure after require 'ddtrace/auto_instrument' when using both features together.

Let us know if you have any feedback on this new feature in our GitHub page.

There are no changes for applications not invoking require 'ddtrace/auto_instrument'.

Added

Changed

  • Promote request_queuing out of experimental (#1320)
  • Safeguards around distributed HTTP propagator (#1304)
  • Improvements to test integrations (#1291, #1303, #1307)

Refactored

Read the full changeset and the release milestone.

0.44.0

06 Jan 20:42
e796c93
Compare
Choose a tag to compare

Added

Changed

  • Reduce Runtime Metrics frequency to every 10 seconds (#1269)
    We reduced the frequency from every 1 second to every 10 seconds. This greatly reduces the overhead of using Runtime Metrics: 10% (26MiB) memory usage reduction in a sample Rails 6 application) while not having measurable impact on the quality of data collected. It also aligns dd-trace-rb with other language tracers.

Fixed

  • Disambiguate resource names for Grape endpoints with shared paths (#1279) (@pzaich)
  • Remove invalid Jenkins URL from CI integration (#1283)

Refactored

Read the full changeset and the release milestone.

0.43.0

18 Nov 19:28
73437cb
Compare
Choose a tag to compare

Added

  • Background job custom error handlers (#1212) (@norbertnytko)
  • Add "multi" methods instrumentation for Rails cache (#1217) (@michaelkl)
  • Support custom error status codes for Grape (#1238)
  • Cucumber integration (#1216)
  • RSpec integration (#1234)
  • Validation to :on_error argument on Datadog::Tracer#trace (#1220)

Changed

  • Update TokenBucket#effective_rate calculation (#1236)

Fixed

  • Avoid writer reinitialization during shutdown (#1235, #1248)
  • Fix configuration multiplexing (#1204, #1227)
  • Fix misnamed B3 distributed headers (#1226, #1229)
  • Correct span type for AWS SDK (#1233)
  • Correct span type for internal Pin on HTTP clients (#1239)
  • Reset trace context after fork (#1225)

Refactored

Read the full changeset and the release milestone.

0.42.0

21 Oct 14:25
4937c97
Compare
Choose a tag to compare

Added

Changed

Fixed

  • Improve Rails log_injection option to support more Lograge formats (#1210) (@Supy)

  • Fix Changelog (#1199) (@y-yagi)

Refactored

  • Refactor Trace buffer into multiple components (#1195)

Read the full changeset and the release milestone.

0.41.0

30 Sep 15:30
a4018b6
Compare
Choose a tag to compare

Added

Changed

  • Add peer.service tag to external services and skip tagging external services with language tag for runtime metrics (#934, #935, #1180)
    • This helps support the way runtime metrics are associated with spans in the UI.
  • Faster TraceBuffer for CRuby (#1172)
  • Reduce memory usage during gem statup (#1090)
  • Reduce memory usage of the HTTP transport (#1165)

Fixed

  • Improved prepared statement support for Sequel integrations (#1186)
  • Fix Sequel instrumentation when executing literal strings (#1185) (@matchbookmac)
  • Remove explicit Logger class verification (#1181) (@bartekbsh)
    • This allows users to pass in a custom logger that does not inherit from Logger class.
  • Correct tracer buffer metric counting (#1182)
  • Fix Span#pretty_print for empty duration (#1183)

Refactored

Read the full changeset and the release milestone.