Module: NSA::Statsd::AsyncPublisher

Includes:
Publisher
Defined in:
lib/nsa/statsd/async_publisher.rb

Instance Method Summary collapse

Methods included from Publisher

#__statsd_publish, #statsd_count, #statsd_decrement, #statsd_gauge, #statsd_increment, #statsd_set, #statsd_time, #statsd_timing

Instance Method Details

#async_statsd_count(key, sample_rate = 1, &block) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/nsa/statsd/async_publisher.rb', line 8

def async_statsd_count(key, sample_rate = 1, &block)
  return unless sample_rate == 1 || rand < sample_rate

  ::Concurrent::Promise.execute(&block).then do |value|
    statsd_count(key, value)
  end
end

#async_statsd_gauge(key, sample_rate = 1, &block) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/nsa/statsd/async_publisher.rb', line 16

def async_statsd_gauge(key, sample_rate = 1, &block)
  return unless sample_rate == 1 || rand < sample_rate

  ::Concurrent::Promise.execute(&block).then do |value|
    statsd_gauge(key, value)
  end
end

#async_statsd_set(key, sample_rate = 1, &block) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/nsa/statsd/async_publisher.rb', line 24

def async_statsd_set(key, sample_rate = 1, &block)
  return unless sample_rate == 1 || rand < sample_rate

  ::Concurrent::Promise.execute(&block).then do |value|
    statsd_set(key, value)
  end
end

#async_statsd_time(key, sample_rate = 1, &block) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/nsa/statsd/async_publisher.rb', line 32

def async_statsd_time(key, sample_rate = 1, &block)
  return unless sample_rate == 1 || rand < sample_rate

  ::Concurrent::Future.execute do
    statsd_time(key, &block)
  end
end

#async_statsd_timing(key, sample_rate = 1, &block) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/nsa/statsd/async_publisher.rb', line 40

def async_statsd_timing(key, sample_rate = 1, &block)
  return unless sample_rate == 1 || rand < sample_rate

  ::Concurrent::Promise.execute(&block).then do |value|
    statsd_timing(key, value)
  end
end