Class: NewRelic::Agent::OpenTelemetry::Trace::Tracer
- Inherits:
-
OpenTelemetry::Trace::Tracer
- Object
- OpenTelemetry::Trace::Tracer
- NewRelic::Agent::OpenTelemetry::Trace::Tracer
- Defined in:
- lib/new_relic/agent/opentelemetry/trace/tracer.rb
Instance Method Summary collapse
- #in_span(name, attributes: nil, links: nil, start_timestamp: nil, kind: nil) ⇒ Object
-
#initialize(name = nil, version = nil) ⇒ Tracer
constructor
A new instance of Tracer.
Constructor Details
#initialize(name = nil, version = nil) ⇒ Tracer
Returns a new instance of Tracer.
10 11 12 13 |
# File 'lib/new_relic/agent/opentelemetry/trace/tracer.rb', line 10 def initialize(name = nil, version = nil) @name = name || '' @version = version || '' end |
Instance Method Details
#in_span(name, attributes: nil, links: nil, start_timestamp: nil, kind: nil) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/new_relic/agent/opentelemetry/trace/tracer.rb', line 15 def in_span(name, attributes: nil, links: nil, start_timestamp: nil, kind: nil) case kind when :internal begin return yield unless NewRelic::Agent::Tracer.current_transaction segment = NewRelic::Agent::Tracer.start_segment(name: name) span = Span.new(segment: segment, transaction: segment.transaction) ::OpenTelemetry::Trace.with_span(span) do yield end ensure segment&.finish end else NewRelic::Agent.logger.debug("Span kind: #{kind} is not supported yet") end end |