Releases: DataDog/dd-trace-rb
1.0.0
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
- Docs: Add undocumented Rake option (#1980) (@ecdemis123)
- Improvements to test suite & CI (#1970, #1974, #1991)
- Improvements to documentation (#1984)
Read the full changeset and the release milestone.
1.0.0.beta2
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
- Rake instrumenting while disabled (#1940, #1945)
- Grape instrumenting while disabled (#1940, #1943)
- CI: require 'datadog/ci' not loading dependencies (#1911)
- CI: RSpec shared example file names (#1816) (@Drowze)
- General documentation improvements (#1958, #1933, #1927)
- Documentation fixes & improvements to 1.0 upgrade guide (#1956, #1973, #1939, #1914)
Removed
Refactored
Read the full changeset and the release milestone.
1.0.0.beta1
See https://github.com/DataDog/dd-trace-rb/blob/v1.0.0.beta1/docs/UpgradeGuide.md.
Read the full changeset and the release milestone.
0.54.2
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
0.54.0
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
- Redis client patch to use prepend (#1743) (@justinhoward)
Read the full changeset and the release milestone.
0.53.0
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
toendpoint.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
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
0.51.0
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
toDatadog::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
Read the full changeset and the release milestone.