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.



11
12
13
14
15
16
17
18
# File 'lib/daytona/otel.rb', line 11

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.



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

def meter
  @meter
end

#meter_providerObject (readonly)

Returns the value of attribute meter_provider.



7
8
9
# File 'lib/daytona/otel.rb', line 7

def meter_provider
  @meter_provider
end

#tracerObject (readonly)

Returns the value of attribute tracer.



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

def tracer
  @tracer
end

#tracer_providerObject (readonly)

Returns the value of attribute tracer_provider.



6
7
8
# File 'lib/daytona/otel.rb', line 6

def tracer_provider
  @tracer_provider
end

Instance Method Details

#histogram(name) ⇒ Object

Returns a cached histogram for the given metric name.



21
22
23
24
25
# File 'lib/daytona/otel.rb', line 21

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

#shutdownObject



27
28
29
30
# File 'lib/daytona/otel.rb', line 27

def shutdown
  tracer_provider.shutdown
  meter_provider.shutdown
end