Module: RailsOrbit::MetricWriter
- Defined in:
- lib/rails_orbit/metric_writer.rb
Class Method Summary collapse
- .executor ⇒ Object
- .reset! ⇒ Object
- .shutdown ⇒ Object
- .write(key:, value:, dimension: nil) ⇒ Object
Class Method Details
.executor ⇒ Object
6 7 8 9 10 |
# File 'lib/rails_orbit/metric_writer.rb', line 6 def executor @executor ||= Concurrent::SingleThreadExecutor.new( fallback_policy: :discard ) end |
.reset! ⇒ Object
31 32 33 34 |
# File 'lib/rails_orbit/metric_writer.rb', line 31 def reset! shutdown @executor = nil end |
.shutdown ⇒ Object
25 26 27 28 29 |
# File 'lib/rails_orbit/metric_writer.rb', line 25 def shutdown return unless defined?(@executor) && @executor executor.shutdown executor.wait_for_termination(5) end |
.write(key:, value:, dimension: nil) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/rails_orbit/metric_writer.rb', line 12 def write(key:, value:, dimension: nil) executor.post do RailsOrbit::ApplicationRecord.connection_pool.with_connection do RailsOrbit::Metric.insert( { key: key, value: value, dimension: dimension, recorded_at: Time.current }, returning: false ) end rescue => e Rails.logger.error("[rails_orbit] MetricWriter failed: #{e.}") end end |