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.
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
#meter ⇒ Object (readonly)
Returns the value of attribute meter.
9 10 11 |
# File 'lib/daytona/otel.rb', line 9 def meter @meter end |
#meter_provider ⇒ Object (readonly)
Returns the value of attribute meter_provider.
7 8 9 |
# File 'lib/daytona/otel.rb', line 7 def meter_provider @meter_provider end |
#tracer ⇒ Object (readonly)
Returns the value of attribute tracer.
8 9 10 |
# File 'lib/daytona/otel.rb', line 8 def tracer @tracer end |
#tracer_provider ⇒ Object (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 |
#shutdown ⇒ Object
27 28 29 30 |
# File 'lib/daytona/otel.rb', line 27 def shutdown tracer_provider.shutdown meter_provider.shutdown end |