Skip to content

Releases: DataDog/dd-trace-rb

1.0.0

02 May 22:20
a89d2b2
Compare
Choose a tag to compare

Upgrading

If you are using automatic instrumentation and mostly default configurations, you only need to update the version of ddtrace.

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

Highlights

This release brings semantic versioning to ddtrace.

There are countless improvements since v0.54.2. Many defaults that have been updated to facilitate the onboarding experience and clean up your configuration file.

For a comprehensive guide when upgrading from 0.x to 1.0, see: https://github.com/DataDog/dd-trace-rb/blob/master/docs/UpgradeGuide.md

A special thank you goes to our 136 contributors, most of them not members of Datadog! 🙇

Changes since v1.0.0.beta2

Added

  • GraphQL 2.0 support (#1982)

Changed

  • AppSec: Update libddwaf to 1.3.0 (#1981)

Fixed

  • Rails log correlation (#1989) (@cwoodcox)
  • Resource not inherited from lazily annotated spans (#1983)
  • AppSec: Query address for libddwaf (#1990)

Refactored

Read the full changeset and the release milestone.

1.0.0.beta2

15 Apr 03:29
0176245
Compare
Choose a tag to compare

For upgrading from 0.x to 1.0, see our upgrade guide: https://github.com/DataDog/dd-trace-rb/blob/master/docs/UpgradeGuide.md

Added

Changed

  • Access to configuration settings is namespaced (#1922)
  • AWS provides metrics by default (#1976) (@dudo)
  • Update debase-ruby_core_source version (#1964)
  • Profiling: Hide symbols/functions in native extension (#1968)
  • Profiling: Renamed code_provenance.json to code-provenance.json (#1919)
  • AppSec: Update libddwaf to v1.2.1 (#1942)
  • AppSec: Update rulesets to v1.3.1 (#1965, #1961, #1937)
  • AppSec: Avoid exception on missing ruleset file (#1948)
  • AppSec: Env var consistency (#1938)

Fixed

Removed

  • OpenTelemetry extensions (Use OTLP instead) (#1917)

Refactored

Read the full changeset and the release milestone.

1.0.0.beta1

16 Feb 00:23
23ebe66
Compare
Choose a tag to compare

0.54.2

18 Jan 14:23
9fd0444
Compare
Choose a tag to compare

Changed

  • Bump debase-ruby_core_source dependency version; also allow older versions to be used (#1798, #1829)
  • Profiler: Reduce impact of reporting data in multi-process applications (#1807)
  • Profiler: Update API used to report data to backend (#1820)

Fixed

  • Gracefully handle installation on environments where Ruby JIT seems to be available but is actually broken (#1801)

Read the full changeset and the release milestone.

0.54.1

01 Dec 09:44
4d77d37
Compare
Choose a tag to compare

Fixed

  • Skip building profiling native extension when Ruby has been compiled without JIT (#1774, #1776)

Read the full changeset and the release milestone.

0.54.0

18 Nov 00:21
2f413f0
Compare
Choose a tag to compare

Added

  • MongoDB service name resolver when using multi cluster (#1423) (@skcc321)
  • Service name override for ActiveJob in Rails configuration (#1703, #1770) (@hatstand)
  • Profiler: Expose profile duration and start to the UI (#1709)
  • Profiler: Gather CPU time without monkey patching Thread (#1735, #1740)
  • Profiler: Link profiler samples to individual web requests (#1688)
  • Profiler: Capture threads with empty backtrace (#1719)
  • CI-App: Memoize environment tags to improve performance (#1762)
  • CI-App: test.framework_version tag for rspec and cucumber (#1713)

Changed

  • Set minimum version of dogstatsd-ruby 5 series to 5.3 (#1717)
  • Use USER_KEEP/USER_REJECT for RuleSampler decisions (#1769)

Fixed

  • "private method `ruby2_keywords' called" errors (#1712, #1714)
  • Configuration warning when Agent port is a String (#1720)
  • Ensure internal trace buffer respects its maximum size (#1715)
  • Remove erroneous maximum resque version support (#1761)
  • CI-App: Environment variables parsing precedence (#1745, #1763)
  • CI-App: GitHub Metadata Extraction (#1771)
  • Profiler: Missing thread id for natively created threads (#1718)
  • Docs: Active Job integration example code (#1721) (@y-yagi)

Refactored

Read the full changeset and the release milestone.

0.53.0

06 Oct 21:32
8b97105
Compare
Choose a tag to compare

Added

  • ActiveJob integration (#1639) (@bensheldon)
  • Instrument Action Cable subscribe/unsubscribe hooks (#1674) (@agrobbin)
  • Instrument Sidekiq server internal events (heartbeat, job fetch, and scheduled push) (#1685) (@agrobbin)
  • Correlate Active Job logs to the active DataDog trace (#1694) (@agrobbin)
  • Runtime Metrics: Global VM cache statistics (#1680)
  • Automatically send traces to agent Unix socket if present (#1700)
  • CI-App: User Provided Git Metadata (#1662)
  • ActionMailer integration (#1280)

Changed

  • Profiler: Set Sinatra resource setting at beginning of request and delay setting fallback resource (#1628)
  • Profiler: Use most recent event for trace resource name (#1695)
  • Profiler: Limit number of threads per sample (#1699)
  • Profiler: Rename extract_trace_resource to endpoint.collection.enabled (#1702)

Fixed

  • Capture Rails exception before default error page is rendered (#1684)
  • NoMethodError in sinatra integration when Tracer middleware is missing (#1643, #1644) (@mscrivo)
  • CI-App: Require rspec-core for RSpec integration (#1654) (@elliterate)
  • CI-App: Use the merge request branch on merge requests (#1687) (@carlallen)
  • Remove circular dependencies. (#1668) (@saturnflyer)
  • Links in the Table of Contents (#1661) (@chychkan)
  • CI-App: Fix CI Visibility Spec Tests (#1706)

Refactored

  • Profiler: pprof encoding benchmark and improvements (#1511)

Read the full changeset and the release milestone.

0.52.0

09 Aug 15:21
0e3e843
Compare
Choose a tag to compare

Added

  • Add Sorbet typechecker to dd-trace-rb (#1607)
    Note that no inline type signatures were added, to avoid a hard dependency on sorbet.
  • Profiler: Add support for annotating profiler stacks with the resource of the active web trace, if any (#1623)
    Note that this data is not yet visible on the profiling interface.
  • Add error_handler option to GRPC tracer configuration (#1583) (@fteem)
  • User-friendly handling of slow submissions on shutdown (#1601)
  • Profiler: Add experimental toggle to disable the profiling native extension (#1594)
  • Profiler: Bootstrap profiling native extension (#1584)

Changed

  • Profiler: Profiling data is no longer reported when there's less than 1 second of data to report (#1630)
  • Move Grape span resource setting to beginning of request (#1629])
  • Set resource in Sinatra spans at the beginning of requests, and delay setting fallback resource to end of requests (#1628)
  • Move Rails span resource setting to beginning of request (#1626)
  • Make registry a global constant repository (#1572)
  • Profiler: Remove automatic agentless support (#1590)

Fixed

  • Profiler: Fix CPU-time accounting in Profiling when fibers are used (#1636)
  • Don't set peer.service tag on grpc.server spans (#1632)
  • CI-App: Fix GitHub actions environment variable extraction (#1622)
  • Additional Faraday 1.4+ cgroup parsing formats (#1595)
  • Avoid shipping development cruft files in gem releases (#1585)

Read the full changeset and the release milestone.

0.51.1

13 Jul 23:57
Compare
Choose a tag to compare

Fixed

  • AWS-SDK instrumentation without aws-sdk-s3 (#1589, #1592)

Read the full changeset and the release milestone.

0.51.0

12 Jul 22:08
88c80ba
Compare
Choose a tag to compare

Added

  • Semantic Logger trace correlation injection (#1566)
  • New and improved Lograge trace correlation injection (#1555)
  • Profiler: Start profiler on ddtrace/auto_instrument
  • CI-App: Add runtime and OS information (#1587)
  • CI-App: Read metadata from local git repository (#1561)

Changed

  • Rename Datadog::Runtime to Datadog::Core::Environment (#1570)

    As we prepare the Datadog Ruby namespace to better accommodate new products, we are moving a few internal modules to a different location to avoid conflicts.

    None of the affected files are exposed publicly in our documentation, and they are only expected to be used internally and may change at any time, even between patch releases.

    • The following modules have been moved:
    Datadog::Runtime::Cgroup -> Datadog::Core::Environment::Cgroup
    Datadog::Runtime::ClassCount -> Datadog::Core::Environment::ClassCount
    Datadog::Runtime::Container -> Datadog::Core::Environment::Container
    Datadog::Runtime::GC -> Datadog::Core::Environment::GC
    Datadog::Runtime::Identity -> Datadog::Core::Environment::Identity
    Datadog::Runtime::ObjectSpace -> Datadog::Core::Environment::ObjectSpace
    Datadog::Runtime::Socket -> Datadog::Core::Environment::Socket
    Datadog::Runtime::ThreadCount -> Datadog::Core::Environment::ThreadCount
    • Most constants from Datadog::Ext::Runtime have been moved to a new module: Datadog::Core::Environment::Ext.
  • Skip CPU time instrumentation if logging gem is detected (#1557)

Fixed

  • Initialize dogstatsd-ruby in single threaded mode (#1576)

    This should alleviate any existing issues with dogstatsd-ruby resource leaks.

  • Do not use configured dogstatsd-ruby instance when it's an incompatible version (#1560)

  • Ensure tags with special Datadog processing are consistently serialized (#1556)

  • Profiler: NameError during initialization (#1552)

Refactored

  • Improvements to test suite & CI (#1586)
  • Improvements to documentation (#1397)

Read the full changeset and the release milestone.