# pmdapostgresql

## NAME



           **pmdapostgresql** - PostgreSQL database PMDA
    


## DESCRIPTION



           **pmdapostgresql** is a Performance Co-Pilot (PCP) Performance Metrics
           Domain Agent (PMDA) which extracts live performance data from a
           running PostgreSQL database server.
    
           Many of the statistics available from a PostgreSQL server may not
           be enabled by default.  Refer to the online documentation
           **https://www.postgresql.org/docs/current/static/monitoring-stats.html **
           which describes each of the available parameters related to
           statistics collection and how to enable them.
    


## CONFIGURATION



           **pmdapostgresql** reads a mandatory ini-style configuration file:
    
                  $PCP_PMDAS_DIR _/postgresql/postgresql.conf_
    
           This file currently contains only one section **[authentication]**
           which specifies values for the following settings (their default
           values are shown in parenthesis):
    
           **host**(_local_)
                  Hostname to connect to.
    
           **port**(_5432_)
                  Port number to use.
    
           **dbname**(_postgres_)
                  Database name.
    
           **username**(_postgres_)
                  Username to run as and to connect to the database.
    
           **password**(_password_)
                  Password to connect to the database.
    
           **osuser**(unset)
                  Operating system user the PMDA runs as.
    
           The defaults (as above) will result in the PMDA running as the
           current user, using a UNIX domain socket connection to the
           PostgreSQL server on the localhost.
    
           If **osuser** is not specified in the configuration file, the PMDA
           will run as the current user.  A host specification of _local_ will
           use a UNIX domain socket, which uses peer authentication, see
           comments in the **pg_hba.conf** file.  In this case, the **osuser**
           setting should probably be set to **postgres**.
    
           It is generally not necessary to alter the default configuration
           file for monitoring the local PostgreSQL server instance with a
           default server configuration.  Note that the port number is
           required even for a UNIX domain connection because it's used as
           the socket filename by the server.
    


## INSTALLATION



           To install, the following must be done as root:
    
               **# cd $PCP_PMDAS_DIR/postgresql**
               **# ./Install**
    
           To uninstall, the following must be done as root:
    
               **# cd $PCP_PMDAS_DIR/postgresql**
               **# ./Remove**
    
           **pmdapostgresql** is launched by pmcd(1) and should never be executed
           directly.  The **Install** and **Remove** scripts notify pmcd(1) when the
           agent is installed or removed.
    
           **pmdapostgresql** will automatically attempt to reconnect to the
           PostgreSQL server if its connection is lost - e.g. if the
           PostgreSQL service is restarted.
    


## SUPPORTED VERSIONS



           This version of **pmdapostgresql** has been tested and verified with
           PostgreSQL server version **10.2** and earlier.  Later versions will
           probably also work correctly because the PMDA probes the various
           performance tables on start-up to determine the column ordering.
           It also tolerates missing or renamed tables and/or columns.
    


## FILES



           $PCP_PMDAS_DIR _/postgresql/pmdapostgresql.conf_
                configuration file for the **pmdapostgresql** agent
    
           $PCP_PMDAS_DIR _/postgresql/Install_
                installation script for the **pmdapostgresql** agent
    
           $PCP_PMDAS_DIR _/postgresql/Remove_
                undo installation script for the **pmdapostgresql** agent
    
           $PCP_LOG_DIR _/pmcd/postgresql.log_
                default log file for messages from the **pmdapostgresql** agent
    
           Note that the usual/default value for **$PCP_PMDAS_DIR** is
           **/var/lib/pcp/pmdas** and the default for **$PCP_LOG_DIR** is
           **/var/log/pcp** but these settings are platform dependent.
    


## PCP ENVIRONMENT



           Environment variables with the prefix **PCP_** are used to
           parameterize the file and directory names used by PCP.  On each
           installation, the file _/etc/pcp.conf_ contains the local values for
           these variables.  The **$PCP_CONF** variable may be used to specify an
           alternative configuration file, as described in pcp.conf(5).
    


* * *