Module: Mudis::Metrics
- Included in:
- Mudis
- Defined in:
- lib/mudis/metrics.rb
Overview
Metrics module handles tracking of cache hits, misses, evictions and memory usage
Instance Method Summary collapse
-
#metrics ⇒ Object
Returns a snapshot of metrics (thread-safe).
-
#reset_metrics! ⇒ Object
Resets metric counters (thread-safe).
Instance Method Details
#metrics ⇒ Object
Returns a snapshot of metrics (thread-safe)
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/mudis/metrics.rb', line 7 def metrics # rubocop:disable Metrics/MethodLength @metrics_mutex.synchronize do { hits: @metrics[:hits], misses: @metrics[:misses], evictions: @metrics[:evictions], rejected: @metrics[:rejected], total_memory: current_memory_bytes, least_touched: least_touched(10), buckets: buckets.times.map do |idx| { index: idx, keys: @stores[idx].size, memory_bytes: @current_bytes[idx], lru_size: @lru_nodes[idx].size } end } end end |
#reset_metrics! ⇒ Object
Resets metric counters (thread-safe)
29 30 31 32 33 |
# File 'lib/mudis/metrics.rb', line 29 def reset_metrics! @metrics_mutex.synchronize do @metrics = { hits: 0, misses: 0, evictions: 0, rejected: 0 } end end |