class Seismograph::Sensor
Attributes
namespace[R]
Public Class Methods
new(namespace)
click to toggle source
# File lib/seismograph/sensor.rb, line 10 def initialize(namespace) @namespace = namespace end
Public Instance Methods
benchmark(description, params = {}, &block)
click to toggle source
# File lib/seismograph/sensor.rb, line 32 def benchmark(description, params = {}, &block) with_success_and_failure(description, params) do Gateway.time(stat(description), gateway_params(params), &block) end end
count(description, amount, params = {}, &block)
click to toggle source
# File lib/seismograph/sensor.rb, line 14 def count(description, amount, params = {}, &block) track(description, amount, params, &block) end
decrement(description, params = {})
click to toggle source
# File lib/seismograph/sensor.rb, line 22 def decrement(description, params = {}) Gateway.decrement(stat(description), gateway_params(params)) end
gauge(description, value, params = {})
click to toggle source
# File lib/seismograph/sensor.rb, line 38 def gauge(description, value, params = {}) Gateway.gauge(stat(description), value, gateway_params(params)) end
increment(description, params = {})
click to toggle source
# File lib/seismograph/sensor.rb, line 18 def increment(description, params = {}) Gateway.increment(stat(description), gateway_params(params)) end
timing(description, duration, params = {})
click to toggle source
Record the time (in ms) when the code has already been executed. Useful for ActiveSupport::Instrumentation event.duration (which is already in ms)
# File lib/seismograph/sensor.rb, line 28 def timing(description, duration, params = {}) Gateway.timing(stat(description), duration, gateway_params(params)) end
Private Instance Methods
stat(description)
click to toggle source
# File lib/seismograph/sensor.rb, line 61 def stat(description) "#{namespace}.#{description}" end
track(description, amount, params = {}) { || ... }
click to toggle source
# File lib/seismograph/sensor.rb, line 44 def track(description, amount, params = {}) with_success_and_failure(description, params) do result = yield if block_given? Gateway.histogram(stat(description), amount, gateway_params(params)) result end end
with_success_and_failure(description, params) { || ... }
click to toggle source
# File lib/seismograph/sensor.rb, line 52 def with_success_and_failure(description, params) result = yield increment("#{description}.success", gateway_params(params)) result rescue StandardError => e increment("#{description}.failure", gateway_params(params)) raise e end