Class: Couchbase::Observability::Wrapper

Inherits:
Object
  • Object
show all
Defined in:
lib/couchbase/utils/observability.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(backend: nil, tracer: nil, meter: nil) {|_self| ... } ⇒ Wrapper

Returns a new instance of Wrapper.

Yields:

  • (_self)

Yield Parameters:



35
36
37
38
39
40
41
# File 'lib/couchbase/utils/observability.rb', line 35

def initialize(backend: nil, tracer: nil, meter: nil)
  @backend = backend
  @tracer = tracer
  @meter = meter

  yield self if block_given?
end

Instance Attribute Details

#meterObject

Returns the value of attribute meter.



33
34
35
# File 'lib/couchbase/utils/observability.rb', line 33

def meter
  @meter
end

#tracerObject

Returns the value of attribute tracer.



32
33
34
# File 'lib/couchbase/utils/observability.rb', line 32

def tracer
  @tracer
end

Instance Method Details

#closeObject



60
61
62
63
# File 'lib/couchbase/utils/observability.rb', line 60

def close
  @tracer&.close
  @meter&.close
end

#record_operation(op_name, parent_span, receiver, service = nil) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/couchbase/utils/observability.rb', line 43

def record_operation(op_name, parent_span, receiver, service = nil)
  handler = Handler.new(@backend, op_name, parent_span, receiver, @tracer, @meter)
  handler.add_operation_name(op_name)
  handler.add_service(service) unless service.nil?
  begin
    res = yield(handler)
  rescue StandardError => e
    handler.add_error(e)
    raise e
  else
    handler.set_success
  ensure
    handler.finish
  end
  res
end