Skip to main content

Command line tool for PostgreSQL server activity monitoring.

Project description

pg_activity

Command line tool for PostgreSQL server activity monitoring.

Latest PyPI version

Dependencies

  • python2.6
  • psycopg22.2.1
  • psutil0.5.1

Installation from sources: setuptools0.6.14

You have to install the package psycopg2 from pgdg APT or YUM repositories. psycopg2 can also been installed from pip with pip install psycopg2 or pip install psycopg2-binary for the binary version.

Installation

sudo python setup.py install

Installation with man page

sudo python setup.py install --with-man

Usage

pg_activity works localy or remotely. In local execution context, to obtain sufficient rights to display system informations, the system user running pg_activity must be the same user running postgresql server (postgres by default), or have more rights like root. Otherwise, pg_activity can fallback to a degraded mode without displaying system informations. On the same way, PostgreSQL user used to connect to the database must be super-user. ex:

sudo -u postgres pg_activity -U postgres

Options

pg_activity [options]

Options:
    --version             Show program's version number and exit
    -U USERNAME, --username=USERNAME
                          Database user name (default: "postgres").
    -p PORT, --port=PORT  Database server port (default: "5432").
    -h HOSTNAME, --host=HOSTNAME
                          Database server host or socket directory (default:
                          "localhost").
    -d DBNAME, --dbname=DBNAME
                          Database name to connect to (default: "postgres").
    -C, --no-color        Disable color usage.
    --blocksize=BLOCKSIZE Filesystem blocksize (default: 4096).
    --rds                 Enable support for AWS RDS.
    --output=FILEPATH     Store running queries as CSV.
    --help                Show this help message and exit.
    --debug               Enable debug mode for traceback tracking.
    --no-db-size          Skip total size of DB.
    --min-duration        Don't display queries with smaller than specified
                          duration (in seconds).
    --verbose-mode=VERBOSE_MODE
                          Queries display mode. Values: 1-TRUNCATED,
                          2-FULL(default), 3-INDENTED
    --duration-mode=DURATION_MODE
                          Duration mode. Values: 1-QUERY(default),
                          2-TRANSACTION, 3-BACKEND


Display options, you can exclude some columns by using them :
    --no-database         Disable DATABASE.
    --no-user             Disable USER.
    --no-client           Disable CLIENT.
    --no-cpu              Disable CPU%.
    --no-mem              Disable MEM%.
    --no-read             Disable READ/s.
    --no-write            Disable WRITE/s.
    --no-time             Disable TIME+.
    --no-wait             Disable W.
    --no-app-name         Disable App.

Notes

Length of SQL query text that pg_activity reports relies on PostgreSQL parameter track_activity_query_size. Default value is 1024 (expressed in bytes). If your SQL query text look truncated, you should increase track_activity_query_size.

Interactives commands

Key Action
C Activate/deactivate colors
r Sort by READ/s, descending
w Sort by WRITE/s, descending
c Sort by CPU%, descending
m Sort by MEM%, descending
t Sort by TIME+, descending
T Change duration mode: query, transaction, backend
Space Pause on/off
v Change queries display mode: full, indented, truncated
UP/DOWN Scroll processes list
q Quit
+ Increase refresh time. Maximum value : 5s
- Decrease refresh time. Minimum Value : 0.5s
F1/1 Running queries list
F2/2 Waiting queries list
F3/3 Blocking queries list
h Help page
R Refresh
D Refresh Database Size (including when --no-dbzise option applied)

Navigation mode

Key Action
UP Move up the cursor
DOWN Move down the cursor
k Terminate the current backend/tagged backends
Space Tag or untag the process
q Quit
Other Back to activity

Screenshot

pg_activity screenshot

FAQ

I can't see my queries only TPS is shown

pg_activity scans the view pg_stat_activity with a user defined refresh time comprised between O.5 and 5 seconds. It can be modified in the interface with the + and - keys. Any query executed between two scans won't be displayed.

What is more, pg_activity uses different queries to get :

  • settings from pg_settings
  • version info using version()
  • queries and number of connections from pg_stat_activity
  • locks from pg_locks
  • tps from pg_database using pg_stat_get_db_xact_commit() and pg_stat_get_db_xact_rollback()
  • and more ( eg : pg_cancel_backend() and pg_terminate_backend() )

Thoses queries cannot be seen in the query tab because all queries issued from the pg_activity backend are considered as noise and are not displayed . On the other hand, the transactions used to get the info for pg_activity's reporting are still accounted for by postgres in pg_stat_get_db_xact_commit() and pg_stat_get_db_xact_commit(). Therefore pg_activity will display a non zero TPS even with no activity on the database, and/or no activity displayed on screen.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pg_activity-1.6.2.tar.gz (30.2 kB view details)

Uploaded Source

Built Distribution

pg_activity-1.6.2-py2.py3-none-any.whl (29.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pg_activity-1.6.2.tar.gz.

File metadata

  • Download URL: pg_activity-1.6.2.tar.gz
  • Upload date:
  • Size: 30.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.9

File hashes

Hashes for pg_activity-1.6.2.tar.gz
Algorithm Hash digest
SHA256 2de0a6e4a5c17e917ab05d99bccaff11b6a3ab5eee4951feeb24bd2fbfd16405
MD5 0272b34e2f11340dac22802e5821b120
BLAKE2b-256 4b1400f67b479650a56eed8576c8f66203e7a9892e54e8987bdf4e72b148c779

See more details on using hashes here.

File details

Details for the file pg_activity-1.6.2-py2.py3-none-any.whl.

File metadata

  • Download URL: pg_activity-1.6.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 29.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.9

File hashes

Hashes for pg_activity-1.6.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 39a9a96e36f204194ef5cea486132409d2cdcb3dfc563ca6c121c639a2bfe3a6
MD5 f8a4427c3653d4c4afabc0395ac89c1c
BLAKE2b-256 d3a718febc6a0f65575f879a608778e92d3037eac609cbf11eb431aef1cd2d20

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page