Module: GvlMetricsMiddleware

Defined in:
lib/gvl_metrics_middleware.rb,
lib/gvl_metrics_middleware/rack.rb,
lib/gvl_metrics_middleware/railtie.rb,
lib/gvl_metrics_middleware/sidekiq.rb,
lib/gvl_metrics_middleware/version.rb,
sig/gvl_metrics_middleware.rbs

Defined Under Namespace

Classes: Rack, Railtie, Sidekiq

Constant Summary collapse

VERSION =

Returns:

  • (String)
"0.4.0"
@@enabled =
true
@@on_report_failure =
nil
@@safe_guard =
nil
@@sampling_rate =
0.01

Class Method Summary collapse

Class Method Details

.configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



8
# File 'lib/gvl_metrics_middleware.rb', line 8

def self.configure = yield(self)

.enabled=(value) ⇒ Object



32
33
34
# File 'lib/gvl_metrics_middleware.rb', line 32

def self.enabled=(value)
  @@enabled = value
end

.enabled?Boolean

Returns:

  • (Boolean)


30
# File 'lib/gvl_metrics_middleware.rb', line 30

def self.enabled? = @@enabled

.on_report_failure(&block) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/gvl_metrics_middleware.rb', line 38

def self.on_report_failure(&block)
  if block_given?
    @@on_report_failure = block
  else
    @@on_report_failure
  end
end

.rack(&block) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/gvl_metrics_middleware.rb', line 10

def self.rack(&block)
  if block_given?
    GvlMetricsMiddleware::Rack.reporter = block
  else
    GvlMetricsMiddleware::Rack.reporter
  end
end

.safe_guard=(value) ⇒ Object



50
51
52
# File 'lib/gvl_metrics_middleware.rb', line 50

def self.safe_guard=(value)
  @@safe_guard = value
end

.safe_guard?Boolean

Returns:

  • (Boolean)


48
# File 'lib/gvl_metrics_middleware.rb', line 48

def self.safe_guard? = @@safe_guard

.sampling_rateObject



56
57
58
# File 'lib/gvl_metrics_middleware.rb', line 56

def self.sampling_rate
  @@sampling_rate
end

.sampling_rate=(rate) ⇒ Object



60
61
62
63
64
65
66
67
# File 'lib/gvl_metrics_middleware.rb', line 60

def self.sampling_rate=(rate)
  rate = rate.to_f
  if rate < 0.0 || rate > 1.0
    raise ArgumentError, "sampling_rate must be between 0.0 and 1.0, got #{rate}"
  end

  @@sampling_rate = rate
end

.should_sample?Boolean

Returns:

  • (Boolean)


69
70
71
72
73
74
# File 'lib/gvl_metrics_middleware.rb', line 69

def self.should_sample?
  return true if @@sampling_rate == 1.0
  return false if @@sampling_rate == 0.0

  enabled? && (rand < @@sampling_rate)
end

.sidekiq(&block) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/gvl_metrics_middleware.rb', line 18

def self.sidekiq(&block)
  require "gvl_metrics_middleware/sidekiq"

  if block_given?
    GvlMetricsMiddleware::Sidekiq.reporter = block
  else
    GvlMetricsMiddleware::Sidekiq.reporter
  end
end