Class: Daytona::OtelState

Inherits:
Object
  • Object
show all
Defined in:
lib/daytona/otel.rb

Overview

Holds OTel provider state for the SDK.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tracer_provider:, meter_provider:, tracer:, meter:) ⇒ OtelState

Returns a new instance of OtelState.



14
15
16
17
18
19
20
21
# File 'lib/daytona/otel.rb', line 14

def initialize(tracer_provider:, meter_provider:, tracer:, meter:)
  @tracer_provider = tracer_provider
  @meter_provider = meter_provider
  @tracer = tracer
  @meter = meter
  @histograms = {}
  @histograms_mutex = Mutex.new
end

Instance Attribute Details

#meterObject (readonly)

Returns the value of attribute meter.



12
13
14
# File 'lib/daytona/otel.rb', line 12

def meter
  @meter
end

#meter_providerObject (readonly)

Returns the value of attribute meter_provider.



10
11
12
# File 'lib/daytona/otel.rb', line 10

def meter_provider
  @meter_provider
end

#tracerObject (readonly)

Returns the value of attribute tracer.



11
12
13
# File 'lib/daytona/otel.rb', line 11

def tracer
  @tracer
end

#tracer_providerObject (readonly)

Returns the value of attribute tracer_provider.



9
10
11
# File 'lib/daytona/otel.rb', line 9

def tracer_provider
  @tracer_provider
end

Instance Method Details

#histogram(name) ⇒ Object

Returns a cached histogram for the given metric name.



24
25
26
27
28
# File 'lib/daytona/otel.rb', line 24

def histogram(name)
  @histograms_mutex.synchronize do
    @histograms[name] ||= meter.create_histogram(name, unit: 'ms')
  end
end

#shutdownObject



30
31
32
33
# File 'lib/daytona/otel.rb', line 30

def shutdown
  tracer_provider.shutdown
  meter_provider.shutdown
end