Reputation: 5251
I want to profile (keep an Eye on) all the activities that goes on in a Database which is in PostgreSQL.
Is there any such utility which will help me do this?
Upvotes: 35
Views: 39993
Reputation: 9761
PgBadger is an actively maintained profiling tool that provides very detailed reports and graphs (see examples). It can process large volumes of PostgreSQL logs to answer questions like:
(PgBadger was explicitly built to "replace and outperform" pgFouine, which has not been maintained since about 2010.)
Upvotes: 13
Reputation: 13353
Well, if you're looking at what's going on, regarding selects, updates, deletes, and so on, there are a few views in the pg_catalog
schema, I mainly use pg_stat_user_tables
and pg_stat_user_indexes
but there are many more, all within pg_stat*
.
There also is the pg_stat_activity
view which tells you what's running on your server right now.
I've hacked together four munin plugins that uses the user_tables and user_indexes, they're available there
Upvotes: 6
Reputation: 35459
For "keeping an eye", I use pgtop, a program which deliberately mimics Unix 'top' command.
Upvotes: 21
Reputation: 1269
Have a look at Nagios-Plugin script or check_postgres.pl
Upvotes: 2
Reputation: 1078
"Keep an eye on" and "profile" are two quite different tasks in my view.
For profiling (not a live view on what's going on right now, but to see which queries take most time etc), check out pgFouine:
http://pgfouine.projects.postgresql.org/
This will let you see which queries are resource intensive, and take appropriate action: Add missing indexes, rewrite queries using other techiques etc.
Upvotes: 36