class Sqreen::Ecosystem::Tracing::Sampler::TargetPerMinutePrimitive
Public Class Methods
new(max_calls)
click to toggle source
# File lib/sqreen/ecosystem/tracing/sampler.rb, line 109 def initialize(max_calls) @max_calls = max_calls @minute_last_call = cur_minute @calls_accumulated = 0 @mutex = Mutex.new end
Public Instance Methods
triggers?()
click to toggle source
# File lib/sqreen/ecosystem/tracing/sampler.rb, line 116 def triggers? this_minute = cur_minute calls_cur_minute = @mutex.synchronize do if @minute_last_call == this_minute @calls_accumulated += 1 else @minute_last_call = this_minute @calls_accumulated = 1 end end calls_cur_minute <= @max_calls end
Private Instance Methods
cur_minute()
click to toggle source
# File lib/sqreen/ecosystem/tracing/sampler.rb, line 132 def cur_minute (Sqreen.time / 60).floor end