Class: BrainzLab::Instrumentation::ActionController

Inherits:
Object
  • Object
show all
Defined in:
lib/brainzlab/instrumentation/action_controller.rb

Constant Summary collapse

SLOW_REQUEST_THRESHOLD =

Thresholds for slow request detection (in milliseconds)

500
VERY_SLOW_REQUEST_THRESHOLD =
2000

Class Method Summary collapse

Class Method Details

.install!Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/brainzlab/instrumentation/action_controller.rb', line 11

def install!
  return unless defined?(::ActionController)
  return if @installed

  install_start_processing_subscriber!
  install_process_action_subscriber!
  install_redirect_subscriber!
  install_halted_callback_subscriber!
  install_unpermitted_parameters_subscriber!
  install_send_file_subscriber!
  install_send_data_subscriber!
  install_send_stream_subscriber!

  # Fragment caching
  install_write_fragment_subscriber!
  install_read_fragment_subscriber!
  install_expire_fragment_subscriber!
  install_exist_fragment_subscriber!

  # Rails 7.1+ rate limiting
  install_rate_limit_subscriber! if rails_71_or_higher?

  @installed = true
  BrainzLab.debug_log('ActionController instrumentation installed')
end

.installed?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/brainzlab/instrumentation/action_controller.rb', line 37

def installed?
  @installed == true
end