Instrument methods used in email diffs
Make all of the nested constant instrumentation for core app code work the same way, add mailer instrumentation, and add instrumentation to the premailer gem.
This commit is contained in:
parent
0067ca5b87
commit
f660b2173e
2 changed files with 24 additions and 14 deletions
|
@ -19,6 +19,9 @@ v 8.8.0 (unreleased)
|
|||
- Added multiple colors for labels in dropdowns when dups happen.
|
||||
- Improve description for the Two-factor Authentication sign-in screen. (Connor Shea)
|
||||
|
||||
v 8.7.3
|
||||
- Emails, Gitlab::Email::Message, Gitlab::Diff, and Premailer::Adapter::Nokogiri are now instrumented
|
||||
|
||||
v 8.7.2
|
||||
- The "New Branch" button is now loaded asynchronously
|
||||
- Fix error 500 when trying to create a wiki page
|
||||
|
|
|
@ -61,12 +61,30 @@ if Gitlab::Metrics.enabled?
|
|||
config.instrument_instance_methods(const)
|
||||
end
|
||||
|
||||
Dir[Rails.root.join('app', 'finders', '*.rb')].each do |path|
|
||||
const = File.basename(path, '.rb').camelize.constantize
|
||||
# Path to search => prefix to strip from constant
|
||||
paths_to_instrument = {
|
||||
['app', 'finders'] => ['app', 'finders'],
|
||||
['app', 'mailers', 'emails'] => ['app', 'mailers'],
|
||||
['app', 'services', '**'] => ['app', 'services'],
|
||||
['lib', 'gitlab', 'diff'] => ['lib'],
|
||||
['lib', 'gitlab', 'email', 'message'] => ['lib']
|
||||
}
|
||||
|
||||
config.instrument_instance_methods(const)
|
||||
paths_to_instrument.each do |(path, prefix)|
|
||||
prefix = Rails.root.join(*prefix)
|
||||
|
||||
Dir[Rails.root.join(*path + ['*.rb'])].each do |file_path|
|
||||
path = Pathname.new(file_path).relative_path_from(prefix)
|
||||
const = path.to_s.sub('.rb', '').camelize.constantize
|
||||
|
||||
config.instrument_methods(const)
|
||||
config.instrument_instance_methods(const)
|
||||
end
|
||||
end
|
||||
|
||||
config.instrument_methods(Premailer::Adapter::Nokogiri)
|
||||
config.instrument_instance_methods(Premailer::Adapter::Nokogiri)
|
||||
|
||||
[
|
||||
:Blame, :Branch, :BranchCollection, :Blob, :Commit, :Diff, :Repository,
|
||||
:Tag, :TagCollection, :Tree
|
||||
|
@ -97,17 +115,6 @@ 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
|
||||
|
||||
# Instrument the classes used for checking if somebody has push access.
|
||||
config.instrument_instance_methods(Gitlab::GitAccess)
|
||||
config.instrument_instance_methods(Gitlab::GitAccessWiki)
|
||||
|
|
Loading…
Reference in a new issue