Monitor Type: collectd/postgresql
(Source)
Accepts Endpoints: Yes
Multiple Instances Allowed: Yes
This monitor is deprecated in favor of the postgresql monitor.
Monitors a PostgreSQL database server using collectd's PostgreSQL plugin.
You have to specify each database you want to monitor individually under the
databases
key. If you have a common authentication to all databases being
monitored, you can specify that in the top-level username
/password
options, otherwise they can be specified at the database level.
Sample YAML configuration:
monitors:
- type: collectd/postgresql
host: 127.0.0.1
port: 5432
username: "username1"
password: "password1"
databases:
- name: "testdb"
username: "test_user"
password: "test_pwd"
Sample YAML configuration with custom query:
monitors:
- type: collectd/postgresql
host: 127.0.0.1
port: 5432
username: "username1"
password: "password1"
queries:
- name: "exampleQuery"
params:
- "hostname"
statement: "Select * From test Where host = $1;"
results:
- type: "gauge"
valuesFrom:
- "test"
instancePrefix: "test"
databases:
- name: "test"
username: "username2"
password: "password2"
queries:
- "exampleQuery"
metricsToInclude:
- metricNames:
- gauge.test
monitorType: collectd/postgresql
Note that the metric names for the additional metrics picked up from the queries provided depend on the type, instancePrefix and/or instancesFrom parameters being passed in. See PostgreSQL plugin for details.
To activate this monitor in the Smart Agent, add the following to your agent config:
monitors: # All monitor config goes under this key
- type: collectd/postgresql
... # Additional config
For a list of monitor options that are common to all monitors, see Common Configuration.
Config option | Required | Type | Description |
---|---|---|---|
host |
yes | string |
|
port |
yes | integer |
|
databases |
yes | list of objects (see below) |
A list of databases along with optional authentication credentials. |
queries |
no | list of objects (see below) |
PostgreSQL queries and metric mappings |
username |
no | string |
A username that serves as a default for all databases if not overridden |
password |
no | string |
A password that serves as a default for all databases if not overridden |
reportHost |
no | bool |
A SignalFx extension to the plugin that allows us to disable the normal behavior of the PostgreSQL collectd plugin where the host dimension is set to the hostname of the PostgreSQL database server. When false (the recommended and default setting), the globally configured hostname config is used instead. (default: false ) |
The nested databases
config object has the following fields:
Config option | Required | Type | Description |
---|---|---|---|
name |
yes | string |
The name of the database |
username |
no | string |
Username used to access the database |
password |
no | string |
Password used to access the database |
interval |
no | integer |
Interval to query the database in seconds (default: 0 ) |
expireDelay |
no | integer |
Skip expired values in query output (default: 0 ) |
sslMode |
no | string |
Specify whether to use an ssl connection with PostgreSQL. (prefer(default), disable, allow, require) |
krbSrvName |
no | string |
Specify the Kerberos service name used to authenticate with kerberos 5 or GSSAPI |
queries |
no | list of strings |
Queries used to generate metrics. These will override the default set. If no queries are specified, the default set will be used [custom_deadlocks , backends , transactions , queries , queries_by_table , query_plans , table_states , query_plans_by_table , table_states_by_table , disk_io , disk_io_by_table , disk_usage ] |
The nested queries
config object has the following fields:
Config option | Required | Type | Description |
---|---|---|---|
name |
yes | string |
Name used to refer to the query in the database block |
statement |
yes | string |
Statement is a SQL statement to execute |
results |
yes | list of objects (see below) |
Result blocks that define mappings of SQL query results to metrics |
params |
no | list of strings |
Parameters used to fill in $1,$2,$... tokens in the SQL statement. Acceptable values are hostname, database, instance, username, interval |
pluginInstanceFrom |
no | string |
Specifies the column that should be used to populate plugin instance |
minVersion |
no | integer |
The minimum version of PostgreSQL that the query is compatible with. The version must be specified as a two decimal digit. Ex. 7.2.3 -> 70203 (default: 0 ) |
maxVersion |
no | integer |
The maximum version of PostgreSQL that the query is compatible with. The version must be specified as a two decimal digit. Ex. 7.2.3 -> 70203 (default: 0 ) |
The nested results
config object has the following fields:
Config option | Required | Type | Description |
---|---|---|---|
type |
yes | string |
Type defines a metric type |
valuesFrom |
yes | list of strings |
Specifies columns in the SQL result to use as the metric value. The number of columns must match the expected number of values for the metric type. |
instancePrefix |
no | string |
A prefix for the type instance |
instancesFrom |
no | list of strings |
Specifies columns in the SQL result to uses for the type instance. Multiple columns are joined with a hyphen "-". |
These are the metrics available for this monitor. Metrics that are categorized as container/host (default) are in bold and italics in the list below.
pg_blks.heap_hit
(gauge)
Number of buffer hitspg_blks.heap_read
(gauge)
Number of disk blocks readpg_blks.idx_hit
(gauge)
Number of index buffer hitspg_blks.idx_read
(gauge)
Number of index blocks readpg_blks.tidx_hit
(gauge)
Number of TOAST index buffer hitspg_blks.tidx_read
(gauge)
Number of TOAST index blocks readpg_blks.toast_hit
(gauge)
Number of TOAST buffer hitspg_blks.toast_read
(gauge)
Number of disk blocks readpg_db_size
(gauge)
Size of the database on disk, in bytespg_n_tup_c.del
(gauge)
Number of delete operationspg_n_tup_c.hot_upd
(gauge)
Number of update operations not requiring index updatepg_n_tup_c.ins
(gauge)
Number of insert operationspg_n_tup_c.upd
(gauge)
Number of update operationspg_n_tup_g.dead
(gauge)
Number of dead rows in the databasepg_n_tup_g.live
(gauge)
Number of live rows in the databasepg_numbackends
(gauge)
Number of server processespg_scan.idx
(gauge)
Number of index scanspg_scan.idx_tup_fetch
(gauge)
Number of rows read from index scanspg_scan.seq
(gauge)
Number of sequential scanspg_scan.seq_tup_read
(gauge)
Number of rows read from sequential scanspg_xact.commit
(gauge)
Number of commitspg_xact.num_deadlocks
(gauge)
Number of deadlocks detected by the databasepg_xact.rollback
(gauge)
Number of rollbacks
To emit metrics that are not default, you can add those metrics in the
generic monitor-level extraMetrics
config option. Metrics that are derived
from specific configuration options that do not appear in the above list of
metrics do not need to be added to extraMetrics
.
To see a list of metrics that will be emitted you can run agent-status monitors
after configuring this monitor in a running agent instance.