Class: Utrace::Otel
- Inherits:
-
Object
- Object
- Utrace::Otel
- Defined in:
- lib/utrace/otel.rb
Instance Method Summary collapse
- #attrs(attrs) ⇒ Object
- #error(err) ⇒ Object
- #event(name, attrs: nil) ⇒ Object
-
#initialize(name: self.class.name) ⇒ Otel
constructor
A new instance of Otel.
- #new_span(name, &block) ⇒ Object
- #trace_id ⇒ Object
- #untraced(&block) ⇒ Object
Constructor Details
#initialize(name: self.class.name) ⇒ Otel
Returns a new instance of Otel.
3 4 5 |
# File 'lib/utrace/otel.rb', line 3 def initialize(name: self.class.name) @tracer = OpenTelemetry.tracer_provider.tracer(name) end |
Instance Method Details
#attrs(attrs) ⇒ Object
25 26 27 28 |
# File 'lib/utrace/otel.rb', line 25 def attrs(attrs) attrs = validate_attrs(attrs) ::OpenTelemetry::Trace.current_span.add_attributes(attrs) end |
#error(err) ⇒ Object
19 20 21 22 23 |
# File 'lib/utrace/otel.rb', line 19 def error(err) current_span = ::OpenTelemetry::Trace.current_span current_span.status = ::OpenTelemetry::Trace::Status.error(err.) current_span.record_exception(err) end |
#event(name, attrs: nil) ⇒ Object
15 16 17 |
# File 'lib/utrace/otel.rb', line 15 def event(name, attrs: nil) ::OpenTelemetry::Trace.current_span.add_event(name, attributes: validate_attrs(attrs)) end |
#new_span(name, &block) ⇒ Object
7 8 9 |
# File 'lib/utrace/otel.rb', line 7 def new_span(name, &block) @tracer.in_span(name.to_s) { |_span| block.call } end |
#trace_id ⇒ Object
30 31 32 |
# File 'lib/utrace/otel.rb', line 30 def trace_id ::OpenTelemetry::Trace.current_span.context.trace_id.unpack1('H*') end |
#untraced(&block) ⇒ Object
11 12 13 |
# File 'lib/utrace/otel.rb', line 11 def untraced(&block) ::OpenTelemetry::Common::Utilities.untraced(&block) end |