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
-
#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.
Class Method Summary collapse
Instance Method Summary collapse
- #elapsed_ms ⇒ Object
-
#initialize ⇒ Collector
constructor
A new instance of Collector.
- #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.
22 23 24 25 26 27 28 29 30 |
# File 'lib/request_trail/collector.rb', line 22 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 end |
Instance Attribute Details
#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 |
Class Method Details
.current ⇒ Object
10 11 12 |
# File 'lib/request_trail/collector.rb', line 10 def self.current Thread.current[THREAD_KEY] end |
.start ⇒ Object
14 15 16 |
# File 'lib/request_trail/collector.rb', line 14 def self.start Thread.current[THREAD_KEY] = new end |
.stop ⇒ Object
18 19 20 |
# File 'lib/request_trail/collector.rb', line 18 def self.stop Thread.current[THREAD_KEY] = nil end |
Instance Method Details
#elapsed_ms ⇒ Object
47 48 49 50 |
# File 'lib/request_trail/collector.rb', line 47 def elapsed_ms elapsed = Process.clock_gettime(Process::CLOCK_MONOTONIC) - @started_at (elapsed * 1000).round(2) end |
#record_cache_read(hit:, duration_ms:) ⇒ Object
37 38 39 40 |
# File 'lib/request_trail/collector.rb', line 37 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
42 43 44 45 |
# File 'lib/request_trail/collector.rb', line 42 def record_cache_write(duration_ms:) @cache_writes += 1 @cache_duration_ms += duration_ms end |
#record_sql(duration_ms) ⇒ Object
32 33 34 35 |
# File 'lib/request_trail/collector.rb', line 32 def record_sql(duration_ms) @sql_count += 1 @sql_duration_ms += duration_ms end |