You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2496 lines
98 KiB
2496 lines
98 KiB
1 year ago
|
zabbix_export:
|
||
|
version: '7.0'
|
||
|
template_groups:
|
||
|
- uuid: 748ad4d098d447d492bb935c907f652f
|
||
|
name: Templates/Databases
|
||
|
templates:
|
||
|
- uuid: d0ef7d659a8f4beaaabfc4b6134e737a
|
||
|
template: 'PostgreSQL by Zabbix agent 2'
|
||
|
name: 'PostgreSQL by Zabbix agent 2'
|
||
|
description: |
|
||
|
This template is designed for the deployment of PostgreSQL monitoring by Zabbix via Zabbix agent 2 and uses a loadable plugin to run SQL queries.
|
||
|
|
||
|
Setup:
|
||
|
|
||
|
1. Deploy Zabbix agent 2 with the PostgreSQL plugin. Starting with Zabbix versions 6.0.10 / 6.2.4 / 6.4 PostgreSQL metrics are moved to a loadable plugin and require installation of a separate package or compilation of the plugin from sources (https://www.zabbix.com/documentation/7.0/manual/extensions/plugins/build).
|
||
|
|
||
|
2. Create the PostgreSQL user for monitoring (`<password>` at your discretion) and inherit permissions from the default role `pg_monitor`:
|
||
|
CREATE USER zbx_monitor WITH PASSWORD '<PASSWORD>' INHERIT;
|
||
|
GRANT pg_monitor TO zbx_monitor;
|
||
|
|
||
|
3. Edit the `pg_hba.conf` configuration file to allow connections for the user `zbx_monitor`. You can check the PostgreSQL documentation for examples (https://www.postgresql.org/docs/current/auth-pg-hba-conf.html).
|
||
|
|
||
|
4. Set the connection string for the PostgreSQL instance in the `{$PG.CONNSTRING}` macro as URI, such as `<protocol(host:port)>`, or specify the named session - `<sessionname>`.
|
||
|
|
||
|
Note: if you want to use SSL/TLS encryption to protect communications with the remote PostgreSQL instance, a named session must be used. In that case, the instance URI should be specified in the `Plugins.PostgreSQL.Sessions.*.Uri` parameter in the PostgreSQL plugin configuration files alongside all the encryption parameters (type, cerfiticate/key filepaths if needed etc.).
|
||
|
|
||
|
You can check the PostgreSQL plugin documentation (https://git.zabbix.com/projects/AP/repos/postgresql/browse?at=refs%2Fheads%2Frelease%2F7.0) for details about agent plugin parameters and named sessions.
|
||
|
|
||
|
Also, it is assumed that you set up the PostgreSQL instance to work in the desired encryption mode. Check the PostgreSQL documentation (https://www.postgresql.org/docs/current/ssl-tcp.html) for details.
|
||
|
|
||
|
Note that plugin TLS certificate validation relies on checking the Subject Alternative Names (SAN) instead of the Common Name (CN), check the cryptography package documentation (https://pkg.go.dev/crypto/x509) for details.
|
||
|
|
||
|
For example, to enable required encryption in transport mode without identity checks you could create the file `/etc/zabbix/zabbix_agent2.d/postgresql_myconn.conf` with the following configuration for the named session `myconn` (replace `<instanceip>` with the address of the PostgreSQL instance):
|
||
|
Plugins.PostgreSQL.Sessions.myconn.Uri=tcp://<instanceip>:5432
|
||
|
Plugins.PostgreSQL.Sessions.myconn.TLSConnect=required
|
||
|
|
||
|
Then set the `{$PG.CONNSTRING}` macro to `myconn` to use this named session.
|
||
|
|
||
|
5. Set the password that you specified in step 2 in the macro `{$PG.PASSWORD}`.
|
||
|
|
||
|
You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384190-%C2%A0discussion-thread-for-official-zabbix-template-db-postgresql
|
||
|
|
||
|
Generated by official Zabbix template tool "Templator" 2.0.0
|
||
|
vendor:
|
||
|
name: Zabbix
|
||
|
version: 7.0-0
|
||
|
groups:
|
||
|
- name: Templates/Databases
|
||
|
items:
|
||
|
- uuid: 04b1c83463f247b0a42f17c5d0a9ce14
|
||
|
name: 'Archive: Count of archived files'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.archive.count_archived_files
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Count of archived files.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.archived_count
|
||
|
master_item:
|
||
|
key: 'pgsql.archive["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: archive
|
||
|
- uuid: 729208d50ef64e50b0bb342899e211c2
|
||
|
name: 'Archive: Count of files in archive_status need to archive'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.archive.count_files_to_archive
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Count of files to archive.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.count_files
|
||
|
master_item:
|
||
|
key: 'pgsql.archive["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: archive
|
||
|
- uuid: b60523c62afc4813aeb64cf9598fb7bd
|
||
|
name: 'Archive: Count of failed attempts to archive files'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.archive.failed_trying_to_archive
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Count of failed attempts to archive files.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.failed_count
|
||
|
master_item:
|
||
|
key: 'pgsql.archive["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: archive
|
||
|
- uuid: 285f434f79864d24a4e66d5a49c539e9
|
||
|
name: 'Archive: Size of files need to archive'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.archive.size_files_to_archive
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Size of files to archive.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.size_files
|
||
|
master_item:
|
||
|
key: 'pgsql.archive["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: archive
|
||
|
- uuid: e9f4284fd3a1459e9c519dbdd8ee3425
|
||
|
name: 'PostgreSQL: Get archive'
|
||
|
key: 'pgsql.archive["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
history: '0'
|
||
|
trends: '0'
|
||
|
value_type: TEXT
|
||
|
description: 'Collect archive status metrics.'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: raw
|
||
|
- uuid: d9169b4b31554063b9d01d0d27b4beee
|
||
|
name: 'PostgreSQL: Count of autovacuum workers'
|
||
|
key: 'pgsql.autovacuum.count["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of autovacuum workers.'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: system
|
||
|
- uuid: c49f777ae0db48879bc946989bfc36f6
|
||
|
name: 'Bgwriter: Buffers allocated per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.bgwriter.buffers_alloc.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of buffers allocated per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.buffers_alloc
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.bgwriter["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: bgwriter
|
||
|
- uuid: 1624e89567824e0493492a3dcc979788
|
||
|
name: 'Bgwriter: Buffers written directly by a backend per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.bgwriter.buffers_backend.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of buffers written directly by a backend per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.buffers_backend
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.bgwriter["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: bgwriter
|
||
|
- uuid: 6e5990d8a0854efd83b3e6a57aa2c2f9
|
||
|
name: 'Bgwriter: Times a backend executed its own fsync per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.bgwriter.buffers_backend_fsync.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of times a backend had to execute its own fsync call per second (normally the background writer handles those even when the backend does its own write).'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.buffers_backend_fsync
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.bgwriter["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: bgwriter
|
||
|
- uuid: 3bf0496d313f4dfea67c95010be54372
|
||
|
name: 'Checkpoint: Buffers written during checkpoints per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.bgwriter.buffers_checkpoint.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of buffers written during checkpoints per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.buffers_checkpoint
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.bgwriter["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: bgwriter
|
||
|
- uuid: 65f4aeedbc7d40ed9a14e0dbd8024c4b
|
||
|
name: 'Checkpoint: Buffers written by the background writer per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.bgwriter.buffers_clean.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of buffers written by the background writer per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.buffers_clean
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.bgwriter["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: bgwriter
|
||
|
- uuid: 23fcb5ee8c19436b827001114961eb16
|
||
|
name: 'Checkpoint: Requested per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.bgwriter.checkpoints_req.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of requested checkpoints that have been performed per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.checkpoints_req
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.bgwriter["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: bgwriter
|
||
|
- uuid: 9c578a8e072940728cc00d94f52cec8d
|
||
|
name: 'Checkpoint: Scheduled per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.bgwriter.checkpoints_timed.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of scheduled checkpoints that have been performed per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.checkpoints_timed
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.bgwriter["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: bgwriter
|
||
|
- uuid: b94507037a584b9391f610e59dd34e6c
|
||
|
name: 'Checkpoint: Checkpoint sync time per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.bgwriter.checkpoint_sync_time.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
units: s
|
||
|
description: 'Total amount of time per second that has been spent in the portion of checkpoint processing where files are synchronized to disk.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.checkpoint_sync_time
|
||
|
- type: MULTIPLIER
|
||
|
parameters:
|
||
|
- '0.001'
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.bgwriter["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: bgwriter
|
||
|
- uuid: 26839587c46043caa2991e973962b954
|
||
|
name: 'Checkpoint: Checkpoint write time per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.bgwriter.checkpoint_write_time.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
units: s
|
||
|
description: 'Total amount of time per second that has been spent in the portion of checkpoint processing where files are written to disk.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.checkpoint_write_time
|
||
|
- type: MULTIPLIER
|
||
|
parameters:
|
||
|
- '0.001'
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.bgwriter["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: bgwriter
|
||
|
- uuid: b83939ecfb094a7e9eb42cd9a7e2695c
|
||
|
name: 'Bgwriter: Number of bgwriter cleaning scan stopped per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.bgwriter.maxwritten_clean.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of times the background writer stopped a cleaning scan because it had written too many buffers per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.maxwritten_clean
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.bgwriter["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: bgwriter
|
||
|
- uuid: 6020e17c25104cbfba182e9cddfe6336
|
||
|
name: 'PostgreSQL: Get bgwriter'
|
||
|
key: 'pgsql.bgwriter["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
history: '0'
|
||
|
trends: '0'
|
||
|
value_type: TEXT
|
||
|
description: |
|
||
|
Collect all metrics from pg_stat_bgwriter:
|
||
|
https://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-BGWRITER-VIEW
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: raw
|
||
|
- uuid: b98d2328694f44598f2177b3f93d4b90
|
||
|
name: 'PostgreSQL: Cache hit ratio, %'
|
||
|
type: CALCULATED
|
||
|
key: pgsql.cache.hit
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
units: '%'
|
||
|
params: 'last(//pgsql.dbstat.sum.blks_hit.rate) * 100 / (last(//pgsql.dbstat.sum.blks_hit.rate) + last(//pgsql.dbstat.sum.blks_read.rate))'
|
||
|
description: 'Cache hit ratio.'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: cache
|
||
|
- uuid: 2ea55460f0d34063ae4ab65b74ec852c
|
||
|
name: 'Connections sum: Active'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.connections.sum.active
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Total number of connections executing a query.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.active
|
||
|
master_item:
|
||
|
key: 'pgsql.connections["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: connections
|
||
|
- uuid: 69f14028e98b48d489fbd7345c2213dd
|
||
|
name: 'Connections sum: Disabled'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.connections.sum.disabled
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Total number of disabled connections.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.disabled
|
||
|
master_item:
|
||
|
key: 'pgsql.connections["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: connections
|
||
|
- uuid: 62a2401041724b4888bf058035dc6a0c
|
||
|
name: 'Connections sum: Fastpath function call'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.connections.sum.fastpath_function_call
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Total number of connections executing a fast-path function.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.fastpath_function_call
|
||
|
master_item:
|
||
|
key: 'pgsql.connections["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: connections
|
||
|
- uuid: fc3b357cc8a24c4aad60784d1bfb7e18
|
||
|
name: 'Connections sum: Idle'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.connections.sum.idle
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Total number of connections waiting for a new client command.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.idle
|
||
|
master_item:
|
||
|
key: 'pgsql.connections["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: connections
|
||
|
- uuid: b900a8123dfa48e0ac8fd4b92ae8678d
|
||
|
name: 'Connections sum: Idle in transaction'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.connections.sum.idle_in_transaction
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Total number of connections in a transaction state but not executing a query.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.idle_in_transaction
|
||
|
master_item:
|
||
|
key: 'pgsql.connections["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: connections
|
||
|
- uuid: 99b0a3e14af44924b0319a0a9f6c16c7
|
||
|
name: 'Connections sum: Idle in transaction (aborted)'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.connections.sum.idle_in_transaction_aborted
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Total number of connections in a transaction state but not executing a query, and where one of the statements in the transaction caused an error.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.idle_in_transaction_aborted
|
||
|
master_item:
|
||
|
key: 'pgsql.connections["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: connections
|
||
|
- uuid: 194c41f88e9e44879a70033913dd41d3
|
||
|
name: 'Connections sum: Prepared'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.connections.sum.prepared
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: |
|
||
|
Total number of prepared transactions:
|
||
|
https://www.postgresql.org/docs/current/sql-prepare-transaction.html
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.prepared
|
||
|
master_item:
|
||
|
key: 'pgsql.connections["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: connections
|
||
|
- uuid: 1ec042e5853b430d9d7982c53c3fcf14
|
||
|
name: 'Connections sum: Total'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.connections.sum.total
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Total number of connections.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.total
|
||
|
master_item:
|
||
|
key: 'pgsql.connections["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: connections
|
||
|
- uuid: 101149dd68994084a1cdab82c9d064f0
|
||
|
name: 'Connections sum: Total, %'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.connections.sum.total_pct
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
units: '%'
|
||
|
description: 'Total number of connections, in percentage.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.total_pct
|
||
|
master_item:
|
||
|
key: 'pgsql.connections["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: connections
|
||
|
triggers:
|
||
|
- uuid: 1d0903401af64d93ac16761808d672ca
|
||
|
expression: 'min(/PostgreSQL by Zabbix agent 2/pgsql.connections.sum.total_pct,5m) > {$PG.CONN_TOTAL_PCT.MAX.WARN}'
|
||
|
name: 'PostgreSQL: Total number of connections is too high'
|
||
|
event_name: 'PostgreSQL: Total number of connections is too high (over {$PG.CONN_TOTAL_PCT.MAX.WARN} in 5m)'
|
||
|
priority: AVERAGE
|
||
|
description: 'Total number of current connections exceeds the limit of {$PG.CONN_TOTAL_PCT.MAX.WARN}% out of the maximum number of concurrent connections to the database server (the "max_connections" setting).'
|
||
|
tags:
|
||
|
- tag: scope
|
||
|
value: performance
|
||
|
- uuid: f2c298008b914434b96da85a985e4a54
|
||
|
name: 'Connections sum: Waiting'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.connections.sum.waiting
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: |
|
||
|
Total number of waiting connections:
|
||
|
https://www.postgresql.org/docs/current/monitoring-stats.html#WAIT-EVENT-TABLE
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.waiting
|
||
|
master_item:
|
||
|
key: 'pgsql.connections["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: connections
|
||
|
- uuid: e926ecd967f342bf90e9923825147d64
|
||
|
name: 'PostgreSQL: Get connections sum'
|
||
|
key: 'pgsql.connections["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
history: '0'
|
||
|
trends: '0'
|
||
|
value_type: TEXT
|
||
|
description: |
|
||
|
Collect all metrics from pg_stat_activity:
|
||
|
https://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: raw
|
||
|
- uuid: 1cab825fac8a49ba96dfbf7a696be729
|
||
|
name: 'PostgreSQL: Custom queries'
|
||
|
key: 'pgsql.custom.query["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}",""]'
|
||
|
history: 1h
|
||
|
trends: '0'
|
||
|
status: DISABLED
|
||
|
value_type: TEXT
|
||
|
description: 'Execute custom queries from file *.sql (check for option Plugins.Postgres.CustomQueriesPath at agent configuration).'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: application
|
||
|
- uuid: 5c6de0fe332043bfb35c999b10893e4c
|
||
|
name: 'Dbstat: Hit blocks read per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.blks_hit.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of times per second disk blocks were found already in the buffer cache'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.blks_hit
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: cache
|
||
|
- uuid: 4dc3f2c23dfd4dfebe024a5c2d4409ae
|
||
|
name: 'Dbstat: Disk blocks read per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.blks_read.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of disk blocks read per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.blks_read
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: storage
|
||
|
- uuid: 619211cc2afa4a159f36abf1a17d5476
|
||
|
name: 'Dbstat: Blocks read time'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.blk_read_time
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
units: s
|
||
|
description: 'Time spent reading data file blocks by backends.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.blk_read_time
|
||
|
- type: MULTIPLIER
|
||
|
parameters:
|
||
|
- '0.001'
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: storage
|
||
|
- uuid: fba3b51d644c4c16ac71b3eda1be1701
|
||
|
name: 'Dbstat: Blocks write time'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.blk_write_time
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
units: s
|
||
|
description: 'Time spent writing data file blocks by backends.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.blk_write_time
|
||
|
- type: MULTIPLIER
|
||
|
parameters:
|
||
|
- '0.001'
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: storage
|
||
|
- uuid: 1b98b9c95b32424baa68c354496ed2de
|
||
|
name: 'Dbstat: Checksum failures per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.checksum_failures.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of data page checksum failures per second detected (or on a shared object), or NULL if data checksums are not enabled. This metric is available since PostgreSQL 12.'
|
||
|
valuemap:
|
||
|
name: 'PostgreSQL checksum failure status'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.checksum_failures
|
||
|
- type: MATCHES_REGEX
|
||
|
parameters:
|
||
|
- '^\d*$'
|
||
|
error_handler: CUSTOM_VALUE
|
||
|
error_handler_params: '-2'
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
error_handler: CUSTOM_VALUE
|
||
|
error_handler_params: '-1'
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: system
|
||
|
triggers:
|
||
|
- uuid: 1d67b13f47134a538708c2a14dcfa6b1
|
||
|
expression: 'last(/PostgreSQL by Zabbix agent 2/pgsql.dbstat.sum.checksum_failures.rate)>0'
|
||
|
name: 'Dbstat: Checksum failures detected'
|
||
|
priority: AVERAGE
|
||
|
description: |
|
||
|
Data page checksum failures were detected on that DB instance:
|
||
|
https://www.postgresql.org/docs/current/checksums.html
|
||
|
tags:
|
||
|
- tag: scope
|
||
|
value: availability
|
||
|
- uuid: 0106dfc55ace4dacaff00ce2c98de2ea
|
||
|
name: 'Dbstat: Conflicts per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.conflicts.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of queries canceled per second due to conflicts with recovery (conflicts occur only on standby servers; see pg_stat_database_conflicts for details).'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.conflicts
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- uuid: e5d3838e5cf84be9ae83cacf22dc99af
|
||
|
name: 'Dbstat: Deadlocks per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.deadlocks.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of deadlocks detected per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.deadlocks
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: deadlocks
|
||
|
- uuid: c61f60e6f7d24ffe99db480f6bbd9613
|
||
|
name: 'Dbstat: Backends connected'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.numbackends
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Number of connected backends.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.numbackends
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: backends
|
||
|
- uuid: 96cb6b388b2c480ead1568293dd81e70
|
||
|
name: 'Dbstat: Number temp bytes per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.temp_bytes.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
units: b
|
||
|
description: 'Total amount of data written per second to temporary files by queries.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.temp_bytes
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: storage
|
||
|
- uuid: bea47c8a95074ad3997aff64fcfcf49b
|
||
|
name: 'Dbstat: Number temp files per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.temp_files.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of temporary files created by queries per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.temp_files
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: storage
|
||
|
- uuid: 731f4adac9d34eaaaa1f8d5080fdf6ce
|
||
|
name: 'Dbstat: Rows deleted per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.tup_deleted.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of rows deleted by queries per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.tup_deleted
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- uuid: 4eb6cc273484453bab1233de085363f5
|
||
|
name: 'Dbstat: Rows fetched per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.tup_fetched.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of rows fetched by queries per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.tup_fetched
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- uuid: ae250ffa30c94df187c2010011e794aa
|
||
|
name: 'Dbstat: Rows inserted per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.tup_inserted.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of rows inserted by queries per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.tup_inserted
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- uuid: 3253ed1c96db4a84974e62b85d80bc0f
|
||
|
name: 'Dbstat: Rows returned per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.tup_returned.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of rows returned by queries per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.tup_returned
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- uuid: 13feadafa00a4bd293fcf1a98ddf1f39
|
||
|
name: 'Dbstat: Rows updated per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.tup_updated.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of rows updated by queries per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.tup_updated
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- uuid: bc8a3b29a6684b7f8a70a54b962f0e7e
|
||
|
name: 'Dbstat: Committed transactions per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.xact_commit.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of transactions that have been committed per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.xact_commit
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: transactions
|
||
|
- uuid: 8aedfe3e385b447eb75b85f92301665a
|
||
|
name: 'Dbstat: Roll backed transactions per second'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.dbstat.sum.xact_rollback.rate
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of transactions that have been rolled back per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.xact_rollback
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: transactions
|
||
|
- uuid: ddddde3084d54f55838b970f44290523
|
||
|
name: 'PostgreSQL: Get dbstat sum'
|
||
|
key: 'pgsql.dbstat.sum["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
history: '0'
|
||
|
trends: '0'
|
||
|
value_type: TEXT
|
||
|
description: |
|
||
|
Collect all metrics from pg_stat_database as sums for all databases:
|
||
|
https://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-DATABASE-VIEW
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: raw
|
||
|
- uuid: 3be06ec14cba44d0892f3271a599c473
|
||
|
name: 'PostgreSQL: Get dbstat'
|
||
|
key: 'pgsql.dbstat["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
history: '0'
|
||
|
trends: '0'
|
||
|
value_type: TEXT
|
||
|
description: |
|
||
|
Collect all metrics from pg_stat_database per database:
|
||
|
https://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-DATABASE-VIEW
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: raw
|
||
|
- uuid: 7112eeb300c14d959c79715462bf9563
|
||
|
name: 'PostgreSQL: Get locks'
|
||
|
key: 'pgsql.locks["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
history: '0'
|
||
|
trends: '0'
|
||
|
value_type: TEXT
|
||
|
description: |
|
||
|
Collect all metrics from pg_locks per database:
|
||
|
https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: raw
|
||
|
- uuid: 0377fe6f2f8d4539b649c636ab012415
|
||
|
name: 'PostgreSQL: Age of oldest xid'
|
||
|
key: 'pgsql.oldest.xid["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Age of oldest xid.'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: transactions
|
||
|
triggers:
|
||
|
- uuid: 2a5c11571d9d46f093ed9081f9d51504
|
||
|
expression: 'last(/PostgreSQL by Zabbix agent 2/pgsql.oldest.xid["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]) > 18000000'
|
||
|
name: 'PostgreSQL: Oldest xid is too big'
|
||
|
priority: AVERAGE
|
||
|
tags:
|
||
|
- tag: scope
|
||
|
value: availability
|
||
|
- uuid: 56323e572fa443228987c62039153825
|
||
|
name: 'PostgreSQL: Ping'
|
||
|
key: 'pgsql.ping["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
history: 7d
|
||
|
description: 'Used to test a connection to see if it is alive. It is set to 0 if the query is unsuccessful.'
|
||
|
valuemap:
|
||
|
name: 'Service state'
|
||
|
preprocessing:
|
||
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
||
|
parameters:
|
||
|
- 1h
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: application
|
||
|
- tag: component
|
||
|
value: health
|
||
|
triggers:
|
||
|
- uuid: 48a24a78519d47349200f0b41ceec56a
|
||
|
expression: 'last(/PostgreSQL by Zabbix agent 2/pgsql.ping["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"])=0'
|
||
|
name: 'PostgreSQL: Service is down'
|
||
|
priority: HIGH
|
||
|
description: 'Last test of a connection was unsuccessful.'
|
||
|
tags:
|
||
|
- tag: scope
|
||
|
value: availability
|
||
|
- uuid: 01123126fcd54adc84c3bbfa227d9c0c
|
||
|
name: 'PostgreSQL: Get queries'
|
||
|
key: 'pgsql.queries["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}","{$PG.QUERY_ETIME.MAX.WARN}"]'
|
||
|
history: '0'
|
||
|
trends: '0'
|
||
|
value_type: TEXT
|
||
|
description: 'Collect all metrics by query execution time.'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: raw
|
||
|
- uuid: a171db459d6144e4ad294579fb8dc56d
|
||
|
name: 'PostgreSQL: Replication: Standby count'
|
||
|
key: 'pgsql.replication.count["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
history: 7d
|
||
|
description: 'Number of standby servers.'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: replication
|
||
|
- uuid: da9ce769f9444a3f9600ce64c4ab2857
|
||
|
name: 'PostgreSQL: Replication: Lag in bytes'
|
||
|
key: 'pgsql.replication.lag.b["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
history: 7d
|
||
|
units: B
|
||
|
description: 'Replication lag with master, in bytes.'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: replication
|
||
|
- uuid: 5a9eb8ee4a484911903688e620eb618b
|
||
|
name: 'PostgreSQL: Replication: Lag in seconds'
|
||
|
key: 'pgsql.replication.lag.sec["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
history: 7d
|
||
|
units: s
|
||
|
description: 'Replication lag with master, in seconds.'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: replication
|
||
|
- uuid: 4120befb754d47e9a931f868c28badb9
|
||
|
name: 'PostgreSQL: Get replication'
|
||
|
key: 'pgsql.replication.process["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
history: '0'
|
||
|
trends: '0'
|
||
|
value_type: TEXT
|
||
|
description: 'Collect metrics from the pg_stat_replication, which contains information about the WAL sender process, showing statistics about replication to that sender''s connected standby server.'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: raw
|
||
|
- uuid: 4085b836bf614f3d910818074c386845
|
||
|
name: 'PostgreSQL: Replication: Recovery role'
|
||
|
key: 'pgsql.replication.recovery_role["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
history: 7d
|
||
|
description: 'Replication role: 1 — recovery is still in progress (standby mode), 0 — master mode.'
|
||
|
valuemap:
|
||
|
name: 'PostgreSQL recovery role'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: replication
|
||
|
- uuid: 3c83904cbad74ff7a0d10136a233e6c6
|
||
|
name: 'PostgreSQL: Replication: Status'
|
||
|
key: 'pgsql.replication.status["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
history: 7d
|
||
|
description: 'Replication status: 0 — streaming is down, 1 — streaming is up, 2 — master mode.'
|
||
|
valuemap:
|
||
|
name: 'PostgreSQL replication status'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: replication
|
||
|
- uuid: efa946a67e5844ecb905c68a2a6b85bb
|
||
|
name: 'PostgreSQL: Uptime'
|
||
|
key: 'pgsql.uptime["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
units: s
|
||
|
description: 'Time since the server started.'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: application
|
||
|
triggers:
|
||
|
- uuid: 5fbabc5f60b74a369a13a260d25cce3c
|
||
|
expression: 'last(/PostgreSQL by Zabbix agent 2/pgsql.uptime["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]) < 10m'
|
||
|
name: 'PostgreSQL: Service has been restarted'
|
||
|
event_name: 'PostgreSQL: Service has been restarted (uptime < 10m)'
|
||
|
priority: AVERAGE
|
||
|
description: 'PostgreSQL uptime is less than 10 minutes.'
|
||
|
tags:
|
||
|
- tag: scope
|
||
|
value: notice
|
||
|
- uuid: 6d5aa6213cf248749cbffdea9aff694f
|
||
|
name: 'WAL: Segments count'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.wal.count
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Number of WAL segments.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.count
|
||
|
master_item:
|
||
|
key: 'pgsql.wal.stat["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: wal
|
||
|
- uuid: 0e58a74b8a2d47d28f596196405b22b5
|
||
|
name: 'WAL: Bytes received'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.wal.receive
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
units: B
|
||
|
description: 'WAL receive, in bytes.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.receive
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.wal.stat["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: wal
|
||
|
- uuid: c3d96741af454f6b9a3a49b6117c31be
|
||
|
name: 'PostgreSQL: Get WAL'
|
||
|
key: 'pgsql.wal.stat["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
delay: 5m
|
||
|
history: '0'
|
||
|
trends: '0'
|
||
|
value_type: TEXT
|
||
|
description: 'Collect write-ahead log (WAL) metrics.'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: raw
|
||
|
- uuid: 95f67516be544daf9ad8a1cad2e46114
|
||
|
name: 'WAL: Bytes written'
|
||
|
type: DEPENDENT
|
||
|
key: pgsql.wal.write
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
units: B
|
||
|
description: 'WAL write, in bytes.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.write
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.wal.stat["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: wal
|
||
|
discovery_rules:
|
||
|
- uuid: b1a4bfe1031a40529a7c38ac6bed3c6d
|
||
|
name: 'Database discovery'
|
||
|
key: 'pgsql.db.discovery["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
delay: 1h
|
||
|
filter:
|
||
|
evaltype: AND
|
||
|
conditions:
|
||
|
- macro: '{#DBNAME}'
|
||
|
value: '{$PG.LLD.FILTER.DBNAME}'
|
||
|
formulaid: A
|
||
|
description: |
|
||
|
Discovers databases (DB) in the database management system (DBMS), except:
|
||
|
- templates;
|
||
|
- DBs that do not allow connections.
|
||
|
item_prototypes:
|
||
|
- uuid: 1419ff1331734a4088349332e118ca94
|
||
|
name: 'DB [{#DBNAME}]: Database age'
|
||
|
key: 'pgsql.db.age["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}","{#DBNAME}"]'
|
||
|
delay: 10m
|
||
|
history: 7d
|
||
|
description: 'Database age.'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: application
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 4367ba7fdffd459ea2b18e1877bc74ca
|
||
|
name: 'DB [{#DBNAME}]: Bloating tables'
|
||
|
key: 'pgsql.db.bloating_tables["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}","{#DBNAME}"]'
|
||
|
history: 7d
|
||
|
description: 'Number of bloating tables.'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: tables
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: b614a0909eec40bc841bf7446e842544
|
||
|
name: 'DB [{#DBNAME}]: Database size'
|
||
|
key: 'pgsql.db.size["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}","{#DBNAME}"]'
|
||
|
delay: 5m
|
||
|
history: 7d
|
||
|
units: B
|
||
|
description: 'Database size.'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: storage
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 4b1b1a4374c0429cb1790e774f181512
|
||
|
name: 'DB [{#DBNAME}]: Blocks hit per second'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.blks_hit.rate["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Total number of times per second disk blocks were found already in the buffer cache, so that a read was not necessary.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.blks_hit
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: cache
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 841496e662cc43cf8db7728e96fcba76
|
||
|
name: 'DB [{#DBNAME}]: Disk blocks read per second'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.blks_read.rate["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Total number of disk blocks read per second in this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.blks_read
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: storage
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 0313d02ce8274bc9bcaee54d062300c8
|
||
|
name: 'DB [{#DBNAME}]: Disk blocks read time per second'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.blk_read_time.rate["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
units: s
|
||
|
description: 'Time spent reading data file blocks by backends per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.blk_read_time
|
||
|
- type: MULTIPLIER
|
||
|
parameters:
|
||
|
- '0.001'
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: storage
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: e746a7760d554a0e9d41ba01c3be9db5
|
||
|
name: 'DB [{#DBNAME}]: Disk blocks write time'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.blk_write_time.rate["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
units: s
|
||
|
description: 'Time spent writing data file blocks by backends per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.blk_write_time
|
||
|
- type: MULTIPLIER
|
||
|
parameters:
|
||
|
- '0.001'
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: storage
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: d44335162082498bbc42e29e938a4de7
|
||
|
name: 'DB [{#DBNAME}]: Checksum failures'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.checksum_failures.rate["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of data page checksum failures detected in this database.'
|
||
|
valuemap:
|
||
|
name: 'PostgreSQL checksum failure status'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.checksum_failures
|
||
|
- type: MATCHES_REGEX
|
||
|
parameters:
|
||
|
- '^\d*$'
|
||
|
error_handler: CUSTOM_VALUE
|
||
|
error_handler_params: '-2'
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
error_handler: CUSTOM_VALUE
|
||
|
error_handler_params: '-1'
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: system
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
trigger_prototypes:
|
||
|
- uuid: 5995403b904349d296227647ca318f5b
|
||
|
expression: 'last(/PostgreSQL by Zabbix agent 2/pgsql.dbstat.checksum_failures.rate["{#DBNAME}"])>0'
|
||
|
name: 'DB [{#DBNAME}]: Checksum failures detected'
|
||
|
priority: AVERAGE
|
||
|
description: |
|
||
|
Data page checksum failures were detected on that database:
|
||
|
https://www.postgresql.org/docs/current/checksums.html
|
||
|
tags:
|
||
|
- tag: scope
|
||
|
value: availability
|
||
|
- uuid: 4eb67f16bc2948a7927ed58c9d037466
|
||
|
name: 'DB [{#DBNAME}]: Detected conflicts per second'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.conflicts.rate["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Total number of queries canceled due to conflicts with recovery in this database per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.conflicts
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
trigger_prototypes:
|
||
|
- uuid: 05ac4216e1a941df8880224ffd38b806
|
||
|
expression: 'min(/PostgreSQL by Zabbix agent 2/pgsql.dbstat.conflicts.rate["{#DBNAME}"],5m) > {$PG.CONFLICTS.MAX.WARN:"{#DBNAME}"}'
|
||
|
name: 'DB [{#DBNAME}]: Too many recovery conflicts'
|
||
|
event_name: 'DB [{#DBNAME}]: Too many recovery conflicts (over {$PG.CONFLICTS.MAX.WARN:"{#DBNAME}"} in 5m)'
|
||
|
priority: AVERAGE
|
||
|
description: |
|
||
|
The primary and standby servers are in many ways loosely connected. Actions on the primary will have an effect on the standby. As a result, there is potential for negative interactions or conflicts between them.
|
||
|
https://www.postgresql.org/docs/current/hot-standby.html#HOT-STANDBY-CONFLICT
|
||
|
tags:
|
||
|
- tag: scope
|
||
|
value: performance
|
||
|
- uuid: d53da0cc702f4fe381e4d13d454ec229
|
||
|
name: 'DB [{#DBNAME}]: Detected deadlocks per second'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.deadlocks.rate["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Total number of detected deadlocks in this database per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.deadlocks
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: deadlocks
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
trigger_prototypes:
|
||
|
- uuid: dd948e3ec19c419e8c9a62ace8d1695f
|
||
|
expression: 'min(/PostgreSQL by Zabbix agent 2/pgsql.dbstat.deadlocks.rate["{#DBNAME}"],5m) > {$PG.DEADLOCKS.MAX.WARN:"{#DBNAME}"}'
|
||
|
name: 'DB [{#DBNAME}]: Deadlock occurred'
|
||
|
event_name: 'DB [{#DBNAME}]: Deadlock occurred (over {$PG.DEADLOCKS.MAX.WARN:"{#DBNAME}"} in 5m)'
|
||
|
priority: HIGH
|
||
|
description: 'Number of deadlocks detected per second exceeds {$PG.DEADLOCKS.MAX.WARN:"{#DBNAME}"} for 5m.'
|
||
|
tags:
|
||
|
- tag: scope
|
||
|
value: availability
|
||
|
- uuid: 7ebf1570bebe4b9cb82474fe5aea0562
|
||
|
name: 'DB [{#DBNAME}]: Get dbstat'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: '0'
|
||
|
trends: '0'
|
||
|
value_type: TEXT
|
||
|
description: 'Get dbstat metrics for database "{#DBNAME}".'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- '$[''{#DBNAME}'']'
|
||
|
error_handler: DISCARD_VALUE
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: raw
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 2e31986867d24bca930d141cc5d9cc0f
|
||
|
name: 'DB [{#DBNAME}]: Backends connected'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.numbackends["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Number of backends currently connected to this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.numbackends
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: backends
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 82a2f4b2dc4f4dfe9a0a42144f603a8a
|
||
|
name: 'DB [{#DBNAME}]: Temp_bytes written per second'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.temp_bytes.rate["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
units: B
|
||
|
description: 'Total amount of data written to temporary files by queries in this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.temp_bytes
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: storage
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 480ffc23ca8d41e3ac86bb162007065f
|
||
|
name: 'DB [{#DBNAME}]: Temp_files created per second'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.temp_files.rate["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Total number of temporary files created by queries in this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.temp_files
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: storage
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: cf288751fb894e5291b2d539b4c1a6a1
|
||
|
name: 'DB [{#DBNAME}]: Tuples deleted per second'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.tup_deleted.rate["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Total number of rows deleted by queries in this database per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.tup_deleted
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: a512a7a075244ccb90ab6824125a405e
|
||
|
name: 'DB [{#DBNAME}]: Tuples fetched per second'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.tup_fetched.rate["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Total number of rows fetched by queries in this database per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.tup_fetched
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 2f24c195df5842f1bdf65a11dea3a315
|
||
|
name: 'DB [{#DBNAME}]: Tuples inserted per second'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.tup_inserted.rate["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Total number of rows inserted by queries in this database per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.tup_inserted
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 175c5051ef0c4a31b76270cacbdd7ed5
|
||
|
name: 'DB [{#DBNAME}]: Tuples returned per second'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.tup_returned.rate["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of rows returned by queries in this database per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.tup_returned
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 9888b495d3f04cceb373c341bd4f1941
|
||
|
name: 'DB [{#DBNAME}]: Tuples updated per second'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.tup_updated.rate["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Total number of rows updated by queries in this database per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.tup_updated
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 5b0ecb9c928c49a6a01b5df6aec931dd
|
||
|
name: 'DB [{#DBNAME}]: Commits per second'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.xact_commit.rate["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Number of transactions in this database that have been committed per second.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.xact_commit
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: transactions
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 1d280198e31649fcb053d4c87a0e869d
|
||
|
name: 'DB [{#DBNAME}]: Rollbacks per second'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.dbstat.xact_rollback.rate["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
description: 'Total number of transactions in this database that have been rolled back.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.xact_rollback
|
||
|
- type: CHANGE_PER_SECOND
|
||
|
parameters:
|
||
|
- ''
|
||
|
master_item:
|
||
|
key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: transactions
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 8eb2bd907a0e4385bcac9e0f467f9748
|
||
|
name: 'DB [{#DBNAME}]: Num of accessexclusive locks'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.locks.accessexclusive["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Number of accessexclusive locks for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.accessexclusive
|
||
|
master_item:
|
||
|
key: 'pgsql.locks.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: locks
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 5f783de0d6124fc0ae14522a4ad89189
|
||
|
name: 'DB [{#DBNAME}]: Num of accessshare locks'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.locks.accessshare["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Number of accessshare locks for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.accessshare
|
||
|
master_item:
|
||
|
key: 'pgsql.locks.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: locks
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 3c754430815f411e9aa8dde593f6333a
|
||
|
name: 'DB [{#DBNAME}]: Num of exclusive locks'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.locks.exclusive["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Number of exclusive locks for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.exclusive
|
||
|
master_item:
|
||
|
key: 'pgsql.locks.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: locks
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 2c7759f4c9e442cb80bd54ea3323501b
|
||
|
name: 'DB [{#DBNAME}]: Get locks'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.locks.get_metrics["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: '0'
|
||
|
trends: '0'
|
||
|
value_type: TEXT
|
||
|
description: 'Get locks metrics for database "{#DBNAME}".'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- '$[''{#DBNAME}'']'
|
||
|
error_handler: DISCARD_VALUE
|
||
|
master_item:
|
||
|
key: 'pgsql.locks["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: raw
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: b1ccea7698264d768da1299ec9d13738
|
||
|
name: 'DB [{#DBNAME}]: Num of rowexclusive locks'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.locks.rowexclusive["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Number of rowexclusive locks for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.rowexclusive
|
||
|
master_item:
|
||
|
key: 'pgsql.locks.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: locks
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: b4b1402b99284f3bbf0ac0dff493449f
|
||
|
name: 'DB [{#DBNAME}]: Num of rowshare locks'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.locks.rowshare["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Number of rowshare locks for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- '$[''{#DBNAME}''].rowshare'
|
||
|
error_handler: DISCARD_VALUE
|
||
|
master_item:
|
||
|
key: 'pgsql.locks.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: locks
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 15eb93e90c1241a99aaff834d69cc5be
|
||
|
name: 'DB [{#DBNAME}]: Num of sharerowexclusive locks'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.locks.sharerowexclusive["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Number of total sharerowexclusive for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.sharerowexclusive
|
||
|
master_item:
|
||
|
key: 'pgsql.locks.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: locks
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 04e6cec0423f4dddb09e6643561bdf77
|
||
|
name: 'DB [{#DBNAME}]: Num of shareupdateexclusive locks'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.locks.shareupdateexclusive["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Number of shareupdateexclusive locks for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.shareupdateexclusive
|
||
|
master_item:
|
||
|
key: 'pgsql.locks.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: locks
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 8a410cf1f0be41fbb5a976f368f07430
|
||
|
name: 'DB [{#DBNAME}]: Num of share locks'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.locks.share["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Number of share locks for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.share
|
||
|
master_item:
|
||
|
key: 'pgsql.locks.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: locks
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: a982064d710644db85ebc1cde67bfe4d
|
||
|
name: 'DB [{#DBNAME}]: Num of locks total'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.locks.total["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Total number of locks in this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.total
|
||
|
master_item:
|
||
|
key: 'pgsql.locks.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: locks
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 75e704af5cb545fd9f83bec3f147dd04
|
||
|
name: 'DB [{#DBNAME}]: Get queries'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: '0'
|
||
|
trends: '0'
|
||
|
value_type: TEXT
|
||
|
description: 'Get queries metrics for database "{#DBNAME}".'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- '$[''{#DBNAME}'']'
|
||
|
error_handler: DISCARD_VALUE
|
||
|
master_item:
|
||
|
key: 'pgsql.queries["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}","{$PG.QUERY_ETIME.MAX.WARN}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: raw
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 4c8934820b7f46a195115c7214d4379c
|
||
|
name: 'DB [{#DBNAME}]: Queries slow maintenance count'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.queries.mro.slow_count["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Slow maintenance query count for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.mro_slow_count
|
||
|
master_item:
|
||
|
key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 612c8f83e228406f86e70e8486a51f9b
|
||
|
name: 'DB [{#DBNAME}]: Queries max maintenance time'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.queries.mro.time_max["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
units: s
|
||
|
description: 'Max maintenance query time for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.mro_time_max
|
||
|
master_item:
|
||
|
key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 9cde2701b5814142b064696dc974f45d
|
||
|
name: 'DB [{#DBNAME}]: Queries sum maintenance time'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.queries.mro.time_sum["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
units: s
|
||
|
description: 'Sum maintenance query time for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.mro_time_sum
|
||
|
master_item:
|
||
|
key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 9e1191f80c3a4e9aa0d3aba2b2740fef
|
||
|
name: 'DB [{#DBNAME}]: Queries slow query count'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.queries.query.slow_count["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Slow query count for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.query_slow_count
|
||
|
master_item:
|
||
|
key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
trigger_prototypes:
|
||
|
- uuid: 2bb34a2a7dee451cb5419a146d883601
|
||
|
expression: 'min(/PostgreSQL by Zabbix agent 2/pgsql.queries.query.slow_count["{#DBNAME}"],5m)>{$PG.SLOW_QUERIES.MAX.WARN:"{#DBNAME}"}'
|
||
|
name: 'DB [{#DBNAME}]: Too many slow queries'
|
||
|
event_name: 'DB [{#DBNAME}]: Too many slow queries (over {$PG.SLOW_QUERIES.MAX.WARN:"{#DBNAME}"} in 5m)'
|
||
|
priority: WARNING
|
||
|
description: 'The number of detected slow queries exceeds the limit of {$PG.SLOW_QUERIES.MAX.WARN:"{#DBNAME}"}.'
|
||
|
tags:
|
||
|
- tag: scope
|
||
|
value: performance
|
||
|
- uuid: 73712df30d66494998bf11566eba409f
|
||
|
name: 'DB [{#DBNAME}]: Queries max query time'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.queries.query.time_max["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
units: s
|
||
|
description: 'Max query time for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.query_time_max
|
||
|
master_item:
|
||
|
key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: ba95d84bc11b4df4aece8ddb51042339
|
||
|
name: 'DB [{#DBNAME}]: Queries sum query time'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.queries.query.time_sum["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
units: s
|
||
|
description: 'Sum query time for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.query_time_sum
|
||
|
master_item:
|
||
|
key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: d31701d52f5941d5a24241c95db52373
|
||
|
name: 'DB [{#DBNAME}]: Queries slow transaction count'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.queries.tx.slow_count["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
description: 'Slow transaction query count for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.tx_slow_count
|
||
|
master_item:
|
||
|
key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: ecc24b3143254dd4b2fc01c12cefb345
|
||
|
name: 'DB [{#DBNAME}]: Queries max transaction time'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.queries.tx.time_max["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
units: s
|
||
|
description: 'Max transaction query time for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.tx_time_max
|
||
|
master_item:
|
||
|
key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
- uuid: 178926a753614bb58206d82f68280097
|
||
|
name: 'DB [{#DBNAME}]: Queries sum transaction time'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.queries.tx.time_sum["{#DBNAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
units: s
|
||
|
description: 'Sum transaction query time for this database.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.tx_time_sum
|
||
|
master_item:
|
||
|
key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
|
||
|
tags:
|
||
|
- tag: component
|
||
|
value: queries
|
||
|
- tag: database
|
||
|
value: '{#DBNAME}'
|
||
|
graph_prototypes:
|
||
|
- uuid: af6eac83efc94d2a9f4a3501207fb5ce
|
||
|
name: 'DB [{#DBNAME}]: Locks'
|
||
|
graph_items:
|
||
|
- drawtype: GRADIENT_LINE
|
||
|
color: 199C0D
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.locks.total["{#DBNAME}"]'
|
||
|
- sortorder: '1'
|
||
|
color: F63100
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.locks.accessexclusive["{#DBNAME}"]'
|
||
|
- sortorder: '2'
|
||
|
color: 00611C
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.locks.accessshare["{#DBNAME}"]'
|
||
|
- sortorder: '3'
|
||
|
color: F7941D
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.locks.exclusive["{#DBNAME}"]'
|
||
|
- sortorder: '4'
|
||
|
color: FC6EA3
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.locks.rowexclusive["{#DBNAME}"]'
|
||
|
- sortorder: '5'
|
||
|
color: 6C59DC
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.locks.rowshare["{#DBNAME}"]'
|
||
|
- sortorder: '6'
|
||
|
color: C7A72D
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.locks.sharerowexclusive["{#DBNAME}"]'
|
||
|
- sortorder: '7'
|
||
|
color: BA2A5D
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.locks.shareupdateexclusive["{#DBNAME}"]'
|
||
|
- sortorder: '8'
|
||
|
color: F230E0
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.locks.share["{#DBNAME}"]'
|
||
|
- uuid: 9a518b4bf0f04609863bf9dc4c7f1ea2
|
||
|
name: 'DB [{#DBNAME}]: Number of bloating tables'
|
||
|
graph_items:
|
||
|
- drawtype: GRADIENT_LINE
|
||
|
color: 199C0D
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.db.bloating_tables["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}","{#DBNAME}"]'
|
||
|
- uuid: 4d46d39a1d1146c19a57b2b5b8086708
|
||
|
name: 'DB [{#DBNAME}]: pg_stat_database metrics'
|
||
|
graph_items:
|
||
|
- color: 199C0D
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.dbstat.blks_hit.rate["{#DBNAME}"]'
|
||
|
- sortorder: '1'
|
||
|
color: F63100
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.dbstat.blks_read.rate["{#DBNAME}"]'
|
||
|
- sortorder: '2'
|
||
|
color: 00611C
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.dbstat.conflicts.rate["{#DBNAME}"]'
|
||
|
- sortorder: '3'
|
||
|
color: F7941D
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.dbstat.deadlocks.rate["{#DBNAME}"]'
|
||
|
- sortorder: '4'
|
||
|
color: FC6EA3
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.dbstat.temp_bytes.rate["{#DBNAME}"]'
|
||
|
- sortorder: '5'
|
||
|
color: 6C59DC
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.dbstat.temp_files.rate["{#DBNAME}"]'
|
||
|
- sortorder: '6'
|
||
|
color: C7A72D
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.dbstat.tup_deleted.rate["{#DBNAME}"]'
|
||
|
- sortorder: '7'
|
||
|
color: BA2A5D
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.dbstat.tup_fetched.rate["{#DBNAME}"]'
|
||
|
- sortorder: '8'
|
||
|
color: F230E0
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.dbstat.tup_inserted.rate["{#DBNAME}"]'
|
||
|
- sortorder: '9'
|
||
|
color: 5CCD18
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.dbstat.tup_returned.rate["{#DBNAME}"]'
|
||
|
- sortorder: '10'
|
||
|
color: BB2A02
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.dbstat.tup_updated.rate["{#DBNAME}"]'
|
||
|
- sortorder: '11'
|
||
|
color: AC41A5
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.dbstat.xact_commit.rate["{#DBNAME}"]'
|
||
|
- sortorder: '12'
|
||
|
color: 89ABF8
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.dbstat.xact_rollback.rate["{#DBNAME}"]'
|
||
|
- uuid: 98f4c88e15b742fb80e1ecd8aeab970d
|
||
|
name: 'DB [{#DBNAME}]: Queries'
|
||
|
ymin_type_1: FIXED
|
||
|
graph_items:
|
||
|
- color: 199C0D
|
||
|
yaxisside: RIGHT
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.queries.mro.time_max["{#DBNAME}"]'
|
||
|
- sortorder: '1'
|
||
|
color: F63100
|
||
|
yaxisside: RIGHT
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.queries.query.time_max["{#DBNAME}"]'
|
||
|
- sortorder: '2'
|
||
|
color: 00611C
|
||
|
yaxisside: RIGHT
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.queries.tx.time_max["{#DBNAME}"]'
|
||
|
- sortorder: '3'
|
||
|
drawtype: GRADIENT_LINE
|
||
|
color: F7941D
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.queries.mro.time_sum["{#DBNAME}"]'
|
||
|
- sortorder: '4'
|
||
|
drawtype: GRADIENT_LINE
|
||
|
color: FC6EA3
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.queries.query.time_sum["{#DBNAME}"]'
|
||
|
- sortorder: '5'
|
||
|
drawtype: GRADIENT_LINE
|
||
|
color: 6C59DC
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.queries.tx.time_sum["{#DBNAME}"]'
|
||
|
- uuid: 86853d8590344bad84aab1deb3d1cffc
|
||
|
name: 'DB [{#DBNAME}]: Size'
|
||
|
graph_items:
|
||
|
- drawtype: GRADIENT_LINE
|
||
|
color: 199C0D
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.db.size["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}","{#DBNAME}"]'
|
||
|
- uuid: 918a6fd8bd0e49c98f759778f44ab606
|
||
|
name: 'DB [{#DBNAME}]: Slow queries'
|
||
|
ymin_type_1: FIXED
|
||
|
graph_items:
|
||
|
- color: 199C0D
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.queries.mro.slow_count["{#DBNAME}"]'
|
||
|
- sortorder: '1'
|
||
|
color: F63100
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.queries.query.slow_count["{#DBNAME}"]'
|
||
|
- sortorder: '2'
|
||
|
color: 00611C
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.queries.tx.slow_count["{#DBNAME}"]'
|
||
|
- uuid: e94f9017c06644a2bbcb48697381556d
|
||
|
name: 'Replication discovery'
|
||
|
key: 'pgsql.replication.process.discovery["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
delay: 15m
|
||
|
filter:
|
||
|
evaltype: AND
|
||
|
conditions:
|
||
|
- macro: '{#APPLICATION_NAME}'
|
||
|
value: '{$PG.LLD.FILTER.APPLICATION}'
|
||
|
formulaid: A
|
||
|
description: 'Discovers replication lag metrics.'
|
||
|
item_prototypes:
|
||
|
- uuid: a77e5e6702ff41af9defe102cbeeea74
|
||
|
name: 'Application [{#APPLICATION_NAME}]: Get replication'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.replication.get_metrics["{#APPLICATION_NAME}"]'
|
||
|
delay: '0'
|
||
|
history: '0'
|
||
|
trends: '0'
|
||
|
value_type: TEXT
|
||
|
description: 'Collect metrics from the "pg_stat_replication" about the application "{#APPLICATION_NAME}" that is connected to this WAL sender, which contains information about the WAL sender process, showing statistics about replication to that sender''s connected standby server.'
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- '$[''{#APPLICATION_NAME}'']'
|
||
|
error_handler: DISCARD_VALUE
|
||
|
master_item:
|
||
|
key: 'pgsql.replication.process["{$PG.CONNSTRING}","{$PG.USER}","{$PG.PASSWORD}"]'
|
||
|
tags:
|
||
|
- tag: application
|
||
|
value: '{#APPLICATION_NAME}'
|
||
|
- tag: component
|
||
|
value: raw
|
||
|
- uuid: 15b83330044042668e618501160c37e4
|
||
|
name: 'Application [{#APPLICATION_NAME}]: Replication flush lag'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.replication.process.flush_lag["{#APPLICATION_NAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
units: s
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.flush_lag
|
||
|
master_item:
|
||
|
key: 'pgsql.replication.get_metrics["{#APPLICATION_NAME}"]'
|
||
|
tags:
|
||
|
- tag: application
|
||
|
value: '{#APPLICATION_NAME}'
|
||
|
- tag: component
|
||
|
value: replication
|
||
|
- uuid: 0daf6e3c7843488cb3160a2bd6b09fbf
|
||
|
name: 'Application [{#APPLICATION_NAME}]: Replication replay lag'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.replication.process.replay_lag["{#APPLICATION_NAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
units: s
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.replay_lag
|
||
|
master_item:
|
||
|
key: 'pgsql.replication.get_metrics["{#APPLICATION_NAME}"]'
|
||
|
tags:
|
||
|
- tag: application
|
||
|
value: '{#APPLICATION_NAME}'
|
||
|
- tag: component
|
||
|
value: replication
|
||
|
- uuid: 2d96bc517d3a4c3fbcae8a7f1436bf72
|
||
|
name: 'Application [{#APPLICATION_NAME}]: Replication write lag'
|
||
|
type: DEPENDENT
|
||
|
key: 'pgsql.replication.process.write_lag["{#APPLICATION_NAME}"]'
|
||
|
delay: '0'
|
||
|
history: 7d
|
||
|
value_type: FLOAT
|
||
|
units: s
|
||
|
preprocessing:
|
||
|
- type: JSONPATH
|
||
|
parameters:
|
||
|
- $.write_lag
|
||
|
master_item:
|
||
|
key: 'pgsql.replication.get_metrics["{#APPLICATION_NAME}"]'
|
||
|
tags:
|
||
|
- tag: application
|
||
|
value: '{#APPLICATION_NAME}'
|
||
|
- tag: component
|
||
|
value: replication
|
||
|
graph_prototypes:
|
||
|
- uuid: e79dfe2d436d49da898772a9e7345825
|
||
|
name: 'Application [{#APPLICATION_NAME}]: Replication lag'
|
||
|
graph_items:
|
||
|
- color: 199C0D
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.replication.process.flush_lag["{#APPLICATION_NAME}"]'
|
||
|
- sortorder: '1'
|
||
|
color: F63100
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.replication.process.replay_lag["{#APPLICATION_NAME}"]'
|
||
|
- sortorder: '2'
|
||
|
color: 00611C
|
||
|
item:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
key: 'pgsql.replication.process.write_lag["{#APPLICATION_NAME}"]'
|
||
|
tags:
|
||
|
- tag: class
|
||
|
value: database
|
||
|
- tag: target
|
||
|
value: postgresql
|
||
|
macros:
|
||
|
- macro: '{$PG.CONFLICTS.MAX.WARN}'
|
||
|
value: '0'
|
||
|
description: 'Maximum number of recovery conflicts for trigger expression.'
|
||
|
- macro: '{$PG.CONNSTRING}'
|
||
|
value: 'tcp://localhost:5432'
|
||
|
description: 'URI or named session of the PostgreSQL instance.'
|
||
|
- macro: '{$PG.CONN_TOTAL_PCT.MAX.WARN}'
|
||
|
value: '90'
|
||
|
description: 'Maximum percentage of current connections for trigger expression.'
|
||
|
- macro: '{$PG.DATABASE}'
|
||
|
value: postgres
|
||
|
description: 'Default PostgreSQL database for the connection.'
|
||
|
- macro: '{$PG.DEADLOCKS.MAX.WARN}'
|
||
|
value: '0'
|
||
|
description: 'Maximum number of detected deadlocks for trigger expression.'
|
||
|
- macro: '{$PG.LLD.FILTER.APPLICATION}'
|
||
|
value: .+
|
||
|
description: 'Filter of discoverable applications.'
|
||
|
- macro: '{$PG.LLD.FILTER.DBNAME}'
|
||
|
value: .+
|
||
|
description: 'Filter of discoverable databases.'
|
||
|
- macro: '{$PG.PASSWORD}'
|
||
|
value: '<Put the password here>'
|
||
|
description: 'PostgreSQL user password.'
|
||
|
- macro: '{$PG.QUERY_ETIME.MAX.WARN}'
|
||
|
value: '30'
|
||
|
description: 'Execution time limit for count of slow queries.'
|
||
|
- macro: '{$PG.SLOW_QUERIES.MAX.WARN}'
|
||
|
value: '5'
|
||
|
description: 'Slow queries count threshold for a trigger.'
|
||
|
- macro: '{$PG.USER}'
|
||
|
value: zbx_monitor
|
||
|
description: 'PostgreSQL username.'
|
||
|
dashboards:
|
||
|
- uuid: e3ae726b06cc4663a3eef5a73909f796
|
||
|
name: 'PostgreSQL databases'
|
||
|
pages:
|
||
|
- widgets:
|
||
|
- type: graphprototype
|
||
|
width: '12'
|
||
|
height: '5'
|
||
|
fields:
|
||
|
- type: INTEGER
|
||
|
name: columns
|
||
|
value: '1'
|
||
|
- type: INTEGER
|
||
|
name: rows
|
||
|
value: '1'
|
||
|
- type: GRAPH_PROTOTYPE
|
||
|
name: graphid
|
||
|
value:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
name: 'DB [{#DBNAME}]: pg_stat_database metrics'
|
||
|
- type: graphprototype
|
||
|
x: '12'
|
||
|
width: '12'
|
||
|
height: '5'
|
||
|
fields:
|
||
|
- type: INTEGER
|
||
|
name: columns
|
||
|
value: '1'
|
||
|
- type: INTEGER
|
||
|
name: rows
|
||
|
value: '1'
|
||
|
- type: GRAPH_PROTOTYPE
|
||
|
name: graphid
|
||
|
value:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
name: 'DB [{#DBNAME}]: Locks'
|
||
|
- type: graphprototype
|
||
|
'y': '5'
|
||
|
width: '12'
|
||
|
height: '5'
|
||
|
fields:
|
||
|
- type: INTEGER
|
||
|
name: columns
|
||
|
value: '1'
|
||
|
- type: INTEGER
|
||
|
name: rows
|
||
|
value: '1'
|
||
|
- type: GRAPH_PROTOTYPE
|
||
|
name: graphid
|
||
|
value:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
name: 'DB [{#DBNAME}]: Size'
|
||
|
- type: graphprototype
|
||
|
x: '12'
|
||
|
'y': '5'
|
||
|
width: '12'
|
||
|
height: '5'
|
||
|
fields:
|
||
|
- type: INTEGER
|
||
|
name: columns
|
||
|
value: '1'
|
||
|
- type: INTEGER
|
||
|
name: rows
|
||
|
value: '1'
|
||
|
- type: GRAPH_PROTOTYPE
|
||
|
name: graphid
|
||
|
value:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
name: 'DB [{#DBNAME}]: Number of bloating tables'
|
||
|
- type: graphprototype
|
||
|
'y': '10'
|
||
|
width: '12'
|
||
|
height: '5'
|
||
|
fields:
|
||
|
- type: INTEGER
|
||
|
name: columns
|
||
|
value: '1'
|
||
|
- type: INTEGER
|
||
|
name: rows
|
||
|
value: '1'
|
||
|
- type: GRAPH_PROTOTYPE
|
||
|
name: graphid
|
||
|
value:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
name: 'DB [{#DBNAME}]: Queries'
|
||
|
- type: graphprototype
|
||
|
x: '12'
|
||
|
'y': '10'
|
||
|
width: '12'
|
||
|
height: '5'
|
||
|
fields:
|
||
|
- type: INTEGER
|
||
|
name: columns
|
||
|
value: '1'
|
||
|
- type: INTEGER
|
||
|
name: rows
|
||
|
value: '1'
|
||
|
- type: GRAPH_PROTOTYPE
|
||
|
name: graphid
|
||
|
value:
|
||
|
host: 'PostgreSQL by Zabbix agent 2'
|
||
|
name: 'DB [{#DBNAME}]: Slow queries'
|
||
|
valuemaps:
|
||
|
- uuid: cd2d975b0d7e4f8e89afb1033fce4ce2
|
||
|
name: 'PostgreSQL checksum failure status'
|
||
|
mappings:
|
||
|
- value: '-2'
|
||
|
newvalue: 'null'
|
||
|
- uuid: 9f38c01c325248d4b538c0582432b541
|
||
|
name: 'PostgreSQL recovery role'
|
||
|
mappings:
|
||
|
- value: '0'
|
||
|
newvalue: Master
|
||
|
- value: '1'
|
||
|
newvalue: Standby
|
||
|
- uuid: 0fba38eefa4c4073b46d3f8579fda314
|
||
|
name: 'PostgreSQL replication status'
|
||
|
mappings:
|
||
|
- value: '0'
|
||
|
newvalue: Down
|
||
|
- value: '1'
|
||
|
newvalue: Up
|
||
|
- value: '2'
|
||
|
newvalue: Master
|
||
|
- uuid: 6619a58602a44e83950d3d4b5180c0e9
|
||
|
name: 'Service state'
|
||
|
mappings:
|
||
|
- value: '0'
|
||
|
newvalue: Down
|
||
|
- value: '1'
|
||
|
newvalue: Up
|