2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/monus/built_in_metrics/em_latency.rb', line 2
def activate
unless Monus.engine.kind_of? Monus::Engine::EventMachine
raise LoadError, 'in order to use em_latency metric you should use :eventmachine engine'
end
@interval = Monus.options.dig(:em_latency_metric_options, :interval) || 1
last_time, current_time = nil, nil
Monus.engine.every @interval do
current_time = Process.clock_gettime(Process::CLOCK_MONOTONIC)
if last_time
latency = current_time - last_time - @interval
Monus.set :em_latency, latency
end
last_time = current_time
end
end
|