Awesome
pg_web_stats
Mountable Sinatra app to render pg_stat_statements in user friendly way.
<a href="https://evilmartians.com/"> <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" width="236" height="54"></a>Features
- Sorting by any column from pg_stat_statements
- Filtering by database or user
- Highlighting important queries && hidding not important queries
Installation
- Prepare your PG setup: enable the
pg_stat_statements
extension and executeCREATE EXTENSION pg_stat_statements
inside the database you want to inspect. Hint: there is an awesome article about pg_stat_statements in russian. - Clone the repo
- Fill
config.yml.example
with your credentians and save it asconfig.yml
- Start the app:
rake server
(or runrake console
to have command line) - ???
- PROFIT
Mount inside a rails app
Add this line to your application's Gemfile:
gem 'pg_web_stats', require: 'pg_web_stats_app'
Or if gem is not released yet
gem 'pg_web_stats', git: 'https://github.com/shhavel/pg_web_stats', require: 'pg_web_stats_app'
And then execute:
$ bundle
Create file config/initializers/pg_web_stats.rb
# Configure database connection
config_hash = YAML.load_file(Rails.root.join('config', 'database.yml'))[Rails.env]
PG_WEB_STATS = PgWebStats.new(config_hash)
# Restrict access to pg_web_stats with Basic Authentication
# (or use any other authentication system).
PgWebStatsApp.use(Rack::Auth::Basic) do |user, password|
password == "secret"
end
Add to routes.rb
mount PgWebStatsApp, at: '/pg_stats'
Restart rails app and visit http://localhost:3000/pg_stats
<hr /> Made by [Kir Shatrov](https://github.com/kirs), sponsored by [Evil Martians](http://evl.ms).Thanks to Ivan Evtuhovich for advice about making this app.