Class: RequestTrail::Collector
- Inherits:
-
Object
- Object
- RequestTrail::Collector
- Defined in:
- lib/request_trail/collector.rb
Constant Summary collapse
- THREAD_KEY =
:request_trail_collector
Instance Attribute Summary collapse
-
#action_duration_ms ⇒ Object
readonly
Returns the value of attribute action_duration_ms.
-
#cache_duration_ms ⇒ Object
readonly
Returns the value of attribute cache_duration_ms.
-
#cache_hits ⇒ Object
readonly
Returns the value of attribute cache_hits.
-
#cache_misses ⇒ Object
readonly
Returns the value of attribute cache_misses.
-
#cache_writes ⇒ Object
readonly
Returns the value of attribute cache_writes.
-
#sql_count ⇒ Object
readonly
Returns the value of attribute sql_count.
-
#sql_duration_ms ⇒ Object
readonly
Returns the value of attribute sql_duration_ms.
-
#view_duration_ms ⇒ Object
readonly
Returns the value of attribute view_duration_ms.
Class Method Summary collapse
Instance Method Summary collapse
- #elapsed_ms ⇒ Object
-
#initialize ⇒ Collector
constructor
A new instance of Collector.
- #record_action(duration_ms:, view_duration_ms:) ⇒ Object
- #record_cache_read(hit:, duration_ms:) ⇒ Object
- #record_cache_write(duration_ms:) ⇒ Object
- #record_sql(duration_ms) ⇒ Object
Constructor Details
#initialize ⇒ Collector
Returns a new instance of Collector.
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/request_trail/collector.rb', line 23 def initialize @started_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) @sql_count = 0 @sql_duration_ms = 0.0 @cache_hits = 0 @cache_misses = 0 @cache_writes = 0 @cache_duration_ms = 0.0 @action_duration_ms = 0.0 @view_duration_ms = 0.0 end |
Instance Attribute Details
#action_duration_ms ⇒ Object (readonly)
Returns the value of attribute action_duration_ms.
7 8 9 |
# File 'lib/request_trail/collector.rb', line 7 def action_duration_ms @action_duration_ms end |
#cache_duration_ms ⇒ Object (readonly)
Returns the value of attribute cache_duration_ms.
7 8 9 |
# File 'lib/request_trail/collector.rb', line 7 def cache_duration_ms @cache_duration_ms end |
#cache_hits ⇒ Object (readonly)
Returns the value of attribute cache_hits.
7 8 9 |
# File 'lib/request_trail/collector.rb', line 7 def cache_hits @cache_hits end |
#cache_misses ⇒ Object (readonly)
Returns the value of attribute cache_misses.
7 8 9 |
# File 'lib/request_trail/collector.rb', line 7 def cache_misses @cache_misses end |
#cache_writes ⇒ Object (readonly)
Returns the value of attribute cache_writes.
7 8 9 |
# File 'lib/request_trail/collector.rb', line 7 def cache_writes @cache_writes end |
#sql_count ⇒ Object (readonly)
Returns the value of attribute sql_count.
7 8 9 |
# File 'lib/request_trail/collector.rb', line 7 def sql_count @sql_count end |
#sql_duration_ms ⇒ Object (readonly)
Returns the value of attribute sql_duration_ms.
7 8 9 |
# File 'lib/request_trail/collector.rb', line 7 def sql_duration_ms @sql_duration_ms end |
#view_duration_ms ⇒ Object (readonly)
Returns the value of attribute view_duration_ms.
7 8 9 |
# File 'lib/request_trail/collector.rb', line 7 def view_duration_ms @view_duration_ms end |
Class Method Details
.current ⇒ Object
11 12 13 |
# File 'lib/request_trail/collector.rb', line 11 def self.current Thread.current[THREAD_KEY] end |
.start ⇒ Object
15 16 17 |
# File 'lib/request_trail/collector.rb', line 15 def self.start Thread.current[THREAD_KEY] = new end |
.stop ⇒ Object
19 20 21 |
# File 'lib/request_trail/collector.rb', line 19 def self.stop Thread.current[THREAD_KEY] = nil end |
Instance Method Details
#elapsed_ms ⇒ Object
55 56 57 58 |
# File 'lib/request_trail/collector.rb', line 55 def elapsed_ms elapsed = Process.clock_gettime(Process::CLOCK_MONOTONIC) - @started_at (elapsed * 1000).round(2) end |
#record_action(duration_ms:, view_duration_ms:) ⇒ Object
50 51 52 53 |
# File 'lib/request_trail/collector.rb', line 50 def record_action(duration_ms:, view_duration_ms:) @action_duration_ms = duration_ms @view_duration_ms = view_duration_ms end |
#record_cache_read(hit:, duration_ms:) ⇒ Object
40 41 42 43 |
# File 'lib/request_trail/collector.rb', line 40 def record_cache_read(hit:, duration_ms:) hit ? @cache_hits += 1 : @cache_misses += 1 @cache_duration_ms += duration_ms end |
#record_cache_write(duration_ms:) ⇒ Object
45 46 47 48 |
# File 'lib/request_trail/collector.rb', line 45 def record_cache_write(duration_ms:) @cache_writes += 1 @cache_duration_ms += duration_ms end |
#record_sql(duration_ms) ⇒ Object
35 36 37 38 |
# File 'lib/request_trail/collector.rb', line 35 def record_sql(duration_ms) @sql_count += 1 @sql_duration_ms += duration_ms end |