Class: RailsVitals::RequestRecord
- Inherits:
-
Object
- Object
- RailsVitals::RequestRecord
- Defined in:
- lib/rails_vitals/request_record.rb
Instance Attribute Summary collapse
-
#action ⇒ Object
readonly
Returns the value of attribute action.
-
#callbacks ⇒ Object
readonly
Returns the value of attribute callbacks.
-
#color ⇒ Object
readonly
Returns the value of attribute color.
-
#controller ⇒ Object
readonly
Returns the value of attribute controller.
-
#duration_ms ⇒ Object
readonly
Returns the value of attribute duration_ms.
-
#http_method ⇒ Object
readonly
Returns the value of attribute http_method.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#label ⇒ Object
readonly
Returns the value of attribute label.
-
#n_plus_one_patterns ⇒ Object
readonly
Returns the value of attribute n_plus_one_patterns.
-
#queries ⇒ Object
readonly
Returns the value of attribute queries.
-
#recorded_at ⇒ Object
readonly
Returns the value of attribute recorded_at.
-
#response_status ⇒ Object
readonly
Returns the value of attribute response_status.
-
#score ⇒ Object
readonly
Returns the value of attribute score.
-
#total_callback_time_ms ⇒ Object
readonly
Returns the value of attribute total_callback_time_ms.
Instance Method Summary collapse
- #endpoint ⇒ Object
-
#initialize(collector:, scorer:) ⇒ RequestRecord
constructor
A new instance of RequestRecord.
- #slowest_queries(limit = 3) ⇒ Object
- #total_db_time_ms ⇒ Object
- #total_query_count ⇒ Object
Constructor Details
#initialize(collector:, scorer:) ⇒ RequestRecord
Returns a new instance of RequestRecord.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/rails_vitals/request_record.rb', line 8 def initialize(collector:, scorer:) @id = SecureRandom.hex(8) @controller = collector.controller @action = collector.action @http_method = collector.http_method @response_status = collector.response_status @duration_ms = collector.duration_ms @queries = collector.queries @callbacks = collector.callbacks @total_callback_time_ms = collector.total_callback_time_ms @score = scorer.score @label = scorer.label @color = scorer.color @n_plus_one_patterns = build_n_plus_one_patterns(scorer) @recorded_at = Time.now end |
Instance Attribute Details
#action ⇒ Object (readonly)
Returns the value of attribute action.
3 4 5 |
# File 'lib/rails_vitals/request_record.rb', line 3 def action @action end |
#callbacks ⇒ Object (readonly)
Returns the value of attribute callbacks.
3 4 5 |
# File 'lib/rails_vitals/request_record.rb', line 3 def callbacks @callbacks end |
#color ⇒ Object (readonly)
Returns the value of attribute color.
3 4 5 |
# File 'lib/rails_vitals/request_record.rb', line 3 def color @color end |
#controller ⇒ Object (readonly)
Returns the value of attribute controller.
3 4 5 |
# File 'lib/rails_vitals/request_record.rb', line 3 def controller @controller end |
#duration_ms ⇒ Object (readonly)
Returns the value of attribute duration_ms.
3 4 5 |
# File 'lib/rails_vitals/request_record.rb', line 3 def duration_ms @duration_ms end |
#http_method ⇒ Object (readonly)
Returns the value of attribute http_method.
3 4 5 |
# File 'lib/rails_vitals/request_record.rb', line 3 def http_method @http_method end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
3 4 5 |
# File 'lib/rails_vitals/request_record.rb', line 3 def id @id end |
#label ⇒ Object (readonly)
Returns the value of attribute label.
3 4 5 |
# File 'lib/rails_vitals/request_record.rb', line 3 def label @label end |
#n_plus_one_patterns ⇒ Object (readonly)
Returns the value of attribute n_plus_one_patterns.
3 4 5 |
# File 'lib/rails_vitals/request_record.rb', line 3 def n_plus_one_patterns @n_plus_one_patterns end |
#queries ⇒ Object (readonly)
Returns the value of attribute queries.
3 4 5 |
# File 'lib/rails_vitals/request_record.rb', line 3 def queries @queries end |
#recorded_at ⇒ Object (readonly)
Returns the value of attribute recorded_at.
3 4 5 |
# File 'lib/rails_vitals/request_record.rb', line 3 def recorded_at @recorded_at end |
#response_status ⇒ Object (readonly)
Returns the value of attribute response_status.
3 4 5 |
# File 'lib/rails_vitals/request_record.rb', line 3 def response_status @response_status end |
#score ⇒ Object (readonly)
Returns the value of attribute score.
3 4 5 |
# File 'lib/rails_vitals/request_record.rb', line 3 def score @score end |
#total_callback_time_ms ⇒ Object (readonly)
Returns the value of attribute total_callback_time_ms.
3 4 5 |
# File 'lib/rails_vitals/request_record.rb', line 3 def total_callback_time_ms @total_callback_time_ms end |
Instance Method Details
#endpoint ⇒ Object
25 26 27 |
# File 'lib/rails_vitals/request_record.rb', line 25 def endpoint "#{@controller}##{@action}" end |
#slowest_queries(limit = 3) ⇒ Object
37 38 39 |
# File 'lib/rails_vitals/request_record.rb', line 37 def slowest_queries(limit = 3) @queries.sort_by { |q| -q[:duration_ms] }.first(limit) end |
#total_db_time_ms ⇒ Object
33 34 35 |
# File 'lib/rails_vitals/request_record.rb', line 33 def total_db_time_ms @queries.sum { |q| q[:duration_ms] } end |
#total_query_count ⇒ Object
29 30 31 |
# File 'lib/rails_vitals/request_record.rb', line 29 def total_query_count @queries.size end |