pgagroal.conf5
Main configuration file for pgagroal
Overview
pgagroal.conf is the main configuration file for pgagroal.
The file is split into different sections specified by the [ and ] characters. The main section is called [pgagroal].
Other sections specifies the PostgreSQL server configuration.
All properties are in the format key = value.
The characters # and ; can be used for comments; must be the first character on the line. The Bool data type supports the following values: on, 1, true, off, 0 and false.
Options
The options for the main section are
host-
The bind address for pgagroal. Mandatory
port-
The bind port for pgagroal. Mandatory
unix_socket_dir-
The Unix Domain Socket location. Mandatory
metrics-
The metrics port. Default is 0 (disabled)
metrics_cache_max_age-
The number of seconds to keep in cache a Prometheus (metrics) response. If set to zero, the caching will be disabled. Can be a string with a suffix, like
2mto indicate 2 minutes. Default is 0 (disabled)
metrics_cache_max_size-
The maximum amount of data to keep in cache when serving Prometheus responses. Changes require restart. This parameter determines the size of memory allocated for the cache even if
metrics_cache_max_ageormetricsare disabled. Its value, however, is taken into account only ifmetrics_cache_max_ageis set to a non-zero value. Supports suffixes: B (bytes), the default if omitted, K or KB (kilobytes), M or MB (megabytes), G or GB (gigabytes). Default is 256k
management-
The remote management port. Default is 0 (disabled)
log_type-
The logging type (console, file, syslog). Default is console
log_level-
The logging level, any of the (case insensitive) strings FATAL, ERROR, WARN, INFO and DEBUG (that can be more specific as
DEBUG1thruDEBUG5). Debug level greater than 5 will be set toDEBUG5. Not recognized values will make thelog_levelbe INFO. Default is info
log_path-
The log file location. Default is pgagroal.log. Can be a strftime(3) compatible string
log_rotation_age-
The age that will trigger a log file rotation. If expressed as a positive number, is managed as seconds. Supports suffixes: S (seconds, the default), M (minutes), H (hours), D (days), W (weeks). A value of
0disables. Default is 0 (disabled)
log_rotation_size-
The size of the log file that will trigger a log rotation. Supports suffixes: B (bytes), the default if omitted, K or KB (kilobytes), M or MB (megabytes), G or GB (gigabytes). A value of
0(with or without suffix) disables. Default is 0
log_line_prefix-
A strftime(3) compatible string to use as prefix for every log line. Must be quoted if contains spaces. Default is %Y-%m-%d %H:%M:%S
log_mode-
Append to or create the log file (append, create). Default is append
log_connections-
Log connects. Default is off
log_disconnections-
Log disconnects. Default is off
blocking_timeout-
The number of seconds the process will be blocking for a connection (disable = 0). Default is 30
idle_timeout-
The number of seconds a connection is been kept alive (disable = 0). Default is 0
max_connection_age-
The maximum number of seconds that a connection will live (disable = 0). Default is 0
validation-
Should connection validation be performed. Valid options: off, foreground and background. Default is off
background_interval-
The interval between background validation scans in seconds. Default is 300
max_retries-
The maximum number of iterations to obtain a connection. Default is 5
max_connections-
The maximum number of connections (max 1000). Default is 1000
allow_unknown_users-
Allow unknown users to connect. Default is true
authentication_timeout-
The number of seconds the process will wait for valid credentials. Default is 5
pipeline-
The pipeline type. Valid options are auto, performance, session and transaction. Default is auto
auth_query-
Enable authentication query. Default is false
failover-
Enable failover support. Default is false
failover_script-
The failover script
tls-
Enable Transport Layer Security (TLS). Default is false
tls_cert_file-
Certificate file for TLS
tls_key_file-
Private key file for TLS
tls_ca_file-
Certificate Authority (CA) file for TLS
libev-
The libev backend to use. Valid options: auto, select, poll, epoll, iouring, devpoll and port. Default is auto
buffer_size-
The network buffer size (SO_RCVBUF and SO_SNDBUF). Default is 65535
keep_alive-
Have SO_KEEPALIVE on sockets. Default is on
nodelay-
Have TCP_NODELAY on sockets. Default is on
non_blocking-
Have O_NONBLOCK on sockets. Default is off
backlog-
The backlog for listen(). Minimum 16. Default is max_connections / 4
hugepage-
Huge page support. Default is try
tracker-
Track connection lifecycle. Default is off
track_prepared_statements-
Track prepared statements (transaction pooling). Default is off
pidfile-
Path to the PID file. If omitted, automatically set to
unix_socket_dir/pgagroal.port.pid
update_process_title-
The behavior for updating the operating system process title, mainly related to connection processes. Allowed settings are:
never(oroff), does not update the process title;strictto set the process title without overriding the existing initial process title length;minimalto set the process title tousername/database;verbose(orfull) to set the process title touser@host:port/database. Please note thatstrictandminimalare honored only on those systems that do not provide a native way to set the process title (e.g., Linux). On other systems, there is no difference betweenstrictandminimaland the assumed behaviour isminimaleven ifstrictis used.neverandverboseare always honored, on every system. On Linux systems the process title is always trimmed to 255 characters, while on system that provide a natve way to set the process title it can be longer
Danger zone
disconnect_client-
Disconnect clients that have been idle for more than the specified seconds. This setting DOES NOT take long running transactions into account. Default is 0
disconnect_client_force-
Disconnect clients that have been active for more than the specified seconds. This setting DOES NOT take long running transactions into account. Default is off
The options for the PostgreSQL section are
host-
The address of the PostgreSQL instance. Mandatory
port-
The port of the PostgreSQL instance. Mandatory
primary-
Identify the instance as the primary instance (hint)
tls-
Enable Transport Layer Security (TLS) support (Experimental - no pooling). Default is off