PostgreSQL Cluster Connections by members Test

A PostgreSQL cluster ensures high availability and scalability by distributing workloads across multiple nodes. For the cluster to operate efficiently, it is essential that connections are balanced, resources are optimally utilized, and no single node becomes a bottleneck.

This test monitors every node in the PostgreSQL cluster and reports the number of active, idle, waiting, and total connections. It helps detect uneven connection loads, idle connection buildup, or query wait bottlenecks across nodes. If connections are not evenly distributed or idle connections accumulate excessively, it may lead to inefficient resource use, degraded performance, and eventual query queuing or connection failures. Waiting connections may indicate backend contention, long-running queries, or under-provisioned hardware on specific nodes. By continuously monitoring these measures, this test helps administrators detect anomalies such as, overloaded nodes with too many active connections, high wait times indicating bottlenecks, and inefficient resource usage due to idle connections. It enables proactive load balancing and performance tuning, ultimately ensuring better performance, higher availability, and improved stability of the PostgreSQL cluster.

Target of the test : A PostgreSQL Cluster

Agent deploying the test: An external agent

Outputs of the test :One set of results for each node on the target PostgreSQL cluster being monitored.

Configurable parameters for the test
Parameter Description

Test period

How often should the test be executed

Host

The IP address of the host for which this test is to be configured.

Port

The port on which the server is listening. The default port is 5432.

Username

To monitor a PostgreSQL cluster, you must manually create a dedicated database user account on each PostgreSQL instance that you wish to monitor. To know how to create such a user based on where the target PostgreSQL cluster is installed (whether on-premises or hosted on Cloud), refer to How does eG Enterprise Monitor PostgreSQL Server?.

Password

The password associated with the above Username (can be ‘NULL’). Here, ‘NULL’ means that the user does not have any password.

Confirm Password

Confirm the Password (if any) by retyping it here.

DB Name

The name of the target database to connect to. The default is “postgres”.

SSL

This indicates that the eG agent will communicate with the PostgreSQL cluster via HTTPS or not. By default, this flag is set to No, as the target PostGreSQL database is not SSL-enabled by default. If the target cluster is SSL-enabled, then set this flag to Yes.

Verify CA

If the eG agent is required to establish an encrypted connection with the target PostgreSQL cluster by authenticating the server's identity through verifying the server CA certificate, set Verify CA flag to Yes. By default, this flag is set to No.

CA Cert File

This parameter is applicable only if the target PostgreSQL cluster is SSL-enabled.The certificate file is a public-key certificate following the x.509 standard. It contains information about the identity of the server, such as its name, geolocation, and public key. Each nodes of the target cluster can have individual certificate files or a single certificate can be used to access all the nodes in the cluster. Essentially, it’s a certificate that the server serves to the connecting users to prove that they are what they claim to be. Therefore, specify the full path to the server root certificate or certificate file that is signed by the CA in .crt file format for all/each node in the CA Cert File text box. For example, the location of this file may be: C:\app\eGurkha\JRE\lib\security\PostGreQL-test-ca.crt. By default, this parameter is set to none.

This parameter specification differs according to the type of cluster and configuration:

If the certificate file is available for each node of the PostgreSQL Cluster then, provide a comma-separated list of full path to the certificates in CA Cert File text box:

For example:C:\app\eGurkha\JRE\lib\security\postgresql-test-ca.crt,C:\app\eGurkha\JRE\lib\security\postgresql-test-ca2.crt,C:\app\eGurkha\JRE\lib\security\postgresql-test-ca3.crt

Specify the full path to the certificate file of the target PostgreSQL Cluster if a single certificate is used to access all nodes.

For example: C:\app\eGurkha\JRE\lib\security\postgresql-test-ca.crt

Client Cert File

This parameter is applicable only if the target PostgreSQL Cluster is SSL-enabled. In order to collect metrics from the target PostgreSQL Cluster, the eG agent requires client certificate in .p12 format. Hence, specify the full path to the Client certificate file in .p12 format in the Client Cert File text box. For example, the location of this file may be: C:\app\eGurkha\JRE\lib\security\test-client.p12.

Client Key File

A client key file refers to a file containing the private key that corresponds to the public key used by a client. Provide full path of the file containing client key.

Include Available Nodes

In the Include Available Nodes text box, provide a comma-separated list of all the available nodes to be included for monitoring. This way, the test monitor and collect metrics from all the available nodes in the cluster. By default, this parameter is set to none. The format of this configuration is: HOSTNAME:PORT, for example, 172.16.8.136:3306,172.16.8.139:3306

DD Frequency

Refers to the frequency with which detailed diagnosis measures are to be generated for this test. The default is 1:1. This indicates that, by default, detailed measures will be generated every time this test runs, and also every time the test detects a problem. You can modify this frequency, if you so desire. Also, if you intend to disable the detailed diagnosis capability for this test, you can do so by specifying none against DD frequency.

Detailed Diagnosis

To make diagnosis more efficient and accurate, the eG Enterprise embeds an optional detailed diagnostic capability. With this capability, the eG agents can be configured to run detailed, more elaborate tests as and when specific problems are detected. To enable the detailed diagnosis capability of this test for a particular server, choose the On option. To disable the capability, click on the Off option.

The option to selectively enable/disable the detailed diagnosis capability will be available only if the following conditions are fulfilled:

  • The eG manager license should allow the detailed diagnosis capability
  • Both the normal and abnormal frequencies configured for the detailed diagnosis measures should not be 0.
Measurements made by the test

Measurement

Description

Measurement Unit

Interpretation

Active connections

Indicates the number of active connections currently established with this node.

Number

A sudden drop could indicate disconnections or issues with the database service.

The detailed diagnosis of this measure provides the details such as Database id, Database name, Process id, User id, User name, Current query, Waiting status, Last query starts time, Login time, Client address, Client port, Wait event name, and Wait event type.

Idle connections

Indicates the number of connections that are established with the cluster node but are currently idle, not executing any queries.

Number

A high count of idle connections may point to inefficient use of resources, applications may be keeping connections open unnecessarily. This could lead to exhaustion of the available connection pool. Optimizing connection pooling or timeout settings may help mitigate this.

The detailed diagnosis of this measure provides the details such as Database id, Database name, Process id, User id, User name, Current query, Waiting status, Last query starts time, Login time, Client address, Client port, Wait event name, and Wait event type.

Total connections

Indicates the total number of connections currently established with the node, including both active and idle connections.

Number

Monitoring total connections helps assess the overall load on the node.

Waiting connections

Indicates the number of connections currently waiting for query execution on this node.

Number

A high number of waiting connections typically indicates query execution delays due to resource contention (CPU, I/O, locking). This may also reflect long-running queries or inadequate query parallelism. Persistent high values should be investigated to avoid degraded performance and timeouts.

The detailed diagnosis of this measure provides the details such as Database id, Database name, Process id, User id, User name, Current query, Waiting status, Last query starts time, Login time, Client address, Client port, Wait event name, and Wait event type.