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 27 |
# 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.clear_events! 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
32 33 34 |
# File 'lib/appsignal/aggregator.rb', line 32 def has_transactions? queue.any? end |
#post_processed_queue! ⇒ Object
Post process the queue and return it
39 40 41 42 |
# File 'lib/appsignal/aggregator.rb', line 39 def post_processed_queue! Appsignal.logger.debug("Post processing queue: #{counts.inspect}") Appsignal::Aggregator::PostProcessor.new(queue).post_processed_queue! end |