Tool for finding time-consuming database queries for ActiveRecord-based Rails Apps. Provides Slack notifications with backtrace, raw SQL, time duration, etc.
Add this line to your application's Gemfile
and then execute bundle install
:
gem 'query_track'
Specify SQL duration query limit (in seconds):
QueryTrack::Settings.configure do |config|
config.duration = 0.5
end
Enable console logs from config:
QueryTrack::Settings.configure do |config|
config.duration = 0.5
config.logs = true
end
To avoid noisy warnings from used gems, and places where fat queries are justified, you can filters SQL by backtrace.
For example, you have installed activeadmin
and want to skip everything from app/admin
:
QueryTrack::Settings.configure do |config|
config.duration = 0.5
config.filters = ['app/admin']
end
Enable/disable with ENV variables to turn it on/off without code push. By default QueryTrack is enabled.
QueryTrack::Settings.configure do |config|
config.duration = 0.5
config.enabled = ENV['QUERY_TRACK_ENABLED']
end
To receive notifications about slow queries into Slack, you need to install incoming-webhooks and put link into config file:
QueryTrack::Settings.configure do |config|
config.duration = 0.5
config.notifications.slack = 'https://hooks.slack.com/services/T0000000/B0000000/C0000000'
end
Bug reports and pull requests are welcome on GitHub at https://github.com/kirillshevch/query_track.
The gem is available as open source under the terms of the MIT License.