Module: Bootprint::InitializerProfiler
- Defined in:
- lib/bootprint/initializer_profiler.rb
Defined Under Namespace
Modules: EnvironmentProbe, Instrumentation
Constant Summary
collapse
- NETWORK_METHODS =
%i[connect connect_nonblock tcp start open].freeze
Class Method Summary
collapse
Class Method Details
.config_fingerprint ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/bootprint/initializer_profiler.rb', line 25
def config_fingerprint
return {} unless defined?(Rails) && Rails.respond_to?(:application) && Rails.application
config = Rails.application.config
%i[eager_load cache_classes time_zone cache_store session_store].to_h do |name|
value = config.public_send(name) if config.respond_to?(name)
[name.to_s, value.is_a?(Array) ? value.first.to_s : value.to_s]
rescue StandardError
[name.to_s, nil]
end
end
|
.install! ⇒ Object
11
12
13
14
15
16
17
18
|
# File 'lib/bootprint/initializer_profiler.rb', line 11
def install!
return unless Bootprint.configuration.profile_boot
return unless defined?(Rails::Initializable::Initializer)
return if Rails::Initializable::Initializer.ancestors.include?(Instrumentation)
ENV.singleton_class.prepend(EnvironmentProbe) unless ENV.singleton_class.ancestors.include?(EnvironmentProbe)
Rails::Initializable::Initializer.prepend(Instrumentation)
end
|
.record_missing_environment(name) ⇒ Object
20
21
22
23
|
# File 'lib/bootprint/initializer_profiler.rb', line 20
def record_missing_environment(name)
collector = Thread.current[:bootprint_missing_environment]
collector << name.to_s if collector
end
|