Module: Sqreen::RequestRecorder
- Included in:
- Frameworks::GenericFramework
- Defined in:
- lib/sqreen/frameworks/request_recorder.rb
Overview
Store event/observations that happened in this request
Instance Method Summary collapse
- #clean_request_record ⇒ Object
- #close_request_record(queue, observations_queue, payload_creator) ⇒ Object
- #observe(what, data, accessors = [], report = true) ⇒ Object
- #observed_items ⇒ Object
- #observed_items=(value) ⇒ Object
- #only_metric_observation ⇒ Object
- #only_metric_observation=(value) ⇒ Object
- #payload_requests ⇒ Object
- #payload_requests=(value) ⇒ Object
Instance Method Details
#clean_request_record ⇒ Object
44 45 46 47 48 |
# File 'lib/sqreen/frameworks/request_recorder.rb', line 44 def clean_request_record self.only_metric_observation = true self.payload_requests = Set.new self.observed_items = Hash.new { |hash, key| hash[key] = [] } end |
#close_request_record(queue, observations_queue, payload_creator) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/sqreen/frameworks/request_recorder.rb', line 57 def close_request_record(queue, observations_queue, payload_creator) Sqreen.log.debug { "close_request_record called. observed_items: #{observed_items}" } clean_request_record if observed_items.nil? if Sqreen.features['use_signals'] || only_metric_observation push_metrics(observations_queue, queue) end if only_metric_observation clean_request_record return end # signals require request section to be present payload_requests << 'request' # for signals, response is optional, but the backend team wants them payload_requests << 'response' payload = payload_creator.payload(payload_requests) payload[:observed] = observed_items queue.push create_request_record(payload) clean_request_record end |
#observe(what, data, accessors = [], report = true) ⇒ Object
50 51 52 53 54 55 |
# File 'lib/sqreen/frameworks/request_recorder.rb', line 50 def observe(what, data, accessors = [], report = true) clean_request_record if observed_items.nil? self.only_metric_observation = false if report observed_items[what] << data payload_requests.merge(accessors) end |
#observed_items ⇒ Object
20 21 22 |
# File 'lib/sqreen/frameworks/request_recorder.rb', line 20 def observed_items SharedStorage.get(:observed_items) end |
#observed_items=(value) ⇒ Object
24 25 26 |
# File 'lib/sqreen/frameworks/request_recorder.rb', line 24 def observed_items=(value) SharedStorage.set(:observed_items, value) end |
#only_metric_observation ⇒ Object
36 37 38 |
# File 'lib/sqreen/frameworks/request_recorder.rb', line 36 def only_metric_observation SharedStorage.get(:only_metric_observation) end |
#only_metric_observation=(value) ⇒ Object
40 41 42 |
# File 'lib/sqreen/frameworks/request_recorder.rb', line 40 def only_metric_observation=(value) SharedStorage.set(:only_metric_observation, value) end |
#payload_requests ⇒ Object
28 29 30 |
# File 'lib/sqreen/frameworks/request_recorder.rb', line 28 def payload_requests SharedStorage.get(:payload_requests) end |
#payload_requests=(value) ⇒ Object
32 33 34 |
# File 'lib/sqreen/frameworks/request_recorder.rb', line 32 def payload_requests=(value) SharedStorage.set(:payload_requests, value) end |