Skip to content

smtlaissezfaire/enhanced_query_analyzer

Repository files navigation

Enhanced Query Analyzer Rails Plugin (for MySQL)

Installation

Install it in vendor/plugins:

./script/plugin install git://github.com/smtlaissezfaire/enhanced_query_analyzer.git

Add the model and migration:

./script/generate enhanced_query_analyzer

Migrate:

rake db:migrate

Usage

All select queries will be logged to the query_logs table. You now have the ability to store historical data of all of your database access.

If you’d like finer grained control over logging, provide a block to EnhancedQueryAnalyzer.log_if:

EnhancedQueryAnalyzer.log_if { |query, time| <true | false> }

For instance, if you’d only like to log queries over a second:

EnhancedQueryAnalyzer.log_if { |_, time| time > 1 }

Or only log queries matching some regex:

EnhancedQueryAnalyzer.log_if { |query, time| query =~ /select.../ }

To turn off all logging:

EnhancedQueryAnalyzer.log_if { |_, _| false }

Or in everything but the test environment (this is recommended):

EnhancedQueryAnalyzer.log_if do |query, time|
  RAILS_ENV != "test"
end

You can also add the ability to dynamically run and log the explain of each query:

EnhancedQueryAnalyzer.explain_logging = true

Running Unit Tests

You’ll need rspec and mysql. The database must be named ‘query_analyzer_test’

Credits

Written by Scott Taylor <scott@railsnewbie.com>. Sponsored by Eastmedia (eastmedia.com).

License

Dual licensed under the MIT & GPL licenses.

About

Just like the query_analyzer plugin, but logs to the db instead of the log file

Resources

License

GPL-3.0, MIT licenses found

Licenses found

GPL-3.0
GPL_LICENSE
MIT
MIT_LICENSE

Stars

Watchers

Forks

Packages

No packages published

Languages