Skip to content

0.37.0

Compare
Choose a tag to compare
@marcotc marcotc released this 24 Jun 20:39
· 9943 commits to master since this release
f5733c8

Refactored

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 ddtrace is reconfigured (through Datadog.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 Pin and DeprecatedPin are internal tools used to provide more granular configuration for integrations.
    • The APIs being removed are not public nor have been externally documented. The DeprecatedPin specifically has been considered deprecated since 0.20.0.
    • This removal is a continuation of #1079 above, thus carrying the same rationale.

Migration

  • Remove tracer argument provided to integrations (e.g. c.use :rails, tracer: ...).
  • Remove tracer argument provided to Pin or DeprecatedPin initializers (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.