Merge branch 'instrument-service-classes' into 'master'
Instrument all service classes This will help us see where (mostly) Sidekiq code is spending time. See merge request !3675
This commit is contained in:
commit
0b8852d3c4
|
@ -1,6 +1,7 @@
|
|||
Please view this file on the master branch, on stable branches it's out of date.
|
||||
|
||||
v 8.7.0 (unreleased)
|
||||
- All service classes (those residing in app/services) are now instrumented (Yorick Peterse)
|
||||
- Enable gzip for assets, makes the page size significantly smaller. !3544 / !3632 (Connor Shea)
|
||||
- Load award emoji images separately unless opening the full picker. Saves several hundred KBs of data for most pages. (Connor Shea)
|
||||
- All images in discussions and wikis now link to their source files !3464 (Connor Shea).
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
if Gitlab::Metrics.enabled?
|
||||
require 'pathname'
|
||||
require 'influxdb'
|
||||
require 'connection_pool'
|
||||
require 'method_source'
|
||||
|
@ -95,6 +96,17 @@ if Gitlab::Metrics.enabled?
|
|||
|
||||
config.instrument_methods(Gitlab::ReferenceExtractor)
|
||||
config.instrument_instance_methods(Gitlab::ReferenceExtractor)
|
||||
|
||||
# Instrument all service classes
|
||||
services = Rails.root.join('app', 'services')
|
||||
|
||||
Dir[services.join('**', '*.rb')].each do |file_path|
|
||||
path = Pathname.new(file_path).relative_path_from(services)
|
||||
const = path.to_s.sub('.rb', '').camelize.constantize
|
||||
|
||||
config.instrument_methods(const)
|
||||
config.instrument_instance_methods(const)
|
||||
end
|
||||
end
|
||||
|
||||
GC::Profiler.enable
|
||||
|
|
Loading…
Reference in New Issue