Postgres incluye un subsistema de recolección de estadísticas que permite obtener información acerca de la actividad del servidor. Este recolector contabiliza accesos a tablas e índices a nivel de bloques en disco y filas. También conoce la cantidad de filas de cada tabla, número de llamadas a funciones definidas por el usuario, y tiempo transcurrido en cada una de ellas. Por otro lado permite conocer exactamente qué comando está siendo ejecutado por cada proceso, qué conexiones existen actualmente y más. Este artículo explica cómo obtener estadísticas de actividad de un servidor PostgreSQL desde línea de comandos utilizando el cliente psql.



Toda la información recolectada por el subsistema de recolección de estadísticas es accesible a través de un número de vistas que comienzan con el prefijo pg_stat_. Algunas son estadísticas dinámicas, mientras que otras son recolectadas.

Es posible encontrar información acerca de todas las vistas disponibles en el siguiente enlace: PostgreSQL Documentation - The Statistics Collector

La vista pg_stat_activity muestra información sobre todos los procesos en ejecución, incluyendo la consulta SQL en ejecución (columna query):

postgres=# SELECT usename,application_name,state FROM pg_stat_activity;
 usename  |     application_name     | state  
----------+--------------------------+--------
          |                          | 
 postgres |                          | 
 collectd | collectd_postgresql      | idle
 postgres | psql                     | active
 wwwusr   |                          | idle
 wwwusr   |                          | idle
 wwwusr   |                          | idle
 wwwusr   |                          | idle
 wwwusr   |                          | idle
 wwwusr   | app - 127.0.0.1:41794    | idle
 wwwusr   |                          | idle
 wwwusr   |                          | idle
 collectd | collectd_postgresql      | idle
 wwwusr   |                          | idle
 admin    | pgAdmin 4 - DB:www       | idle
 admin    | pgAdmin 4 - CONN:2908722 | idle
 admin    | pgAdmin 4 - CONN:4016342 | idle
 wwwusr   |                          | idle
          |                          | 
          |                          | 
          |                          | 
(21 rows)

La vista pg_stat_ssl muestra información acerca de las conexiones SSL, incluyendo la suite de cifrado utilizada en cada conexión hacia el servidor:

postgres=# SELECT pid,ssl,version,cipher,bits,compression FROM pg_stat_ssl;
  pid  | ssl | version |           cipher            | bits | compression 
-------+-----+---------+-----------------------------+------+-------------
  2752 | f   |         |                             |      | 
  2754 | f   |         |                             |      | 
  2825 | t   | TLSv1.2 | ECDHE-RSA-CHACHA20-POLY1305 |  256 | f
 18072 | f   |         |                             |      | 
 18008 | t   | TLSv1.2 | ECDHE-RSA-CHACHA20-POLY1305 |  256 | f
 18009 | t   | TLSv1.2 | ECDHE-RSA-CHACHA20-POLY1305 |  256 | f
 18118 | t   | TLSv1.2 | ECDHE-RSA-CHACHA20-POLY1305 |  256 | f
 17656 | t   | TLSv1.2 | ECDHE-RSA-CHACHA20-POLY1305 |  256 | f
 17684 | t   | TLSv1.2 | ECDHE-RSA-CHACHA20-POLY1305 |  256 | f
 17700 | t   | TLSv1.2 | ECDHE-RSA-CHACHA20-POLY1305 |  256 | f
 22758 | t   | TLSv1.2 | ECDHE-RSA-CHACHA20-POLY1305 |  256 | f
 17839 | t   | TLSv1.2 | ECDHE-RSA-CHACHA20-POLY1305 |  256 | f
 18076 | t   | TLSv1.2 | ECDHE-RSA-CHACHA20-POLY1305 |  256 | f
 16815 | t   | TLSv1.2 | ECDHE-RSA-AES128-GCM-SHA256 |  128 | f
 18117 | t   | TLSv1.2 | ECDHE-RSA-CHACHA20-POLY1305 |  256 | f
 18119 | t   | TLSv1.2 | ECDHE-RSA-CHACHA20-POLY1305 |  256 | f
  2750 | f   |         |                             |      | 
  2749 | f   |         |                             |      | 
  2751 | f   |         |                             |      | 
(19 rows)

La vista pg_stat_progress_vacuum muestra el progreso de ejecución de cada proceso de VACUUM en ejecución.

La vista pg_stat_database mantiene contadores por base de datos:

postgres=# select datname,tup_returned,tup_fetched,tup_inserted,tup_updated,tup_deleted from pg_stat_database;
  datname  | tup_returned | tup_fetched  | tup_inserted | tup_updated | tup_deleted 
-----------+--------------+--------------+--------------+-------------+-------------
 postgres  |    377932075 |      6391263 |        30284 |       80604 |       26868
 template0 |            0 |            0 |            0 |           0 |           0
 template1 |    373347561 |      6713388 |        30284 |       80601 |       26868
 www       | 986173149846 | 107819649288 |    249617339 |   100518362 |   119985707
(4 rows)

pg_stat_all_tables mantiene información similar para cada tabla de la base de datos actual.

Otras vistas con prefijo pg_statio_ muestran estadísticas sobre índices, secuencias y funciones.

Para más información y detalle de columnas de cada vista, consultar la documentaciñon oficial de PostgreSQL; PostgreSQL Documentation - The Statistics Collector


Tal vez pueda interesarte


Compartí este artículo