Class: Daytona::OtelState
- Inherits:
-
Object
- Object
- Daytona::OtelState
- Defined in:
- lib/daytona/otel.rb
Overview
Holds OTel provider state for the SDK.
Instance Attribute Summary collapse
-
#meter ⇒ Object
readonly
Returns the value of attribute meter.
-
#meter_provider ⇒ Object
readonly
Returns the value of attribute meter_provider.
-
#tracer ⇒ Object
readonly
Returns the value of attribute tracer.
-
#tracer_provider ⇒ Object
readonly
Returns the value of attribute tracer_provider.
Instance Method Summary collapse
-
#histogram(name) ⇒ Object
Returns a cached histogram for the given metric name.
-
#initialize(tracer_provider:, meter_provider:, tracer:, meter:) ⇒ OtelState
constructor
A new instance of OtelState.
- #shutdown ⇒ Object
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
#meter ⇒ Object (readonly)
Returns the value of attribute meter.
12 13 14 |
# File 'lib/daytona/otel.rb', line 12 def meter @meter end |
#meter_provider ⇒ Object (readonly)
Returns the value of attribute meter_provider.
10 11 12 |
# File 'lib/daytona/otel.rb', line 10 def meter_provider @meter_provider end |
#tracer ⇒ Object (readonly)
Returns the value of attribute tracer.
11 12 13 |
# File 'lib/daytona/otel.rb', line 11 def tracer @tracer end |
#tracer_provider ⇒ Object (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 |
#shutdown ⇒ Object
30 31 32 33 |
# File 'lib/daytona/otel.rb', line 30 def shutdown tracer_provider.shutdown meter_provider.shutdown end |