Class: RequestTrail::Collector

Inherits:
Object
  • Object
show all
Defined in:
lib/request_trail/collector.rb

Constant Summary collapse

THREAD_KEY =
:request_trail_collector

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCollector

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_msObject (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_msObject (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_hitsObject (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_missesObject (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_writesObject (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_countObject (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_msObject (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_msObject (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

.currentObject



11
12
13
# File 'lib/request_trail/collector.rb', line 11

def self.current
  Thread.current[THREAD_KEY]
end

.startObject



15
16
17
# File 'lib/request_trail/collector.rb', line 15

def self.start
  Thread.current[THREAD_KEY] = new
end

.stopObject



19
20
21
# File 'lib/request_trail/collector.rb', line 19

def self.stop
  Thread.current[THREAD_KEY] = nil
end

Instance Method Details

#elapsed_msObject



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