Skip to content
Snippets Groups Projects
Commit 0b8852d3 authored by Rémy Coutable's avatar Rémy Coutable
Browse files

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
parents 13201a3a 435892ed
Branches
Tags
1 merge request!3675Instrument all service classes
Pipeline #
Please view this file on the master branch, on stable branches it's out of date. Please view this file on the master branch, on stable branches it's out of date.
   
v 8.7.0 (unreleased) 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) - 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) - 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). - All images in discussions and wikis now link to their source files !3464 (Connor Shea).
Loading
Loading
if Gitlab::Metrics.enabled? if Gitlab::Metrics.enabled?
require 'pathname'
require 'influxdb' require 'influxdb'
require 'connection_pool' require 'connection_pool'
require 'method_source' require 'method_source'
Loading
@@ -95,6 +96,17 @@ if Gitlab::Metrics.enabled?
Loading
@@ -95,6 +96,17 @@ if Gitlab::Metrics.enabled?
   
config.instrument_methods(Gitlab::ReferenceExtractor) config.instrument_methods(Gitlab::ReferenceExtractor)
config.instrument_instance_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 end
   
GC::Profiler.enable GC::Profiler.enable
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment