Module: Easyop::Plugins::Instrumentation::RunWrapper

Defined in:
lib/easyop/plugins/instrumentation.rb

Instance Method Summary collapse

Instance Method Details

#_easyop_run(ctx, raise_on_failure:) ⇒ Object



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