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
Span
constructor does not set thestart_time
any more. The start time is now set when callingstart_span
from theTracer
. This should not have any impact if you either useTracer.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 theSpan
object, 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
4xx
return codes as errors (#103. #162, with the help of @sj26) - catch
Exception
and not onlyStandardError
when 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