Update longqueries tool: add client IP, waiting attributes.
authorRadek Brich <radek.brich@devl.cz>
Wed, 26 Sep 2012 16:28:28 +0200
changeset 44 4fe39c59c515
parent 43 a921669e913a
child 45 6d8e4ee4bdd2
Update longqueries tool: add client IP, waiting attributes.
longqueries.py
pgtoolkit.conf.example
pgtoolkit/pgstats.py
schemadiff.py
--- a/longqueries.py	Wed Sep 26 16:21:59 2012 +0200
+++ b/longqueries.py	Wed Sep 26 16:28:28 2012 +0200
@@ -1,7 +1,7 @@
 #!/usr/bin/env python3.2
 
 from pgtoolkit import pgstats, toolbase
-from pgtoolkit.highlight import highlight
+from pgtoolkit.highlight import highlight, YELLOW, BOLD
 
 
 class LongQueriesTool(toolbase.SimpleTool):
@@ -13,7 +13,12 @@
         stats = pgstats.PgStats(self.pgm.get_conn('target'))
 
         for ln in stats.list_long_queries('1m'):
-            print(highlight(1), 'backend PID: ', ln['procpid'], ', query_start: ', ln['query_start'].strftime('%F %T'), highlight(0), sep='')
+            print(highlight(1),
+                  'backend PID: ', ln['procpid'],
+                  ', query_start: ', ln['query_start'].strftime('%F %T'),
+                  ', client IP: ', ln['client_addr'],
+                  ln['waiting'] and ', ' + highlight(1, YELLOW|BOLD) + 'waiting' or '',
+                  highlight(0), sep='')
             print(ln['query'])
             print()
 
--- a/pgtoolkit.conf.example	Wed Sep 26 16:21:59 2012 +0200
+++ b/pgtoolkit.conf.example	Wed Sep 26 16:28:28 2012 +0200
@@ -3,8 +3,7 @@
   'test' : 'host=127.0.0.1 user=test password=test dbname=test'
 }
 
-### meta database
-# connection string (dsn) to meta db
+### meta database (contains connection parameters for other databases)
 meta_db = 'host=10.8.0.1 dbname=central'
-# query from meta db, input is database name (will be placed instead of %s), output is values for create_conn
+# query for connection parameters, input is database name (will be placed instead of %s)
 meta_query = '''SELECT host, port, dbname, user, password FROM config.databases WHERE name = %s LIMIT 1'''
--- a/pgtoolkit/pgstats.py	Wed Sep 26 16:21:59 2012 +0200
+++ b/pgtoolkit/pgstats.py	Wed Sep 26 16:28:28 2012 +0200
@@ -41,8 +41,9 @@
             curs.close()
 
     def list_long_queries(self, longer_than='1m'):
-        return self._query('''SELECT datname, procpid, usename, current_query AS query,
-            waiting, xact_start, query_start, backend_start
+        return self._query('''SELECT
+              datname, procpid, usename, current_query AS query,
+              waiting, xact_start, query_start, backend_start, client_addr
             FROM pg_stat_activity
             WHERE current_query <> '<IDLE>' AND query_start < now() - interval %s
             ORDER BY query_start;''',
--- a/schemadiff.py	Wed Sep 26 16:21:59 2012 +0200
+++ b/schemadiff.py	Wed Sep 26 16:28:28 2012 +0200
@@ -1,4 +1,10 @@
 #!/usr/bin/env python3.2
+#
+# Print differences in database schema.
+#
+# Prints changes from source to destination.
+# SQL patch updates source database schema to destination schema.
+#
 
 from pgtoolkit import pgmanager, pgbrowser, pgdiff, toolbase