Class: Statsd::Batch
- Extended by:
- Forwardable
- Defined in:
- lib/statsd.rb
Overview
Batch: A batching statsd proxy
Batch is a subclass of Statsd, but with a constructor that proxies to a normal Statsd instance. It has it’s own batch_size and namespace parameters (that inherit defaults from the supplied Statsd instance). It is recommended that some care is taken if setting very large batch sizes. If the batch size exceeds the allowed packet size for UDP on your network, communication troubles may occur and data will be lost.
Instance Attribute Summary collapse
-
#batch_size ⇒ Object
Returns the value of attribute batch_size.
Attributes inherited from Statsd
#host, #namespace, #port, #postfix, #prefix
Instance Method Summary collapse
-
#easy ⇒ Object
A convenience method to ensure that data is not lost in the event of an exception being thrown.
- #flush ⇒ Object
-
#initialize(statsd) ⇒ Batch
constructor
A new instance of Batch.
Methods inherited from Statsd
#batch, #count, #decrement, #gauge, #increment, #set, #time, #timing
Constructor Details
#initialize(statsd) ⇒ Batch
Returns a new instance of Batch.
55 56 57 58 59 |
# File 'lib/statsd.rb', line 55 def initialize(statsd) @statsd = statsd @batch_size = statsd.batch_size @backlog = [] end |
Instance Attribute Details
#batch_size ⇒ Object
Returns the value of attribute batch_size.
52 53 54 |
# File 'lib/statsd.rb', line 52 def batch_size @batch_size end |
Instance Method Details
#easy ⇒ Object
A convenience method to ensure that data is not lost in the event of an exception being thrown. Batches will be transmitted on the parent socket as soon as the batch is full, and when the block finishes.
66 67 68 69 70 |
# File 'lib/statsd.rb', line 66 def easy yield self ensure flush end |
#flush ⇒ Object
72 73 74 75 76 77 |
# File 'lib/statsd.rb', line 72 def flush unless @backlog.empty? @statsd.send_to_socket @backlog.join("\n") @backlog.clear end end |