Recent Releases of https://github.com/DataDog/dd-trace-rb
https://github.com/DataDog/dd-trace-rb - 0.45.0
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
- Option to auto enable all instrumentations (#1260)
- httpclient support (#1311) (@agrobbin)
Changed
- Promote request_queuing out of experimental (#1320)
- Safeguards around distributed HTTP propagator (#1304)
- Improvements to test integrations (#1291, #1303, #1307)
Refactored
- Direct object_id lookup for ActiveRecord connections (#1317)
- Avoid multiple parsing of Ethon URIs (#1302) (@callumj)
- Improvements to test suite & CI (#1309, #1318, #1321, #1323, #1325)
- Improvements to documentation (#1326)
Read the full changeset and the release milestone.
- Ruby
Published by marcotc over 5 years ago
https://github.com/DataDog/dd-trace-rb - 0.44.0
Added
- Ruby 3.0 support (#1281, #1296, #1298)
- Rails 6.1 support (#1295)
- Qless integration (#1237) (@sco11morgan)
- AWS Textract service to AWS integration (#1270) (@Sticksword)
- Ability to disable Redis argument capture (#1276) (@callumj)
- Upload coverage report to Codecov (#1289)
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 alignsdd-trace-rbwith other language tracers.
Fixed
- Disambiguate resource names for Grape endpoints with shared paths (#1279) (@pzaich)
- Remove invalid Jenkins URL from CI integration (#1283)
Refactored
- Reduce memory allocation when unnecessary (#1273, #1275) (@callumj)
- Improvements to test suite & CI (#847, #1256, #1257, #1266, #1272, #1277, #1278, #1284, #1286, #1287, #1293, #1299)
- Improvements to documentation (#1262, #1263, #1264, #1267, #1268, #1297)
Read the full changeset and the release milestone.
- Ruby
Published by marcotc over 5 years ago
https://github.com/DataDog/dd-trace-rb - 0.43.0
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_errorargument onDatadog::Tracer#trace(#1220)
Changed
- Update
TokenBucket#effective_ratecalculation (#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
- Improvements to test suite (#1232, #1244)
- Improvements to documentation (#1243, #1218) (@cjford)
Read the full changeset and the release milestone.
- Ruby
Published by marcotc over 5 years ago
https://github.com/DataDog/dd-trace-rb - 0.42.0
Added
-
Increase Resque support to include 2.0 (#1213) (@erict-square)
-
Improve gRPC Propagator to support metadata array values (#1203) (@mdehoog)
-
Add CPU Benchmarks, Diagnostics to tests (#1188, #1198)
-
Access active correlation by Thread (#1200)
-
Improve delayed_job instrumentation (#1187) (@norbertnytko)
Changed
Fixed
-
Improve Rails
log_injectionoption 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.
- Ruby
Published by ericmustin almost 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.41.0
Added
- Improve duration counting using monotonic clock (#424, #1173) (@soulcutter)
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
Loggerclass verification (#1181) (@bartekbsh)- This allows users to pass in a custom logger that does not inherit from
Loggerclass.
- This allows users to pass in a custom logger that does not inherit from
- Correct tracer buffer metric counting (#1182)
- Fix Span#pretty_print for empty duration (#1183)
Refactored
- Improvements to test suite & CI (#1179, #1184, #1177, #1178, #1176)
- Reduce generated Span ID range to fit in Fixnum (#1189)
Read the full changeset and the release milestone.
- Ruby
Published by ericmustin almost 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.40.0
This releases includes BREAKING changes for nested modular Sinatra applications (see "Fixed" section).
And Ruby 1.9 support reaches its End-Of-Life (see "Removed" section).
Added
- Rails
log_injectionoption to auto enable log correlation (#1157) - Que integration (#1141, #1146) (@hs-bguven)
Components#startup!hook (#1151)- Code coverage report (#1159)
- Every commit now has a
coverageCI step that contains the code coverage report. This report can be found in theArtifactstab of that CI step, undercoverage/index.html.
- Every commit now has a
Changed
- Use a single top level span for Racecar consumers (#1150) (@dasch)
Fixed
-
Sinatra nested modular applications possibly leaking spans (#1035, #1145)
- BREAKING for nested modular Sinatra applications only:
class Nested < Sinatra::Base end class TopLevel < Sinatra::Base use Nested # Nesting happens here end - Non-breaking for classic applications nor modular non-nested applications.
Fixes issues introduced with #1015 (in 0.35.0), when we first introduced Sinatra support for modular applications.
The main issue we had to solve for modular support is how to handle nested applications, as only one application is actually responsible for handling the route. A naive implementation would cause the creation of nested
sinatra.requestspans, even for applications that did not handle the request. This is technically correct, as Sinatra is traversing that middleware, accruing overhead, but that does not aligned with our existing behavior of having a singlesinatra.requestspan.While trying to achieve backwards-compatibility, we had to resort to a solution that turned out brittle:
sinatra.requestspans had to start in one middleware level and finished it in another. This allowed us to only capture thesinatra.requestfor the matching route, and skip the non-matching one. This caused unexpected issues on some user setups, specially around Sinatra middleware that created spans in between the initialization and closure ofsinatra.requestspans.This change now address these implementation issues by creating multiple
sinatra.request, one for each traversed Sinatra application, even non-matching ones. This instrumentation is more correct, but at the cost of being a breaking change for nested modular applications.Please see #1145 for more information, and example screenshots on how traces for affected applications will look like.
- BREAKING for nested modular Sinatra applications only:
-
Rack/Rails span error propagation with
rescue_from(#1155, #1162) -
Prevent logger recursion during startup (#1158)
-
Race condition on new worker classes (#1154)
- These classes represent future work, and not being used at the moment.
Refactored
- Run CI tests in parallel (#1156)
- Migrate minitest tests to RSpec (#1127, #1128, #1133, #1149, #1152, #1153)
- Improvements to test suite (#1134, #1148, #1163)
- Improvements to documentation (#1138)
Removed
- Ruby 1.9 support ended, as it transitions from Maintenance to End-Of-Life after one year (#1137)
- GitLab status check when not applicable (#1160)
- Allows for PRs pass all status checks once again. Before this change, a
dd-gitlab/copy_to_s3check would never leave the "Pending" status. This check tracks the deployment of a commit to an internal testing platform, which currently only happens onmasterbranch or when manually triggered internally.
- Allows for PRs pass all status checks once again. Before this change, a
Read the full changeset and the release milestone.
- Ruby
Published by marcotc almost 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.39.0
Added
- JRuby 9.2 support (#1126)
- Sneakers integration (#1121) (@janz93)
Changed
- Consistent environment variables across languages (#1115)
- Default logger level from WARN to INFO (#1120) (@gingerlime)
- This change also reduces the startup environment log message to INFO level (#1104)
Fixed
- HTTP::StateError on error responses for http.rb (#1116, #1122) (@evan-waters)
- Startup log error when using the test adapter (#1125, #1131) (@benhutton)
- Warning message for Faraday < 1.0 (#1129) (@fledman, @tjwp)
- Propagate Rails error message to Rack span (#1124)
Refactored
- Improved ActiveRecord documentation (#1119)
- Improvements to test suite (#1105, #1118)
Read the full changeset and the release milestone.
- Ruby
Published by marcotc about 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.38.0
Added
- http.rb integration (#529, #853)
- Kafka integration (#1070) (@tjwp)
- Span#set_tags (#1081) (@DocX)
- retry_count tag for Sidekiq jobs (#1089) (@elyalvarado)
- Startup environment log (#1104, #1109)
- DD_SITE and DD_API_KEY configuration (#1107)
Changed
- Auto instrument Faraday default connection (#1057)
- Sidekiq client middleware is now the same for client and server (#1099) (@drcapulet)
- Single pass SpanFilter (#1071) (@tjwp)
Fixed
- Ensure fatal exceptions are propagated (#1100)
- Respect child_of: option in Tracer#trace (#1082) (@DocX)
- Improve Writer thread safety (#1091) (@fledman)
Refactored
- Improvements to test suite (#1092, #1103)
Read the full changeset and the release milestone.
- Ruby
Published by marcotc about 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.37.0
Refactored
- Documentation improvements regarding Datadog Agent defaults (#1074) (@cswatt)
- Improvements to test suite (#1043, #1051, #1062, #1075, #1076, #1086)
Removed
-
DEPRECATION: Deprecate Contrib::Configuration::Settings#tracer= (#1072, #1079)
-
The
tracer:option is no longer supported for integration configuration. A deprecation warning will be issued when this option is used. -
Tracer instances are dynamically created when
ddtraceis reconfigured (throughDatadog.configure{}calls).A reference to a tracer instance cannot be stored as it will be replaced by a new instance during reconfiguration.
Retrieving the global tracer instance, by invoking
Datadog.tracer, is the only safe mechanism to acquire the active tracer instance.Allowing an integration to set its tracer instance is effectively preventing that integration from dynamically retrieving the current active tracer in the future, thus causing it to record spans in a stale tracer instance. Spans recorded in a stale tracer instance will look disconnected from their parent context.
-
-
BREAKING: Remove Pin#tracer= and DeprecatedPin#tracer= (#1073)
- The
PinandDeprecatedPinare internal tools used to provide more granular configuration for integrations. - The APIs being removed are not public nor have been externally documented. The
DeprecatedPinspecifically has been considered deprecated since 0.20.0. - This removal is a continuation of #1079 above, thus carrying the same rationale.
- The
Migration
- Remove
tracerargument provided to integrations (e.g.c.use :rails, tracer: ...). - Remove
tracerargument provided toPinorDeprecatedPininitializers (e.g.Pin.new(service, tracer: ...)). - If you require a custom tracer instance, use a global instance configuration:
Datadog.configure do |c| c.tracer.instance = custom_tracer end
Read the full changeset and the release milestone.
- Ruby
Published by marcotc about 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.36.0
Changed
- Prevent trace components from being re-initialized multiple times during setup (#1037)
Fixed
- Allow Rails patching if Railties are loaded (#993, #1054) (@mustela, @bheemreddy181, @vramaiah)
- Pin delegates to default tracer unless configured (#1041)
Refactored
- Improvements to test suite (#1027, #1031, #1045, #1046, #1047)
Read the full changeset and the release milestone.
- Ruby
Published by marcotc about 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.35.2
Fixed
- Internal tracer HTTP requests generating traces (#1030, #1033) (@gingerlime)
Datadog.configureforcing all options to eager load (#1032, #1034) (@kelvin-acosta)
Read the full changeset and the release milestone.
- Ruby
Published by marcotc over 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.35.1
Fixed
- Components#teardown! NoMethodError (#1021, #1023) (@bzf)
Read the full changeset and the release milestone.
- Ruby
Published by marcotc over 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.35.0
Added
- Chunk large trace payloads before flushing (#818, #840) (@SpyMachine)
- Support for Sinatra modular apps (#486, #913, #1015) (@jpaulgs, @tomasv, @ZimbiX)
- active_job support for Resque (#991) (@stefanahman, @psycholein)
- JRuby 9.2 to CI test matrix (#995)
TraceWriterandAsyncTraceWriterworkers (#986)- Runtime metrics worker (#988)
Changed
- Populate env, service, and version from tags (#1008)
- Extract components from configuration (#996)
- Extract logger to components (#997)
- Extract runtime metrics worker from
Writer(#1004) - Improvements to Faraday documentation (#1005)
Fixed
- Runtime metrics not starting after #write (#1010)
Refactored
- Improvements to test suite (#842, #1006, #1009)
Read the full changeset and the release milestone.
- Ruby
Published by marcotc over 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.34.2
Changed
- Revert Rails applications setting default
envif none are configured. (#1000) (@errriclee)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.34.1
Changed
- Rails applications set default
serviceandenvif none are configured. (#990)
Fixed
- Some configuration settings not applying (#989, #990) (@rahul342)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.34.0
New in this release are the env, service, tags, and version settings, which can be used to describe and tag the application's traces and metrics automatically:
Datadog.configure do |c|
c.env = 'production' # Can be set with DD_ENV
c.service = 'billing-api' # Can be set with DD_SERVICE
c.tags = { 'team' => 'accounts' } # Can be set with DD_TAGS
c.version = '1.2.0.alpha' # Can be set with DD_VERSION
end
Please see the documentation for more details about this new feature.
Added
Datadog::Eventfor simple pub-sub messaging (#972)Datadog::Workersfor trace writing (#969, #973)_dd.measuredtag to some integrations for more statistics (#974)env,service,version,tagsconfiguration for auto-tagging (#977, #980, #982, #983, #985)- Multiplexed configuration for Ethon, Excon, Faraday, HTTP integrations (#882, #953) (@stormsilver)
Fixed
- Runtime metrics configuration dropping with new writer (#967, #968) (@ericmustin)
- Faraday "unexpected middleware" warnings on v0.x (#965, #971)
- Presto configuration (#975)
- Test suite issues (#981)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.33.1
Fixed
- NoMethodError when activating instrumentation for non-existent library (#964, #966) (@roccoblues, @brafales)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.33.0
Added
- Instrumentation for Presto (#775, #920, #961) (@ahammel, @ericmustin)
- Sidekiq job argument tagging (#933) (@mantrala)
- Support for multiple Redis services (#861, #937, #940) (@mberlanda)
- Support for Sidekiq w/ Delayed extensions (#798, #942) (@joeyAghion)
- Setter/reset behavior for configuration options (#957)
- Priority sampling rate tag (#891)
Changed
- Enforced minimum version requirements for instrumentation (#944)
- RubyGems minimum version requirement 2.0.0 (#954) (@Joas1988)
- Relaxed Rack minimum version to 1.1.0 (#952)
Fixed
- AWS instrumentation patching when AWS is partially loaded (#938, #945) (@letiesperon, @illdelph)
- NoMethodError for RuleSampler with priority sampling (#949, #950) (@BabyGroot)
- Runtime metrics accumulating service names when disabled (#956)
- Sidekiq instrumentation incompatibility with Rails 6.0.2 (#943, #947) (@pj0tr)
- Documentation tweaks (#948, #955) (@mstruve, @link04)
- Various test suite issues (#930, #932, #951, #960)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.32.0
Added
- New transport: Datadog::Transport::IO (#910)
- Dual License (#893, #921)
Changed
- Improved annotation of
net/httpspans during exception (#888, #907) (@djmb, @ericmustin) - RuleSampler is now the default sampler; no behavior changes by default (#917)
Refactored
- Improved support for multiple tracer instances (#919)
- Improvements to test suite (#909, #928, #929)
Read the full changeset and the release milestone.
- Ruby
Published by marcotc over 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.31.1
Fixed
- Implement SyncWriter#stop method (#914, #915) (@Yurokle)
- Fix references to Datadog::Tracer.log (#912)
- Ensure http.status_code tag is always a string (#927)
Refactored
- Improvements to test suite & CI (#911, #918)
Read the full changeset and the release milestone.
- Ruby
Published by marcotc over 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.31.0
Added
- Ruby 2.7 support (#805, #896)
- ActionCable integration (#132, #824) (@renchap, @ericmustin)
- Faraday 1.0 support (#906)
- Set resource for Rails template spans (#855, #881) (@djmb)
- at_exit hook for graceful Tracer shutdown (#884)
- Environment variables to configure RuleSampler defaults (#892)
Changed
- Updated partial trace flushing to conform with new back-end requirements (#845)
- Store numeric tags as metrics (#886)
- Moved logging from Datadog::Tracer to Datadog::Logger (#880)
- Changed default RuleSampler rate limit from unlimited to 100/s (#898)
Fixed
- SyncWriter incompatibility with Transport::HTTP::Client (#903, #904) (@Yurokle)
Refactored
- Improvements to test suite & CI (#815, #821, #841, #846, #883, #895)
Read the full changeset and the release milestone.
- Ruby
Published by marcotc over 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.30.1
Fixed
- NoMethodError when configuring tracer with SyncWriter (#899, #900) (@Yurokle)
- Spans associated with runtime metrics when disabled (#885)
Refactored
- Improvements to test suite & CI (#815, #821, #846, #883, #890, #894)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.30.0
Added
- Additional tracer health metrics (#867)
- Integration patching instrumentation (#871)
- Improvements to sampling algorithm (#854)
Fixed
- Rails template layout name error (#857, #872) (@djmb)
Read the full changeset and the release milestone.
- Ruby
Published by marcotc over 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.29.1
Fixed
- Priority sampling not activating by default (#868)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.26.1
Fixed
- Priority sampling not activating by default (#868)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.29.0
Added
- Tracer health metrics (#838, #859)
Changed
- Default trace buffer size from 100 to 1000 (#865)
- Rack request start headers to accept more values (#832) (@JamesHarker)
- Faraday to apply default instrumentation out-of-the-box (#786, #843) (@mdross95)
Fixed
- Synthetics trace context being ignored (#856)
Refactored
- Tracer buffer constants (#851)
Removed
- Some old Ruby 1.9 code (#819, #844)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 6 years ago
https://github.com/DataDog/dd-trace-rb - 0.28.0
Added
- Support for Rails 6.0 (#814)
- Multiplexing on hostname/port for Dalli (#823)
- Support for Redis array arguments (#796, #817) (@brafales)
Refactored
- Encapsulate span resource name in Faraday integration (#811) (@giancarlocosta)
Read the full changeset and the release milestone.
- Ruby
Published by marcotc almost 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.27.0
Support for Ruby < 2.0 is removed. Plan for timeline is as follows:
- 0.25.0: Support for Ruby < 2.0 is deprecated; retains full feature support.
- 0.26.0: Last version to support Ruby < 2.0; any new features will not support 1.9.
- 0.27.0: Support for Ruby < 2.0 is removed.
Version 0.26.x will receive only critical bugfixes for 1 year following the release of 0.26.0 (August 6th, 2020.)
Added
- Support for Ruby 2.5 & 2.6 (#800, #802)
- Ethon integration (#527, #778) (@al-kudryavtsev)
Refactored
- Rails integration into smaller integrations per component (#747, #762, #795)
Removed
- Support for Ruby 1.9 (#791)
Read the full changeset and the release milestone.
- Ruby
Published by delner almost 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.26.0
Support for Ruby < 2.0 is deprecated. Plan for timeline is as follows:
- 0.25.0: Support for Ruby < 2.0 is deprecated; retains full feature support.
- 0.26.0: Last version to support Ruby < 2.0; any new features will not support 1.9.
- 0.27.0: Support for Ruby < 2.0 is removed.
Version 0.26.x will receive only critical bugfixes for 1 year following the release of 0.26.0 (August 6th, 2020.)
Added
- Container ID tagging for containerized environments (#784)
Refactored
- Datadog::Metrics constants (#789)
Removed
- Datadog::HTTPTransport and related components (#782)
Read the full changeset and the release milestone.
- Ruby
Published by delner about 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.25.1
Fixed
- Redis integration not quantizing AUTH command (#776)
Read the full changeset and the release milestone.
- Ruby
Published by delner about 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.25.0
Support for Ruby < 2.0 is deprecated. Plan for timeline is as follows:
- 0.25.0: Support for Ruby < 2.0 is deprecated; retains full feature support.
- 0.26.0: Last version to support Ruby < 2.0; any new features will not support 1.9.
- 0.27.0: Support for Ruby < 2.0 is removed.
Version 0.26.x will receive only critical bugfixes for 1 year following the release of 0.26.0.
Added
- Unix socket support for transport layer (#770)
Changed
- Renamed 'ForcedTracing' to 'ManualTracing' (#765)
Fixed
- HTTP headers for distributed tracing sometimes appearing in duplicate (#768)
Refactored
- Transport layer (#628)
Deprecated
- Ruby < 2.0 support (#771)
- Use of
Datadog::HTTPTransport(#628) - Use of
Datadog::Ext::ForcedTracing(#765)
Read the full changeset and the release milestone.
- Ruby
Published by delner about 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.24.0
Added
- B3 header support (#753)
- Hostname tagging option (#760)
- Contribution and development guides (#754)
Read the full changeset and the release milestone.
- Ruby
Published by delner about 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.23.3
Fixed
- Integrations initializing tracer at load time (#756)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.23.2
Fixed
- Span types for HTTP, web, and some datastore integrations (#751)
- AWS integration not patching service-level gems (#707, #752) (@alksl, @tobypinder)
- Rails 6 warning for
parent_name(#750) (@sinsoku)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.23.1
Fixed
- NoMethodError runtime_metrics for SyncWriter (#748)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.23.0
Added
- Error status support via tags for OpenTracing (#739)
- Forced sampling support via tags (#720)
Fixed
- Wrong return values for Rake integration (#742) (@Redapted)
Removed
- Obsolete service telemetry (#738)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.22.0
In this release we are adding initial support for the beta Runtime metrics collection feature.
Changed
- Add warning log if an integration is incompatible (#722) (@ericmustin)
Added
- Initial beta support for Runtime metrics collection (#677)
Read the full changeset and the release milestone.
- Ruby
Published by brettlangdon over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.21.2
Changed
- Support Mongo gem 2.5+ (#729, #731) (@ricbartm)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.21.1
Changed
- Support
TAG_ENABLEDfor custom instrumentation with analytics. (#728)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.21.0
Added
- Trace analytics support (#697, #715)
- HTTP after_request span hook (#716, #724)
Fixed
- Distributed traces with IDs in 2^64 range being dropped (#719)
- Custom logger level forced to warning (#681, #721) (@blaines, @ericmustin)
Refactored
- Global configuration for tracing into configuration API (#714)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.20.0
This release will log deprecation warnings for any usage of Datadog::Pin.
These changes are backwards compatible, but all integration configuration should be moved away from Pin and to the configuration API instead.
Added
- Propagate synthetics origin header (#699)
Changed
- Enable distributed tracing by default (#701)
Fixed
- Fix Rack http_server.queue spans missing from distributed traces (#709)
Refactored
- Refactor MongoDB to use instrumentation module (#704)
- Refactor HTTP to use instrumentation module (#703)
- Deprecate GRPC global pin in favor of configuration API (#702)
- Deprecate Grape pin in favor of configuration API (#700)
- Deprecate Faraday pin in favor of configuration API (#696)
- Deprecate Dalli pin in favor of configuration API (#693)
Read the full changeset and the release milestone.
- Ruby
Published by brettlangdon over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.19.1
Added
- Documentation for Lograge implementation (#683, #687) (@nic-lan)
Fixed
- Priority sampling dropping spans (#686)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.19.0
This release adds a few new features for users who use Datadog's logging, trace search & analytics feature.
Easy correlation between logs and tracing
The tracer now has active_correlation method which can return the trace ID and span ID of the active trace. This can be used to correlate application logs with traces.
Rails users can implement this with:
Rails.application.configure do
config.log_tags = [proc { Datadog.tracer.active_correlation.to_s }]
end
For more details, and other implementations for Ruby applications, check out the documentation.
Opt-in support for adding additional instrumentation to trace search & analytics
Some integrations now can be configured with a event_sample_rate option to enable sampling their spans for trace search for analytics, including:
- Delayed Job
- Racecar
- Rack
- Rake
- Resque
- Shoryuken
- Sidekiq
- Sucker Punch
For example, to enable for Rack, add the following to your configuration file:
Datadog.configure do |c|
c.use :rack, event_sample_rate: 1.0
end
To learn more about trace search and analytics, check out our blog post and documentation. For more details on how to implement, check out the tracer documentation.
Added
- Tracer#active_correlation for adding correlation IDs to logs. (#660, #664, #673)
- Opt-in support for
event_sample_ratetag for some integrations. (#665, #666)
Changed
- Priority sampling enabled by default. (#654)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.18.3
Fixed
- Mongo
NoMethodErrorwhen no span available during#failed. (#674, #675) (@Azure7111) - Rack deprecation warnings firing with some 3rd party libraries present. (#672)
- Shoryuken resource name when used with ActiveJob. (#671) (@aurelian)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.18.2
Fixed
- Unfinished Mongo spans when SASL configured (#658) (@zachmccormick)
- Possible performance issue with unexpanded Rails cache keys (#630, #635) (@gingerlime)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.18.1
Fixed
- ActiveRecord
SystemStackErrorwith some 3rd party libraries. (@EpiFouloux, @tjgrathwell, @guizmaii)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.18.0
Added
- Shoryuken integration (#538, #626, #655) (@steveh, @JustSnow)
- Sidekiq client integration (#602, #650) (@dirk)
- Datadog::Shim for adding instrumentation (#648)
Changed
- Use
DD_AGENT_HOSTandDD_TRACE_AGENT_PORTenv vars if available (#631) - Inject
:connectionintosql.active_recordevent (#640, #649, #656) (@guizmaii) - Return default configuration instead of
nilon miss (#651)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.17.3
Fixed
- Bad resource names for Grape::API objects in Grape 1.2.0 (#639)
- RestClient raising NoMethodError when response is
nil(#636, #642) (@frsantos) - Rack middleware inserted twice in some Rails applications (#641)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.17.2
Fixed
- Resque integration shutting down tracer when forking is disabled (#637)
Read the full changeset and the release milestone.
- Ruby
Published by pawelchcki over 7 years ago
https://github.com/DataDog/dd-trace-rb - 0.17.1
Fixed
- RestClient incorrect app type (#583) (@gaborszakacs)
- DelayedJob incorrect job name when used with ActiveJob (#605) (@agirlnamedsophia)
Read the full changeset and the release milestone.
- Ruby
Published by delner almost 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.17.0
Added
- [BETA] Span memory
allocationsattribute (#597) (@dasch)
Changed
- Use Rack Env to update resource in Rails (#580) (@dasch)
- Expand support for Sidekiq to 3.5.4+ (#593)
- Expand support for mysql2 to 0.3.21+ (#578)
Refactored
- Upgraded integrations to new API (#544)
- Encoding classes into modules (#598)
Read the full changeset and the release milestone.
- Ruby
Published by delner almost 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.16.1
Fixed
- Priority sampling response being mishandled (#591)
- HTTP open timeout to agent too long (#582)
Read the full changeset and the release milestone.
- Ruby
Published by delner almost 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.16.0
Version 0.16.0 adds support for OpenTracing 0.4.1 (in combination with Ruby 2.1), allowing applications instrumented with OpenTracing to send traces through the Datadog Ruby tracer.
Setting up OpenTracing with Datadog
Add the following to your OpenTracing configuration file (e.g. initializers/opentracer.rb):
require 'opentracing'
require 'ddtrace'
require 'ddtrace/opentracer'
# Activate the Datadog tracer for OpenTracing
OpenTracing.global_tracer = Datadog::OpenTracer::Tracer.new
This will configure OpenTracing to send its traces through the Datadog tracer. By default, only OpenTracing spans will be sent, but additional Datadog instrumentation can optionally be activated using Datadog.configure. See the documentation for more details.
Changelog
Added
- OpenTracing support (#517)
middlewareoption for disabling Rails trace middleware. (#552)
Read the full changeset and the release milestone.
- Ruby
Published by delner almost 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.15.0
Added
- Rails 5.2 support (#535)
- Context propagation support for
Concurrent::Future(#415, #496)
Fixed
- Grape uninitialized constant TraceMiddleware (#525, #533) (@dim)
- Signed integer trace and span IDs being discarded in distributed traces (#530) (@alloy)
Read the full changeset and the release milestone.
- Ruby
Published by delner almost 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.14.2
Fixed
- Sampling priority from request headers not being used (#521)
Read the full changeset and the release milestone.
- Ruby
Published by pawelchcki almost 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.14.1
Changed
- Reduce verbosity of connection errors in log (#515)
Fixed
- Sequel 'not a valid integration' error (#514, #516) (@steveh)
Read the full changeset and the release milestone.
- Ruby
Published by delner almost 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.14.0
Added
- RestClient integration (#422, #460)
- DelayedJob integration (#393 #444)
- Version information to integrations (#483)
- Tracer#active_root_span helper (#503)
Changed
- Resque to flush traces when Job finishes instead of using SyncWriter (#474)
- ActiveRecord to allow configuring multiple databases (#451)
- Integrations configuration settings (#450, #452, #451)
Fixed
- Context propagation for distributed traces when context is full (#502)
- Rake shutdown tracer after execution (#487) (@kissrobber)
- Deprecation warnings fired using Unicorn (#508)
Read the full changeset and the release milestone.
- Ruby
Published by delner about 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.14.0.rc1
Added
- RestClient integration (#422, #460)
- Tracer#active_root_span helper (#503)
Fixed
- Context propagation for distributed traces when context is full (#502)
Read the full changeset
- Ruby
Published by delner about 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.13.2
Fixed
- Context propagation for distributed traces when context is full (#502)
Read the full changeset and the release milestone.
- Ruby
Published by delner about 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.14.0.beta2
Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.14.0.beta2
Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.14.0.beta1...v0.14.0.beta2
Fixed
- Rake shutdown tracer after execution (#487) @kissrobber
Read the full changeset
- Ruby
Published by pawelchcki about 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.14.0.beta1
Changed
- Resque to flush traces when Job finishes instead of using SyncWriter (#474)
- ActiveRecord to allow configuring multiple databases (#451)
- Integrations configuration settings (#450, #452, #451)
Fixed
- Ruby warnings during tests (#499)
- Tests failing intermittently on Ruby 1.9.3 (#497)
Added
- DelayedJob integration (#393 #444)
- Version information to integrations (#483)
Read the full changeset
- Ruby
Published by pawelchcki about 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.13.1
Changed
- Configuration class variables don't lazy load (#477)
- Default tracer host
localhost-->127.0.0.1(#466, #480) (@NobodysNightmare)
Fixed
- Workers not shutting down quickly in some short running processes (#475)
- Missing documentation for mysql2 and Rails (#476, #488)
- Missing variable in rescue block (#481) (@kitop)
- Unclosed spans in ActiveSupport::Notifications with multithreading (#431, #478) (@senny)
Read the full changeset and the release milestone.
- Ruby
Published by delner about 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.13.0
Changes to quantization
Quantization behavior for MongoDB can be configured: see the API documentation for Mongo
Changelog
Added
- Sequel integration (supporting Ruby 2.0+) (#171, #367) (@randy-girard, @twe4ked, @palin)
- gRPC integration (supporting Ruby 2.2+) (#379, #403) (@Jared-Prime)
- ActiveModelSerializers integration (#340) (@sullimander)
- Excon integration (#211) (@walterking)
- Rake integration (supporting Ruby 2.0+, Rake 12.0+) (#409)
- Request queuing tracing to Rack (experimental) (#272)
- ActiveSupport::Notifications::Event helper for event tracing (#400)
- Request and response header tags to Rack (#389)
- MySQL2 integration (#453) (@jamiehodge)
- Sidekiq tag job delay (#458) (@gottfrois)
- Sinatra tag request id (#427)
Fixed
- Excon close spans on errors (#426) (@jeffjo)
- Elasticsearch improve quantization of ids (#458)
- Mongo allow enabling quantization of collection name (#463)
Refactored
- Hash quantization into core library (#410)
- Mongo uses Hash quantization library (#463)
Changed
- Hash quantization truncates arrays with nested objects (#463)
Read the full changeset and the release milestone
- Ruby
Published by pawelchcki about 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.12.1
Changed
- Cache configuration
Proxyobjects (#446) freezemore constant strings, to improve memory usage (#446)Utils#truncateto use slightly less memory (#446)
Fixed
- Net/HTTP integration not permitting
service_nameto be overridden. (#407, #430) (@undergroundwebdesigns) - Block not being passed through Elasticsearch client initialization. (#421) (@shayonj)
- Devise raising
NoMethodErrorwhen bad login attempts are made. (#419, #420) (@frsantos) - AWS spans using wrong resource name (#374, #377) (@jfrancoist)
- ActionView
NoMethodErroron very long traces. (#445, #447) (@jvalanen)
Refactored
- ActionController patching strategy using modules. (#439)
- ActionView tracing strategy. (#445, #447)
Read the full changeset and the release milestone.
- Ruby
Published by delner about 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.13.0.beta1
Read the full changeset.
Added
- Sequel integration (supporting Ruby 2.0+) (#171) (@randy-girard, @twe4ked)
- gRPC integration (supporting Ruby 2.2+) (#379, #403) (@Jared-Prime)
- ActiveModelSerializers integration (#340) (@sullimander)
- Excon integration (#211) (@walterking)
- Rake integration (supporting Ruby 2.0+, Rake 12.0+) (#409)
- Request queuing tracing to Rack (experimental) (#272)
- ActiveSupport::Notifications::Event helper for event tracing (#400)
- Request and response header tags to Rack (#389)
Refactored
- Hash quantization into core library (#410)
- Ruby
Published by delner over 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.12.0
Changes to quantization
Rack and Elasticsearch now have quantization enabled by default.
- Rack's
http.urlquantizes query string values. - Elasticsearch's
elasticsearch.bodyquantizes body values.
Quantization behavior can be configured: see the API documentation for Rack and Elasticsearch.
Breaking changes
-
If the
rackintegration was being configured withmiddleware_names, now it must also provide theapplicationoption, with a reference to the completed Rack application stack. This is necessary so middleware can be properly instrumented.If you are using
railsand would like to activatemiddleware_names, you can provide themiddleware_namesoption torailswithout theapplicationoption (which therailsintegration will automatically provide torack.) See the documentation for Rack and Rails for more details.
Changelog
Read the full changeset and the release milestone.
Added
- GraphQL integration (supporting graphql 1.7.9+) (#295)
- ActiveRecord object instantiation tracing (#311, #334)
- Subscriber module for ActiveSupport::Notifications tracing (#324, #380, #390, #395) (@dasch)
- HTTP quantization module (#384)
- Partial flushing option to tracer (#247, #397)
Changed
- Rack applies URL quantization by default (#371)
- Elasticsearch applies body quantization by default (#362)
- Context for a single trace now has hard limit of 100,000 spans (#247)
- Tags with
rails.db.xtoactive_record.db.xinstead (#396)
Fixed
- Loading the ddtrace library after Rails has fully initialized can result in load errors. (#357)
- Some scenarios where
middleware_namescould result in bad resource names (#354) - ActionController instrumentation conflicting with some gems that monkey patch Rails (#391)
Deprecated
- Use of
:datadog_rack_request_spanvariable in favor of'datadog.rack_request_span'in Rack. To be removed in 0.14.0 (#365, #392)
Refactored
- Racecar to use ActiveSupport::Notifications Subscriber module (#381)
- Rails to use ActiveRecord integration instead of its own implementation (#396)
- ActiveRecord to use ActiveSupport::Notifications Subscriber module (#396)
- Ruby
Published by delner over 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.12.0.rc1
Overview
0.12.0 adds a variety of new features, and introduces a few changes to existing functionality.
Changes to quantization
Rack and Elasticsearch now have quantization enabled by default.
- Rack's
http.urlquantizes query string values. - Elasticsearch's
elasticsearch.bodyquantizes body values.
Quantization behavior can be configured: see the API documentation for Rack and Elasticsearch.
Breaking changes
-
If the
rackintegration was being configured withmiddleware_names, now it must also provide theapplicationoption, with a reference to the completed Rack application stack. This is necessary so middleware can be properly instrumented.If you are using
railsand would like to activatemiddleware_names, you can provide themiddleware_namesoption torailswithout theapplicationoption (which therailsintegration will automatically provide torack.) See the documentation for Rack and Rails for more details.
Changelog
Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.12.0.rc1
Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.4...v0.12.0.rc1
Added
- GraphQL integration (supporting graphql 1.7.9+) (#295)
- ActiveRecord object instantiation tracing (#311, #334)
- Subscriber module for ActiveSupport::Notifications tracing (#324, #380, #390, #395) (@dasch)
- HTTP quantization module (#384)
- Partial flushing option to tracer (#247, #397)
Changed
- Rack applies URL quantization by default (#371)
- Elasticsearch applies body quantization by default (#362)
- Context for a single trace now has hard limit of 100,000 spans (#247)
- Tags with
rails.db.xtoactive_record.db.xinstead (#396)
Fixed
- Loading the ddtrace library after Rails has fully initialized can result in load errors. (#357)
- Some scenarios where
middleware_namescould result in bad resource names (#354) - ActionController instrumentation conflicting with some gems that monkey patch Rails (#391)
Deprecated
- Use of
:datadog_rack_request_spanvariable in favor of'datadog.rack_request_span'in Rack. To be removed in 0.14.0 (#365, #392)
Refactored
- Racecar to use ActiveSupport::Notifications Subscriber module (#381)
- Rails to use ActiveRecord integration instead of its own implementation (#396)
- ActiveRecord to use ActiveSupport::Notifications Subscriber module (#396)
- Ruby
Published by delner over 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.11.4
Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.4
Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.3...v0.11.4
Fixed
- Transport body parsing when downgrading (#369)
- Transport incorrectly attempting to apply sampling to service metadata (#370)
sql.active_recordtraces showing incorrect adapter settings when non-default adapter used (#383)
Read the full changeset and the release milestone.
- Ruby
Published by delner over 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.11.3
Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.3
Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.2...v0.11.3
Added
- CHANGELOG.md (#350, #363) (@awendt)
http.request_idtag to Rack spans (#335)- Tracer configuration to README.md (#332) (@noma4i)
Fixed
- Extra indentation in README.md (#349) (@ck3g)
http.urlwhen Rails raises exceptions (#351, #353)- Rails from being patched twice (#352)
- 4XX responses from middleware being marked as errors (#345)
- Rails exception middleware sometimes not being inserted at correct position (#345)
- Processing pipeline documentation typo (#355) (@MMartyn)
- Loading the ddtrace library after Rails has fully initialized can result in load errors. (#357)
- Use of block syntax with Rails
rendernot working (#359, #360) (@dorner)
- Ruby
Published by delner over 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.12.0.beta2
Bugfixes
- Addresses an issue where loading the
ddtracelibrary after Rails has fully initialized can result in load errors. (#357)
Read the full changeset.
- Ruby
Published by delner over 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.12.0.beta1
New integrations
GraphQL tracing support (#295, docs)
GraphQL is now supported (version 1.7.9+ is required). To activate the integration, use the following configuration:
Datadog.configure do |c|
c.use :graphql,
service_name: 'graphql',
schemas: [YourSchema]
end
ActiveRecord object instantiation tracing (#311, #334, docs)
ActiveRecord queries can spend significant time instantiating Ruby objects from database queries. This feature adds spans to track object instantiation as a part of a trace. Supported in both Rails and standalone applications that implement ActiveRecord.
Improvements
- Rack applications now tag their traces with the
http.request_idtag, which containsX-Request-Idheader value. Great for associating traces with requests in HTTP logs. (#330, #335)
Read the full changeset.
- Ruby
Published by delner over 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.11.2
Critical update
In the previous 0.11.1 release the PR #322 removed the Monkey module that was used as a main API to activate libraries and frameworks integrations, and it was entirely replaced with the new API that changes the way how libraries are instrumented.
This release introduces the Monkey API again (#336) as a no-op interface, that prints a deprecation warning in your logs as:
Datadog::Monkey has been REMOVED as of version 0.11.1.
All calls to Datadog::Monkey are no-ops.
*Implementations using Monkey will no longer function*.
Upgrade to the new configuration API using the migration guide here:
https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.0
The no-op Monkey API will be available for the next releases to avoid issues with partially migrated configurations. This is one of the last breaking changes before moving towards a stable 1.0 release.
Read the full changeset.
- Ruby
Published by palazzem over 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.11.1
New features
- Added
http.base_urltag for Rack applications (#301, #327) - Added
distributed_tracingoption to Sinatra (#325) - Added
exception_controlleroption to Rails (#320)
Improvements
- Decoupled Sinatra and ActiveRecord integrations (#328, #330) (thanks @hawknewton!)
- Racecar uses preferred ActiveSupport::Notifications strategy (#323 )
- Removed old monkey patcher, in favor of newer configuration API (#322)
Bugfixes
- Allow Rails controllers to change resource names (#321)
- Custom Rails exception controllers no longer report as the resource (#320)
Read the full changeset.
- Ruby
Published by delner over 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.11.0
Thank you to our many contributors for reporting issues, and sharing improvements that have been integrated into release 0.11.0!
@whithajess, @NullVoxPopuli, @skisulli, @jjoos, @nerdrew, @drewbailey, @bentheax, @bramswenson
Breaking changes
- Tracer configuration API has been changed. The new configuration API replaces the old configuration API (which is no longer available.) Applications using the old API will be required to migrate to the new one (docs)
- New default names for Rails services. By default the Rails app name is used for the main service. If you use the tracer in multiple Rails applications, you'll have a different service for each one (#264)
- Rack and Rails are now grouped under the same service name by default. You can split them using the new configuration API (#263)
Please check out our migration guide below for updating your application.
Migration from 0.10.x to 0.11.0
Updating to the new configuration API
Version 0.11.0 brings new changes to how you configure your Datadog tracing integration. In this new version, we've introduced the Datadog.configure function, to simplify configuration for all of your frameworks. This new functionality replaces the old configuration API, and as such, will require you to update your old configuration (that was compatible with versions < 0.11.0) to this new Datadog.configure API.
The following is an example of a Rails initializer, that enabled Rails, Redis, Grape and Net::HTTP integration:
Rails.configuration.datadog_trace = {
# Tracer
enabled: true,
trace_agent_hostname: '127.0.0.1',
# Rails
auto_instrument: true,
default_service: 'rails-app',
default_controller_service: 'rails-controller',
default_cache_service: 'rails-cache',
default_database_service: 'mysql',
# Redis
auto_instrument_redis: true,
# Grape
auto_instrument_grape: true
}
# Net::HTTP
Datadog::Monkey.patch_module(:http)
# Custom configuration for Redis using the Pin
redis = Redis.new
pin = Datadog::Pin.get_from(redis)
pin.service = 'custom-redis'
To update the library, convert the configuration above with the new one:
Datadog.configure do |c|
# Tracer
c.tracer hostname: '127.0.0.1'
# Rails
c.use :rails,
service_name: 'rails-app',
controller_service: 'rails-controller',
cache_service: 'rails-cache',
database_service: 'mysql'
# Redis
c.use :redis, service_name: 'custom-redis'
# Grape
c.use :grape
# Net::HTTP
c.use :http
end
For more details regarding changes to configuration for specific integrations, check out our documentation.
Changing default Rails service names
The old defaults for Rails service names were:
- Default service:
rails-app - Controller service:
rails-controller - Cache service:
rails-cache
The new defaults for Rails service names are:
- Default service:
<app name>-app - Controller service:
<app name>-controller - Cache service:
<app name>-cache
To keep previous defaults, and continue collecting traces under those previous default service names, add the following to your Datadog configuration:
Datadog.configure do |c|
c.use :rails, service_name: 'rails-app', controller_service: 'rails-controller', cache_service: 'rails-cache'
end
Merging/splitting Rails services
By default in 0.11.0, the Rails controller service will be merged with the default Rails service, rails-app.
If you wish to keep the Rails controller service separate from the parent application service, add the following to your Datadog configuration:
Datadog.configure do |c|
# Rails controller will be under `rails-app` service
c.use :rails, service_name: 'rails-app'
# Rails controller will be under a different service
c.use :rails, service_name: 'rails-app', controller_service: 'rails-controller'
end
New integrations
- Support for Redis 4.0+ (#305)
- Support for Racecar (#268)
Improvements
- Change the Redis service name (#135 -- thanks @BaneOfSerenity, @nerdrew)
- Added
cachedtag for ActiveRecord (#291) - Added
rails.db.nametag for ActiveRecord (#270) - Added
out.hostandout.porttag for ActiveRecord (#288) - Improve rack resource names (#285)
- Added
script_nameto Sinatra resource (#283 -- thanks @jamiehodge) - Support custom configuration per Faraday connection (#266)
Bugfixes
- Set span types for integrations (#286)
- Added safeguard for binary metadata in Dalli (#267)
- Reduced memory consumption for long Rails cache keys (#284)
- Drop invalid byte sequences for Redis (#289)
- Fixed dropped traces for Rails views with nested partials (#302)
- Fixed
ActiveRecord::ConnectionNotEstablishedmessage in logs for ActiveRecord applications that fork (#304) - Fixed UTF-8 encoding issue raising errors (#316)
Read the full changeset.
- Ruby
Published by palazzem over 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.11.0 (beta2)
Configuration system
This pre-release includes breaking changes for our configuration system and adds new experimental integrations for our library. The documentation will be updated in the stable release.
- Ruby
Published by palazzem over 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.11.0 (beta1)
Configuration system
This pre-release includes breaking changes for our configuration system. Our documentation will be updated in the stable release.
- Ruby
Published by palazzem over 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.10.0
Distributed Sampling (beta)
New feature that propagates the sampling priority across services. This ensures traces are always consistent and complete when distributed tracing is used. This new functionality requires at least the Datadog Agent 5.19+. Frameworks and libraries with out-of-the-box propagation are: Rack, Rails, Sinatra, net/http and Faraday (#248, #245, #229, #249, #254, docs)
Improvements
- [core] add
Datadog::Registryfor better configuration API (#200) - [core] add
ConfigurationAPI for integrations (#203) - [core] migrate
httpto new configuration API (#225) - [core] make
HTTPTransportcompatible with multiple API versions (#228) - [core] improve shutdown process (#253)
New configuration
Introduced a new experimental API that is available for some integrations. The API is still experimental and will be fully available in the next major release (0.11.0). In the meantime you can check some examples for the following integrations:
- Rails (#224)
- Sinatra (#226, #260, docs)
- Sidekiq still use the previous API, though some changes have been done to support the new API (#227)
Bugfixes
- [redis] Updates Redis integration tag/metric (#216)
- [core] handle integrations that don't implement
#patch(#241) - [resque] removing useless waits when a job ends, using a synchronous writer so the trace is flushed immediately before exiting the process (#252)
!! Breaking changes !!
[sinatra] introducing a new API that replaces the previous approach. This version changed the following:
default_servicehas been renamedservice_name- you don't use
datadog_tracerconfiguration object, but directly the newDatadog#configure
If you have a configuration like:
configure do
settings.datadog_tracer.configure default_service: 'my-app', trace_agent_hostname: 'ddagent'
end
now it must be:
Datadog.configure do |c|
c.use :sinatra, service_name: 'my-app', trace_agent_hostname: 'ddagent'
end
Read the full changeset
- Ruby
Published by palazzem over 8 years ago
https://github.com/DataDog/dd-trace-rb - 0.9.2
Bugfixes
- [rails] fixed error reporting when exceptions happen in the cache layer (#244)
Read the full changeset.
- Ruby
Published by palazzem almost 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.9.1
Improvements
- [rails] use direct instrumentation instead of Rails built-in instrumentation avoiding a level of indirection (#235)
- [core] remove debug logging when the
Pininstance is retrieved, removing the time spent in this critical path (#233) - [core] add an exponential back-off to our flushing strategy so that the thread will flush less often if the Trace Agent is not available (#239)
- [core] remove duplicate filter on
Trace#trace(#234)
Bugfixes
- [resque] safe-guard if the
Pinisnil(#223, #242 -- thanks @drewbailey) - [resque] cleanup the current
Contextafter the process fork to avoid useless Copy-on-Write (#231)
Read the full changeset
- Ruby
Published by palazzem almost 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.9.0
New Integrations
- Faraday with Distributed Tracing support (#185, #212, docs)
- AWS SDK client (#179, docs)
- SuckerPunch (#194, docs)
- MongoDB Driver (#177, docs)
- Dalli (#196, docs)
- Resque (#204, docs)
Improvements
- [core] add a Processing Pipeline to filter or update spans before they're flushed (#214, docs)
- [transport] services are flushed in the same loop of traces, made exception if the Hash is empty; the timeout is set every second like before (#201)
- [core] add
Datadog.tracer.shutdown!method to force sending traces before exiting the process; it's useful when your process exits before the flushing thread finishes to send data to the Datadog Agent (#195)
Bugfixes
- [rails] the template instrumentation works even if unexpected errors are raised; before this led to incomplete / unsent traces (#191)
- [rails] improve safety of
ActionControllerinstrumentation, making it robust when Rails signals are not executed in the expected order (#197) - [rails] use custom signals for cache instrumentation (#198)
- [rails] add the TraceMiddleware immediately instead of relying in another initializer (#208 -- thanks @Ferdy89 )
Read the full changeset
- Ruby
Published by palazzem almost 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.8.2
Minor changes
- Enable access to the context provider (#183)
Bugfixes
- Fix possible leaks across multiple requests, when all spans are not properly closed (#184)
- Fix enconding for error messages (#181)
- Fix documentation discrepancy (#180 -- thanks @knappe)
Read the full changeset
- Ruby
Published by p-lambert almost 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.8.1
Minor changes
- Added an opt-out option to not instrument Rails if one wishes to not use it, with the help of @ejholmes (#156, #173)
Bugfixes
- fixed stack traces on Rails errors, with the help of @Ferdy89 (#170, #110)
- fixed instrumentation problem when
ActiveRecordwas not here (#166, contributed by @driv3r) - documentation updates (#138, #164, contributed by @whithajess)
Read the full changeset
- Ruby
Published by ufoot about 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.8.0
New features
- Experimental distributed tracing support. Distributed tracing allows you to connect your traces from different applications, and possibly different languages. This feature is disabled by default. Libraries supporting this are Rack and Net/HTTP (#141, #151 - docs, contributed by @whithajess, @ejholmes and @cabello)
Major changes
- Introduction of a context object, this is a deep refactoring which enables better future support of async behavior, and makes the Ruby library more similar to the Python implementation (#145)
Minor changes
- Jruby is back in our CI chain (#129)
- library is now tested against Ruby 2.4.1 (#159)
- Rails 3.0 support. As this is a deprecated Rails version, our support for this is "best effort". (#154, #157, contributed by @dorner)
- Adds a PID a as tag to root spans, so that you can know which process the trace belongs to (#147).
Breaking changes
Spanconstructor does not set thestart_timeany more. The start time is now set when callingstart_spanfrom theTracer. This should not have any impact if you either useTracer.traceor use out-of-the box integrations. The only side-effect is if you were working on a custom integration.- the
finish_atmethod of theSpanobject, which was marked as deprecated in0.7.2, has been completely removed. It can be safely replaced withfinish, which takes an optional argument.
For example:
span.finish_at(timestamp)
becomes:
span.finish(timestamp)
And if you don't need to give a specific timestamp, this defaults to now:
span.finish()
Bugfixes
- documentation updates (#136, #144, #146, #152, with the help of @emaiax, @cabello and @tobypinder)
- don't treat http
4xxreturn codes as errors (#103. #162, with the help of @sj26) - catch
Exceptionand not onlyStandardErrorwhen it makes sense to do so (#120, #158, #160, suggested by @Ferdy89). - limit span and trace IDs to 63 bits (#161)
Special thanks to all contributors, who made this release possible.
Read the full changeset
- Ruby
Published by ufoot about 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.7.2
Bugfixes
- [tracer] ensuring submitted spans belong to the same trace, this fixes a possible data loss with message
dropping trace reason: trace id mismatchwhen using threads (#133) - [doc] added missing comma for Rack example, thanks @elyara for fixing this (#130)
Read the full changeset
- Ruby
Published by ufoot about 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.7.1
New features
- it's now possible to configure Sidekiq service on a worker level, contributed by @krasnoukhov (#124, #125)
Minor changes
- a header
X-Datadog-Trace-Countis now sent when posting payloads to agent, it contains the number of traces in the payload (#123)
Read the full changeset
- Ruby
Published by ufoot over 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.7.0
New features
- add a Rack middleware that can be used with any web framework compliant with the Rack interface (#111, #116 - docs)
- add Grape auto instrumentation to trace all endpoints execution and
before-afterfilters (#117 - docs) - Rails integration can activate the Grape instrumentation using the
auto_instrument_grapeflag in the Rails initializer file (docs)
Major changes
- Rails uses out of the box the Rack middleware so that the full request processing is traced. Before, only the Rails controller was instrumented, making difficult to see anything that happens outside of the Rails framework. While this changes how some traces are displayed, it doesn't introduce any breaking change with previous versions (#112, #118, thanks @Ferdy89 for the contribution!). However, you can expect changes around the displayed names/URLs.
Bugfixes
- in some cases, Rails app would drop spans because they would have no service and not be properly instrumented. This, causing wrong stats and partial traces. It's now fixed with the new rack support (see above, #112)
Spaninstances can be finished only once (#109)- stacktraces are constructed with proper newline characters (#108 and #115, contributed by @Ferdy89 )
ddtracelogs are easier to isolate from your apps log (#107)
Read the full changeset
- Ruby
Published by ufoot over 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.6.2
New features
- Active Record support for Sinatra apps, many thanks to @cabello for this contribution (#88)
- When no service is given for the root span, a default one is picked up,
to avoid dropping traces in the agent (#105)
Bugfixes
- Rails env is not used as a default env any more (#106)
Breaking changes
- If you use Rails and rely on the new
envfeature introduced by #92 in https://github.com/DataDog/dd-trace-rb/releases/v0.6.1 then you now need to explicitly set the value.
A typical Rails configuration would be:
Rails.configuration.datadog_trace = {
auto_instrument: true,
auto_instrument_redis: true,
env: Rails.env,
}
Read the full changeset
- Ruby
Published by ufoot over 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.6.1
New features
- Support for global tags, contributed by Robert Coker (#92)
- Logger enhancements, it's now overridable and log messages are by default marked as coming from
ddtrace(#99)
Bugfixes
- [redis] fixed the type of the Redis service, now reports as a database (#97)
Read the full changeset
- Ruby
Published by ufoot over 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.6.0
New features
- Support for Ruby 1.9 (#83)
Bugfixes
- [sidekiq] correctly handling wrappers such as Active Job and reporting the right resource #90 (reported & fixed by @tpendragon)
- [sidekiq] fixed initialize issue #91 (reported & fixed by @tpendragon)
- [active_record] reporting
:cachedkey when available (fixes 0 msec span issue #57) - [rails] reporting controller exceptions as errors in stats (#95)
Breaking changes
- [net/http] using METHOD and not URL as a resource. This temporarily break stats as the request
GET /indexnow reports asGETinstead of/index(#98)
Read the full changeset
- Ruby
Published by ufoot over 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.5.0
New features
Bugfixes
- [rails] Redis instrumentation honors Rails settings; now it's not automatically activated and it works well with external processes like Sidekiq (#86)
Breaking changes
- Default port
7777has been replaced with the new8126(available from Datadog Agent 5.11.0 and above) (#82)
Migrate from 0.4.x to 0.5.0
- Datadog Agent 5.11.0 or above is required.
Read the full changeset
- Ruby
Published by palazzem over 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.4.3
Bugfixes
- [rails] discard all parameters from the
cache_storeconfiguration to exclude the connection address (#77) - [elasticsearch] safe-guard when the body is already encoded by a third party library; this ensures that ElasticSearch query is properly executed even if there are tracing errors (#78)
Read the full changeset
- Ruby
Published by palazzem over 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.4.2
Documentation
- Moving our documentation to http://www.rubydoc.info/gems/ddtrace/
Read the full changeset
- Ruby
Published by palazzem over 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.4.1
Documentation
- Improved client documentation (#76)
Bugfixes
- Removed duplicated data in Redis integration (#69)
- Default log level is set to
WARNINGso the tracer doesn't spam application logs (#73)
Read the full changeset
- Ruby
Published by palazzem over 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.4.0
Improvements
- The gem is available in the
rubygems.orgrepository - Extended support to Ruby 2.4.0
- Extended support to Passenger 5.0+
- Sinatra web application library is supported; requests and templates
rendering are instrumented. See Sinatra documentation for more details. - Ruby
net/httpmodule is instrumented so that HTTP calls are traced when
the built-in module is used. See HTTP documentation for more details.
Bugfixes
- Use
alias_methodin Redis instrumentation to prevent recursion when
other libraries are patching the same class (#56) - Prevent conditional requires when
ActiveRecordis not used (#62) - Adding Passenger support for the underlying cache system. Now traces are
properly generated whenRails.cacheis used (#64) - Reducing logs verbosity (#65) when Rails is auto instrumented
Breaking changes
- Rails auto-instrumentation is disabled by default. You have to manually
activate the Rails instrumentation in your initializer. See Rails documentation
for more details (#55)
Read the full changeset
Migrate from 0.3.1 to 0.4.0
- The official
rubygems.orgrepository should be used and new versions will not be available in the previous repository. To receive new updates, change yourGemfileas follows:
source 'https://rubygems.org'
# tracing gem
gem 'ddtrace', '0.4.0'
# ...other gems...
- If you're using the Rails integration, update your
config/initializers/datadog-tracer.rbso that the
auto_instrumentandauto_instrument_redisare both enabled (or
disabled according to your choice). You can find an example in the following
code:
# config/initializers/datadog-tracer.rb
# this condition activates or deactivates the Rails auto instrumentation
# according to your environment; change it so that it reflects your
# application requirements
tracer_status = Rails.env.staging? || Rails.env.production?
Rails.configuration.datadog_trace = {
auto_instrument: tracer_status,
auto_instrument_redis: tracer_status,
default_service: 'my-rails-app',
# ...other configurations...
}
- Ruby
Published by palazzem over 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.3.0
Major changes
- Redis support
- Elastic Search support
- Use only one thread, instead of two, to send data to the trace agent
- Rails users who want to send their traces to some other host than localhost should now use
trace_agent_hostnamein tracer configuration - Bug fixes, including https://github.com/DataDog/dd-trace-rb/pull/42
For more info, check our updated docs: http://gems.datadoghq.com/trace/docs/
See the full changeset
- Ruby
Published by ufoot over 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.3.1
Bugfixes
- ActiveSupport integration fixes
- Fixed span ordering problems, which could lead to inconsistent data (includes https://github.com/DataDog/dd-trace-rb/pull/48)
For more info, check our updated docs: http://gems.datadoghq.com/trace/docs/
See the full changeset
- Ruby
Published by ufoot over 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.2.0
Major changes
- added
msgpackgem as a dependency - using Trace Agent API
v0.3that supports both JSON and Msgpack formats - provided
JSONEncoderandMsgpackEncoderthat are switched at runtime the API v0.3 is not reachable (404) MsgpackEncoderis the current default encoder
Read the full changeset
- Ruby
Published by palazzem over 9 years ago
https://github.com/DataDog/dd-trace-rb - 0.1.5
Release improvements
- [rails] the
sql.querymeta is sent only once in the ActiveSupport instrumentation - [rails] the
sql.querymeta is properly obfuscated. This process takes place in thetrace-agentso that our APM backend will receive the SQL query without parameters - add experimental support for JRuby 9k. Actually we're still targeting the compatibility mode
>=2.1.0 - [rails] cache activity is monitored under the
rails-cacheservice (it's a default name). This means that you can monitor cache interactions even outside a user request. The service name can be changed using thedefault_cache_servicesetting.
For more info, check our updated docs: http://gems.datadoghq.com/trace/docs/
See the full changelog
- Ruby
Published by palazzem almost 10 years ago
https://github.com/DataDog/dd-trace-rb - 0.1.4
Improvements
- the library uses the new trace agent API (
v0.2). This improves performances on the communication side
Bugfixes
ActiveRecordsets the SQL query as a resource name, so that you can search traces for each given query (query values are removed from the stored data)- The database service now is recognized as a "Database service"
- Rails users can change the database service name updating the
default_database_servicein theRails.configuration.datadog_trace. If the value is not set, it defaults to theadapter_name
Other
- the library is shipped with the
BSD-3-Clauseslicense
Read the full changeset
- Ruby
Published by palazzem almost 10 years ago
https://github.com/DataDog/dd-trace-rb - 0.1.3
Bugfixes
- fixed wrong
rescuein theHTTPTransport#send. Errors related to the sending thread are reported as expected.
Read the full changeset
- Ruby
Published by palazzem almost 10 years ago