Module: CloseYourIt::Rails::NetHTTPPatch

Defined in:
lib/closeyourit/rails/net_http_patch.rb

Overview

Prepended a Net::HTTP: cronometra ogni chiamata esterna e la spinge nel RequestProfile dello Scope, così la finestra della richiesta può rilevare le HTTP esterne lente. Trasparente (restituisce la risposta originale) e difensivo (no-op se la telemetria è off; mai solleva per colpa del profiling). Esclude le chiamate verso l'endpoint CloseYourIt stesso (niente loop).

Instance Method Summary collapse

Instance Method Details

#request(req, body = nil, &block) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/closeyourit/rails/net_http_patch.rb', line 13

def request(req, body = nil, &block)
  config = CloseYourIt.configuration
  return super unless config.detect_performance_issues && config.capture_external_http

  started = Process.clock_gettime(Process::CLOCK_MONOTONIC)
  begin
    super
  ensure
    duration_ms = (Process.clock_gettime(Process::CLOCK_MONOTONIC) - started) * 1000.0
    record_external(config, req, duration_ms)
  end
end