Module: BrainzLab::Instrumentation::TyphoeusInstrumentation::HydraInstrumentation

Defined in:
lib/brainzlab/instrumentation/typhoeus.rb

Overview

Hydra instrumentation for parallel requests

Class Method Summary collapse

Class Method Details

.install!Object



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/brainzlab/instrumentation/typhoeus.rb', line 80

def self.install!
  return unless defined?(::Typhoeus::Hydra)

  ::Typhoeus::Hydra.class_eval do
    alias_method :original_run, :run

    def run
      started_at = Time.now
      request_count = queued_requests.size

      result = original_run

      duration_ms = ((Time.now - started_at) * 1000).round(2)

      if BrainzLab.configuration.flux_effectively_enabled?
        BrainzLab::Flux.distribution('http.typhoeus.hydra.duration_ms', duration_ms)
        BrainzLab::Flux.distribution('http.typhoeus.hydra.request_count', request_count)
      end

      result
    end
  end
end