class OpenTelemetry::Internal::ProxyTracerProvider

It returns {ProxyTracer} instances until the delegate is installed.
It delegates to a “real” TracerProvider after the global tracer provider is registered.
It is the default global tracer provider returned by OpenTelemetry.tracer_provider.
{ProxyTracerProvider} is an implementation of {OpenTelemetry::Trace::TracerProvider}.
@api private

def delegate=(provider)

Parameters:
  • provider (TracerProvider) -- The tracer provider to delegate to
def delegate=(provider)
  unless @delegate.nil?
    OpenTelemetry.logger.warn 'Attempt to reset delegate in ProxyTracerProvider ignored.'
    return
  end
  @mutex.synchronize do
    @delegate = provider
    @registry.each { |key, tracer| tracer.delegate = provider.tracer(key.name, key.version) }
  end
end

def initialize

Returns:
  • (ProxyTracerProvider) -
def initialize
  @mutex = Mutex.new
  @registry = {}
  @delegate = nil
end

def tracer(name = nil, version = nil)

Returns:
  • (Tracer) -

Parameters:
  • version (optional String) -- Instrumentation package version
  • name (optional String) -- Instrumentation package name
def tracer(name = nil, version = nil)
  @mutex.synchronize do
    return @delegate.tracer(name, version) unless @delegate.nil?
    @registry[Key.new(name, version)] ||= ProxyTracer.new
  end
end