Sha256: 790ccdb776d126d5f3fc4e595fd6eff6261fea8bfb2d5c4f4b4ca1b6ea725862
Contents?: true
Size: 1.84 KB
Versions: 2
Compression:
Stored size: 1.84 KB
Contents
# frozen_string_literal: true require_relative 'di/error' require_relative 'di/configuration' require_relative 'di/code_tracker' require_relative 'di/extensions' require_relative 'di/instrumenter' require_relative 'di/probe' require_relative 'di/redactor' require_relative 'di/serializer' require_relative 'di/transport' require_relative 'di/utils' module Datadog # Namespace for Datadog dynamic instrumentation. # # @api private module DI # Expose DI to global shared objects Extensions.activate! class << self attr_reader :code_tracker # Activates code tracking. Normally this method should be called # when the application starts. If instrumenting third-party code, # code tracking needs to be enabled before the third-party libraries # are loaded. If you definitely will not be instrumenting # third-party libraries, activating tracking after third-party libraries # have been loaded may improve lookup performance. # # TODO test that activating tracker multiple times preserves # existing mappings in the registry def activate_tracking! (@code_tracker ||= CodeTracker.new).start end # Deactivates code tracking. In normal usage of DI this method should # never be called, however it is used by DI's test suite to reset # state for individual tests. # # Note that deactivating tracking clears out the registry, losing # the ability to look up files that have been loaded into the process # already. def deactivate_tracking! code_tracker&.stop end # Returns whether code tracking is available. # This method should be used instead of querying #code_tracker # because the latter one may be nil. def code_tracking_active? code_tracker&.active? || false end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
datadog-2.6.0 | lib/datadog/di.rb |
datadog-2.5.0 | lib/datadog/di.rb |