Class: Gitlab::Metrics::Subscribers::RailsCache
- Inherits:
-
ActiveSupport::Subscriber
- Object
- ActiveSupport::Subscriber
- Gitlab::Metrics::Subscribers::RailsCache
- Defined in:
- lib/gitlab/metrics/subscribers/rails_cache.rb
Overview
Class for tracking the total time spent in Rails cache calls guides.rubyonrails.org/active_support_instrumentation.html
Instance Method Summary collapse
- #cache_delete(event) ⇒ Object
- #cache_exist?(event) ⇒ Boolean
- #cache_fetch_hit(event) ⇒ Object
- #cache_generate(event) ⇒ Object
- #cache_read(event) ⇒ Object
- #cache_read_multi(event) ⇒ Object
- #cache_write(event) ⇒ Object
- #observe(key, event) ⇒ Object
Instance Method Details
#cache_delete(event) ⇒ Object
36 37 38 |
# File 'lib/gitlab/metrics/subscribers/rails_cache.rb', line 36 def cache_delete(event) observe(:delete, event) end |
#cache_exist?(event) ⇒ Boolean
40 41 42 |
# File 'lib/gitlab/metrics/subscribers/rails_cache.rb', line 40 def cache_exist?(event) observe(:exists, event) end |
#cache_fetch_hit(event) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/gitlab/metrics/subscribers/rails_cache.rb', line 44 def cache_fetch_hit(event) return unless current_transaction labels = { store: extract_store_name(event) } current_transaction.increment(:gitlab_transaction_cache_read_hit_count_total, 1, labels) end |
#cache_generate(event) ⇒ Object
51 52 53 54 55 56 57 58 |
# File 'lib/gitlab/metrics/subscribers/rails_cache.rb', line 51 def cache_generate(event) return unless current_transaction track_cache_miss(event) labels = { store: extract_store_name(event) } current_transaction.increment(:gitlab_transaction_cache_read_miss_count_total, 1, labels) end |
#cache_read(event) ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'lib/gitlab/metrics/subscribers/rails_cache.rb', line 23 def cache_read(event) observe(:read, event) return unless current_transaction return if event.payload[:super_operation] == :fetch track_cache_miss(event) unless event.payload[:hit] end |
#cache_read_multi(event) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/gitlab/metrics/subscribers/rails_cache.rb', line 11 def cache_read_multi(event) observe(:read_multi, event) return unless current_transaction labels = { store: extract_store_name(event) } current_transaction.observe(:gitlab_cache_read_multikey_count, event.payload[:key].size, labels) do buckets [10, 50, 100, 1000] docstring 'Number of keys for mget in read_multi/fetch_multi' end end |
#cache_write(event) ⇒ Object
32 33 34 |
# File 'lib/gitlab/metrics/subscribers/rails_cache.rb', line 32 def cache_write(event) observe(:write, event) end |
#observe(key, event) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/gitlab/metrics/subscribers/rails_cache.rb', line 60 def observe(key, event) return unless current_transaction labels = { operation: key, store: extract_store_name(event) } current_transaction.increment(:gitlab_cache_operations_total, 1, labels) do docstring 'Cache operations' label_keys labels.keys end metric_cache_operation_duration_seconds.observe(labels, event.duration / 1000.0) end |