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::Registry
for better configuration API (#200) - [core] add
Configuration
API for integrations (#203) - [core] migrate
http
to new configuration API (#225) - [core] make
HTTPTransport
compatible 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_service
has been renamedservice_name
- you don't use
datadog_tracer
configuration 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