Class: Couchbase::OpenTelemetry::Meter
- Inherits:
-
Metrics::Meter
- Object
- Metrics::Meter
- Couchbase::OpenTelemetry::Meter
- Defined in:
- lib/couchbase/opentelemetry/meter.rb
Instance Method Summary collapse
-
#initialize(meter_provider) ⇒ Meter
constructor
Initializes a Couchbase OpenTelemetry Meter.
- #value_recorder(name, tags) ⇒ Object
Constructor Details
#initialize(meter_provider) ⇒ Meter
Initializes a Couchbase OpenTelemetry Meter
59 60 61 62 63 64 65 66 67 |
# File 'lib/couchbase/opentelemetry/meter.rb', line 59 def initialize(meter_provider) super() @histogram_cache = Concurrent::Map.new begin @wrapped = meter_provider.meter("com.couchbase.client/ruby") rescue StandardError => e raise Error::MeterError.new("Failed to create OpenTelemetry Meter: #{e.}", nil, e) end end |
Instance Method Details
#value_recorder(name, tags) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/couchbase/opentelemetry/meter.rb', line 69 def value_recorder(name, ) unit = .delete("__unit") otel_histogram = @histogram_cache.compute_if_absent(name) do @wrapped.create_histogram(name, unit: unit) end ValueRecorder.new(otel_histogram, , unit: unit) rescue StandardError => e raise Error::MeterError.new("Failed to create OpenTelemetry Histogram: #{e.}", nil, e) end |