59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/easyop/plugins/instrumentation.rb', line 59
def _easyop_run(ctx, raise_on_failure:)
start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
payload = { operation: self.class.name, success: nil, error: nil, duration: nil, ctx: ctx }
ActiveSupport::Notifications.instrument(EVENT, payload) do
super.tap do
payload[:success] = ctx.success?
payload[:error] = ctx.error if ctx.failure?
payload[:duration] = ((Process.clock_gettime(Process::CLOCK_MONOTONIC) - start) * 1000).round(2)
end
end
end
|