mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-26 04:56:16 +10:00
Sherlock will be a new GitLab specific tool for measuring the
performance of Rails requests (and SideKiq jobs at some point). Some of
the things that are currently tracked:
* SQL queries along with their timings, backtraces and query plans
(using "EXPLAIN ANALYZE" for PostgreSQL and regular "EXPLAIN" for
MySQL)
* Timings of application files (including views) on a per line basis
* Some meta data such as the request method, path, total duration, etc
More tracking (e.g. Rugged or gitlab-shell timings) might be added in
the future.
Sherlock will replace any existing tools we have used so far (e.g.
active_record_query_trace and rack-mini-profiler), hence the
corresponding Gems have been removed from the Gemfile.
Sherlock can be enabled by starting Rails as following:
ENABLE_SHERLOCK=1 bundle exec rails s
Recorded transactions can be found at `/sherlock/transactions`.
21 lines
362 B
Ruby
21 lines
362 B
Ruby
require 'securerandom'
|
|
require 'rblineprof' if RUBY_ENGINE == 'ruby'
|
|
|
|
module Gitlab
|
|
module Sherlock
|
|
@collection = Collection.new
|
|
|
|
class << self
|
|
attr_reader :collection
|
|
end
|
|
|
|
def self.enabled?
|
|
Rails.env.development? && !!ENV['ENABLE_SHERLOCK']
|
|
end
|
|
|
|
def self.enable_line_profiler?
|
|
RUBY_ENGINE == 'ruby'
|
|
end
|
|
end
|
|
end
|