Skip to content

Releases: DataDog/dd-trace-rb

0.9.0

09 Oct 19:40
Compare
Choose a tag to compare

New Integrations

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 ActionController instrumentation, 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

0.8.2

08 Sep 14:17
Compare
Choose a tag to compare

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

0.8.1

10 Aug 09:56
v0.8.1
3ccbf91
Compare
Choose a tag to compare

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 ActiveRecord was not here (#166, contributed by @driv3r)
  • documentation updates (#138, #164, contributed by @whithajess)

Read the full changeset

0.8.0

24 Jul 12:16
v0.8.0
22557d3
Compare
Choose a tag to compare

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

  • Span constructor does not set the start_time any more. The start time is now set when calling start_span from the Tracer. This should not have any impact if you either use Tracer.trace or use out-of-the box integrations. The only side-effect is if you were working on a custom integration.
  • the finish_at method of the Span object, which was marked as deprecated in 0.7.2, has been completely removed. It can be safely replaced with finish, 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

Special thanks to all contributors, who made this release possible.

Read the full changeset

0.7.2

24 May 09:32
v0.7.2
28e7840
Compare
Choose a tag to compare

Bugfixes

  • [tracer] ensuring submitted spans belong to the same trace, this fixes a possible data loss with message dropping trace reason: trace id mismatch when using threads (#133)
  • [doc] added missing comma for Rack example, thanks @elyara for fixing this (#130)

Read the full changeset

0.7.1

10 May 11:44
v0.7.1
b201ac9
Compare
Choose a tag to compare

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-Count is now sent when posting payloads to agent, it contains the number of traces in the payload (#123)

Read the full changeset

0.7.0

24 Apr 08:55
Compare
Choose a tag to compare

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-after filters (#117 - docs)
  • Rails integration can activate the Grape instrumentation using the auto_instrument_grape flag 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)
  • Span instances can be finished only once (#109)
  • stacktraces are constructed with proper newline characters (#108 and #115, contributed by @Ferdy89 )
  • ddtrace logs are easier to isolate from your apps log (#107)

Read the full changeset

0.6.2

07 Apr 09:40
v0.6.2
0b5b9b3
Compare
Choose a tag to compare

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

A typical Rails configuration would be:

    Rails.configuration.datadog_trace = {
      auto_instrument: true,
      auto_instrument_redis: true,
      env: Rails.env,
    }

Read the full changeset

0.6.1

05 Apr 16:31
v0.6.1
9041d30
Compare
Choose a tag to compare

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

0.6.0

28 Mar 12:49
v0.6.0
e900602
Compare
Choose a tag to compare

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 :cached key 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 /index now reports as GET instead of /index (#98)

Read the full changeset