Class: NewRelic::Agent::OpenTelemetry::Trace::TracerProvider
- Inherits:
-
OpenTelemetry::Trace::TracerProvider
- Object
- OpenTelemetry::Trace::TracerProvider
- NewRelic::Agent::OpenTelemetry::Trace::TracerProvider
- Defined in:
- lib/new_relic/agent/opentelemetry/trace/tracer_provider.rb
Instance Method Summary collapse
- #excluded_tracers ⇒ Object
-
#initialize ⇒ TracerProvider
constructor
A new instance of TracerProvider.
- #tracer(name = nil, version = nil) ⇒ Object
Constructor Details
#initialize ⇒ TracerProvider
Returns a new instance of TracerProvider.
13 14 15 16 |
# File 'lib/new_relic/agent/opentelemetry/trace/tracer_provider.rb', line 13 def initialize @registry = {} @registry_mutex = Mutex.new end |
Instance Method Details
#excluded_tracers ⇒ Object
18 19 20 |
# File 'lib/new_relic/agent/opentelemetry/trace/tracer_provider.rb', line 18 def excluded_tracers @excluded ||= NewRelic::Agent::OpenTelemetryBridge.calculate_excluded_tracers end |
#tracer(name = nil, version = nil) ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/new_relic/agent/opentelemetry/trace/tracer_provider.rb', line 22 def tracer(name = nil, version = nil) # We create a no-op tracer if the tracer is configured to be excluded # This should only be run when a custom tracer that isn't defined by # OpenTelemetry instrumentation is excluded return ::OpenTelemetry::Trace::Tracer.new if excluded_tracers.include?(name) NewRelic::Agent.logger.warn 'OpenTelemetry::Trace::TracerProvider#tracer called without providing a tracer name.' if name.nil? || name.empty? @registry_mutex.synchronize { @registry[Key.new(name, version)] ||= OpenTelemetry::Trace::Tracer.new(name, version) } end |