Class: Appsignal::Aggregator
- Inherits:
-
Object
- Object
- Appsignal::Aggregator
- Defined in:
- lib/appsignal/aggregator.rb,
lib/appsignal/aggregator/post_processor.rb,
lib/appsignal/aggregator/middleware/chain.rb,
lib/appsignal/aggregator/middleware/delete_blanks.rb,
lib/appsignal/aggregator/middleware/action_view_sanitizer.rb,
lib/appsignal/aggregator/middleware/active_record_sanitizer.rb
Defined Under Namespace
Modules: Middleware Classes: PostProcessor
Instance Attribute Summary collapse
-
#counts ⇒ Object
readonly
Returns the value of attribute counts.
-
#queue ⇒ Object
readonly
Returns the value of attribute queue.
-
#slowness_index ⇒ Object
readonly
Returns the value of attribute slowness_index.
Instance Method Summary collapse
-
#add(transaction) ⇒ Object
truncates or reduces the size of event values of the transaction, and adds it to the queue.
-
#has_transactions? ⇒ Boolean
Informs whether the queue has any transactions in it or not.
-
#initialize(queue = ::ThreadSafe::Array.new, slowness_index = {}) ⇒ Aggregator
constructor
A new instance of Aggregator.
-
#post_processed_queue! ⇒ Object
Post process the queue and return it.
Constructor Details
#initialize(queue = ::ThreadSafe::Array.new, slowness_index = {}) ⇒ Aggregator
Returns a new instance of Aggregator.
5 6 7 8 9 |
# File 'lib/appsignal/aggregator.rb', line 5 def initialize(queue=::ThreadSafe::Array.new, slowness_index={}) @queue = queue @slowness_index = slowness_index @counts = {:regular_request => 0, :slow_request => 0, :exception => 0} end |
Instance Attribute Details
#counts ⇒ Object (readonly)
Returns the value of attribute counts.
3 4 5 |
# File 'lib/appsignal/aggregator.rb', line 3 def counts @counts end |
#queue ⇒ Object (readonly)
Returns the value of attribute queue.
3 4 5 |
# File 'lib/appsignal/aggregator.rb', line 3 def queue @queue end |
#slowness_index ⇒ Object (readonly)
Returns the value of attribute slowness_index.
3 4 5 |
# File 'lib/appsignal/aggregator.rb', line 3 def slowness_index @slowness_index end |
Instance Method Details
#add(transaction) ⇒ Object
truncates or reduces the size of event values of the transaction, and adds it to the queue.
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/appsignal/aggregator.rb', line 15 def add(transaction) case transaction.type when :regular_request transaction.truncate! when :slow_request pre_process_slowness!(transaction) when :exception transaction.convert_values_to_primitives! end counts[transaction.type] += 1 queue << transaction end |
#has_transactions? ⇒ Boolean
Informs whether the queue has any transactions in it or not
31 32 33 |
# File 'lib/appsignal/aggregator.rb', line 31 def has_transactions? queue.any? end |
#post_processed_queue! ⇒ Object
Post process the queue and return it
38 39 40 41 |
# File 'lib/appsignal/aggregator.rb', line 38 def post_processed_queue! Appsignal.logger.debug("Post processing queue: #{counts.inspect}") Appsignal::Aggregator::PostProcessor.new(queue).post_processed_queue! end |