summaryrefslogtreecommitdiffstats
path: root/src/go/collectors/go.d.plugin/modules/postgres/metadata.yaml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/go/collectors/go.d.plugin/modules/postgres/metadata.yaml750
1 files changed, 750 insertions, 0 deletions
diff --git a/src/go/collectors/go.d.plugin/modules/postgres/metadata.yaml b/src/go/collectors/go.d.plugin/modules/postgres/metadata.yaml
new file mode 100644
index 000000000..afaccfddb
--- /dev/null
+++ b/src/go/collectors/go.d.plugin/modules/postgres/metadata.yaml
@@ -0,0 +1,750 @@
+plugin_name: go.d.plugin
+modules:
+ - meta:
+ id: collector-go.d.plugin-postgres
+ plugin_name: go.d.plugin
+ module_name: postgres
+ monitored_instance:
+ name: PostgreSQL
+ link: https://www.postgresql.org/
+ categories:
+ - data-collection.database-servers
+ icon_filename: postgres.svg
+ related_resources:
+ integrations:
+ list:
+ - plugin_name: apps.plugin
+ module_name: apps
+ - plugin_name: cgroups.plugin
+ module_name: cgroups
+ alternative_monitored_instances: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - db
+ - database
+ - postgres
+ - postgresql
+ - sql
+ most_popular: true
+ overview:
+ multi_instance: true
+ data_collection:
+ metrics_description: |
+ This collector monitors the activity and performance of Postgres servers, collects replication statistics, metrics for each database, table and index, and more.
+ method_description: |
+ It establishes a connection to the Postgres instance via a TCP or UNIX socket.
+ To collect metrics for database tables and indexes, it establishes an additional connection for each discovered database.
+ default_behavior:
+ auto_detection:
+ description: |
+ By default, it detects instances running on localhost by trying to connect as root and netdata using known PostgreSQL TCP and UNIX sockets:
+
+ - 127.0.0.1:5432
+ - /var/run/postgresql/
+ limits:
+ description: |
+ Table and index metrics are not collected for databases with more than 50 tables or 250 indexes.
+ These limits can be changed in the configuration file.
+ performance_impact:
+ description: ""
+ additional_permissions:
+ description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ setup:
+ prerequisites:
+ list:
+ - title: Create netdata user
+ description: |
+ Create a user with granted `pg_monitor`
+ or `pg_read_all_stat` [built-in role](https://www.postgresql.org/docs/current/predefined-roles.html).
+
+ To create the `netdata` user with these permissions, execute the following in the psql session, as a user with CREATEROLE privileges:
+
+ ```postgresql
+ CREATE USER netdata;
+ GRANT pg_monitor TO netdata;
+ ```
+
+ After creating the new user, restart the Netdata agent with `sudo systemctl restart netdata`, or
+ the [appropriate method](https://github.com/netdata/netdata/blob/master/docs/configure/start-stop-restart.md) for your
+ system.
+ configuration:
+ file:
+ name: go.d/postgres.conf
+ options:
+ description: |
+ The following options can be defined globally: update_every, autodetection_retry.
+ folding:
+ title: Config options
+ enabled: true
+ list:
+ - name: update_every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: autodetection_retry
+ description: Recheck interval in seconds. Zero means no recheck will be scheduled.
+ default_value: 0
+ required: false
+ - name: dsn
+ description: Postgres server DSN (Data Source Name). See [DSN syntax](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING).
+ default_value: postgres://postgres:postgres@127.0.0.1:5432/postgres
+ required: true
+ - name: timeout
+ description: Query timeout in seconds.
+ default_value: 2
+ required: false
+ - name: collect_databases_matching
+ description: Databases selector. Determines which database metrics will be collected. Syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/go/collectors/go.d.plugin/pkg/matcher#simple-patterns-matcher).
+ default_value: ""
+ required: false
+ - name: max_db_tables
+ description: Maximum number of tables in the database. Table metrics will not be collected for databases that have more tables than max_db_tables. 0 means no limit.
+ default_value: 50
+ required: false
+ - name: max_db_indexes
+ description: Maximum number of indexes in the database. Index metrics will not be collected for databases that have more indexes than max_db_indexes. 0 means no limit.
+ default_value: 250
+ required: false
+ examples:
+ folding:
+ title: Config
+ enabled: true
+ list:
+ - name: TCP socket
+ description: An example configuration.
+ folding:
+ enabled: false
+ config: |
+ jobs:
+ - name: local
+ dsn: 'postgresql://netdata@127.0.0.1:5432/postgres'
+ - name: Unix socket
+ description: An example configuration.
+ config: |
+ jobs:
+ - name: local
+ dsn: 'host=/var/run/postgresql dbname=postgres user=netdata'
+ - name: Multi-instance
+ description: |
+ > **Note**: When you define multiple jobs, their names must be unique.
+
+ Local and remote instances.
+ config: |
+ jobs:
+ - name: local
+ dsn: 'postgresql://netdata@127.0.0.1:5432/postgres'
+
+ - name: remote
+ dsn: 'postgresql://netdata@203.0.113.0:5432/postgres'
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: postgres_total_connection_utilization
+ metric: postgres.connections_utilization
+ info: average total connection utilization over the last minute
+ link: https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf
+ - name: postgres_acquired_locks_utilization
+ metric: postgres.locks_utilization
+ info: average acquired locks utilization over the last minute
+ link: https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf
+ - name: postgres_txid_exhaustion_perc
+ metric: postgres.txid_exhaustion_perc
+ info: percent towards TXID wraparound
+ link: https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf
+ - name: postgres_db_cache_io_ratio
+ metric: postgres.db_cache_io_ratio
+ info: average cache hit ratio in db ${label:database} over the last minute
+ link: https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf
+ - name: postgres_db_transactions_rollback_ratio
+ metric: postgres.db_cache_io_ratio
+ info: average aborted transactions percentage in db ${label:database} over the last five minutes
+ link: https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf
+ - name: postgres_db_deadlocks_rate
+ metric: postgres.db_deadlocks_rate
+ info: number of deadlocks detected in db ${label:database} in the last minute
+ link: https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf
+ - name: postgres_table_cache_io_ratio
+ metric: postgres.table_cache_io_ratio
+ info: average cache hit ratio in db ${label:database} table ${label:table} over the last minute
+ link: https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf
+ - name: postgres_table_index_cache_io_ratio
+ metric: postgres.table_index_cache_io_ratio
+ info: average index cache hit ratio in db ${label:database} table ${label:table} over the last minute
+ link: https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf
+ - name: postgres_table_toast_cache_io_ratio
+ metric: postgres.table_toast_cache_io_ratio
+ info: average TOAST hit ratio in db ${label:database} table ${label:table} over the last minute
+ link: https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf
+ - name: postgres_table_toast_index_cache_io_ratio
+ metric: postgres.table_toast_index_cache_io_ratio
+ info: average index TOAST hit ratio in db ${label:database} table ${label:table} over the last minute
+ link: https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf
+ - name: postgres_table_bloat_size_perc
+ metric: postgres.table_bloat_size_perc
+ info: bloat size percentage in db ${label:database} table ${label:table}
+ link: https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf
+ - name: postgres_table_last_autovacuum_time
+ metric: postgres.table_autovacuum_since_time
+ info: time elapsed since db ${label:database} table ${label:table} was vacuumed by the autovacuum daemon
+ link: https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf
+ - name: postgres_table_last_autoanalyze_time
+ metric: postgres.table_autoanalyze_since_time
+ info: time elapsed since db ${label:database} table ${label:table} was analyzed by the autovacuum daemon
+ link: https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf
+ - name: postgres_index_bloat_size_perc
+ metric: postgres.index_bloat_size_perc
+ info: bloat size percentage in db ${label:database} table ${label:table} index ${label:index}
+ link: https://github.com/netdata/netdata/blob/master/src/health/health.d/postgres.conf
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: These metrics refer to the entire monitored application.
+ labels: []
+ metrics:
+ - name: postgres.connections_utilization
+ description: Connections utilization
+ unit: percentage
+ chart_type: line
+ dimensions:
+ - name: used
+ - name: postgres.connections_usage
+ description: Connections usage
+ unit: connections
+ chart_type: stacked
+ dimensions:
+ - name: available
+ - name: used
+ - name: postgres.connections_state_count
+ description: Connections in each state
+ unit: connections
+ chart_type: stacked
+ dimensions:
+ - name: active
+ - name: idle
+ - name: idle_in_transaction
+ - name: idle_in_transaction_aborted
+ - name: disabled
+ - name: postgres.transactions_duration
+ description: Observed transactions time
+ unit: transactions/s
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per bucket
+ - name: postgres.queries_duration
+ description: Observed active queries time
+ unit: queries/s
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per bucket
+ - name: postgres.locks_utilization
+ description: Acquired locks utilization
+ unit: percentage
+ chart_type: line
+ dimensions:
+ - name: used
+ - name: postgres.checkpoints_rate
+ description: Checkpoints
+ unit: checkpoints/s
+ chart_type: stacked
+ dimensions:
+ - name: scheduled
+ - name: requested
+ - name: postgres.checkpoints_time
+ description: Checkpoint time
+ unit: milliseconds
+ chart_type: stacked
+ dimensions:
+ - name: write
+ - name: sync
+ - name: postgres.bgwriter_halts_rate
+ description: Background writer scan halts
+ unit: events/s
+ chart_type: line
+ dimensions:
+ - name: maxwritten
+ - name: postgres.buffers_io_rate
+ description: Buffers written rate
+ unit: B/s
+ chart_type: area
+ dimensions:
+ - name: checkpoint
+ - name: backend
+ - name: bgwriter
+ - name: postgres.buffers_backend_fsync_rate
+ description: Backend fsync calls
+ unit: calls/s
+ chart_type: line
+ dimensions:
+ - name: fsync
+ - name: postgres.buffers_allocated_rate
+ description: Buffers allocated
+ unit: B/s
+ chart_type: line
+ dimensions:
+ - name: allocated
+ - name: postgres.wal_io_rate
+ description: Write-Ahead Log writes
+ unit: B/s
+ chart_type: line
+ dimensions:
+ - name: write
+ - name: postgres.wal_files_count
+ description: Write-Ahead Log files
+ unit: files
+ chart_type: stacked
+ dimensions:
+ - name: written
+ - name: recycled
+ - name: postgres.wal_archiving_files_count
+ description: Write-Ahead Log archived files
+ unit: files/s
+ chart_type: stacked
+ dimensions:
+ - name: ready
+ - name: done
+ - name: postgres.autovacuum_workers_count
+ description: Autovacuum workers
+ unit: workers
+ chart_type: line
+ dimensions:
+ - name: analyze
+ - name: vacuum_analyze
+ - name: vacuum
+ - name: vacuum_freeze
+ - name: brin_summarize
+ - name: postgres.txid_exhaustion_towards_autovacuum_perc
+ description: Percent towards emergency autovacuum
+ unit: percentage
+ chart_type: line
+ dimensions:
+ - name: emergency_autovacuum
+ - name: postgres.txid_exhaustion_perc
+ description: Percent towards transaction ID wraparound
+ unit: percentage
+ chart_type: line
+ dimensions:
+ - name: txid_exhaustion
+ - name: postgres.txid_exhaustion_oldest_txid_num
+ description: Oldest transaction XID
+ chart_type: line
+ unit: xid
+ dimensions:
+ - name: xid
+ - name: postgres.catalog_relations_count
+ description: Relation count
+ unit: relations
+ chart_type: stacked
+ dimensions:
+ - name: ordinary_table
+ - name: index
+ - name: sequence
+ - name: toast_table
+ - name: view
+ - name: materialized_view
+ - name: composite_type
+ - name: foreign_table
+ - name: partitioned_table
+ - name: partitioned_index
+ - name: postgres.catalog_relations_size
+ description: Relation size
+ unit: B
+ chart_type: stacked
+ dimensions:
+ - name: ordinary_table
+ - name: index
+ - name: sequence
+ - name: toast_table
+ - name: view
+ - name: materialized_view
+ - name: composite_type
+ - name: foreign_table
+ - name: partitioned_table
+ - name: partitioned_index
+ - name: postgres.uptime
+ description: Uptime
+ unit: seconds
+ chart_type: line
+ dimensions:
+ - name: uptime
+ - name: postgres.databases_count
+ description: Number of databases
+ unit: databases
+ chart_type: line
+ dimensions:
+ - name: databases
+ - name: repl application
+ description: These metrics refer to the replication application.
+ labels:
+ - name: application
+ description: application name
+ metrics:
+ - name: postgres.replication_app_wal_lag_size
+ description: Standby application WAL lag size
+ unit: B
+ chart_type: line
+ dimensions:
+ - name: sent_lag
+ - name: write_lag
+ - name: flush_lag
+ - name: replay_lag
+ - name: postgres.replication_app_wal_lag_time
+ description: Standby application WAL lag time
+ unit: seconds
+ chart_type: line
+ dimensions:
+ - name: write_lag
+ - name: flush_lag
+ - name: replay_lag
+ - name: repl slot
+ description: These metrics refer to the replication slot.
+ labels:
+ - name: slot
+ description: replication slot name
+ metrics:
+ - name: postgres.replication_slot_files_count
+ description: Replication slot files
+ unit: files
+ chart_type: line
+ dimensions:
+ - name: wal_keep
+ - name: pg_replslot_files
+ - name: database
+ description: These metrics refer to the database.
+ labels:
+ - name: database
+ description: database name
+ metrics:
+ - name: postgres.db_transactions_ratio
+ description: Database transactions ratio
+ unit: percentage
+ chart_type: line
+ dimensions:
+ - name: committed
+ - name: rollback
+ - name: postgres.db_transactions_rate
+ description: Database transactions
+ unit: transactions/s
+ chart_type: line
+ dimensions:
+ - name: committed
+ - name: rollback
+ - name: postgres.db_connections_utilization
+ description: Database connections utilization
+ unit: percentage
+ chart_type: line
+ dimensions:
+ - name: used
+ - name: postgres.db_connections_count
+ description: Database connections
+ unit: connections
+ chart_type: line
+ dimensions:
+ - name: connections
+ - name: postgres.db_cache_io_ratio
+ description: Database buffer cache miss ratio
+ unit: percentage
+ chart_type: line
+ dimensions:
+ - name: miss
+ - name: postgres.db_io_rate
+ description: Database reads
+ unit: B/s
+ chart_type: line
+ dimensions:
+ - name: memory
+ - name: disk
+ - name: postgres.db_ops_fetched_rows_ratio
+ description: Database rows fetched ratio
+ unit: percentage
+ chart_type: line
+ dimensions:
+ - name: fetched
+ - name: postgres.db_ops_read_rows_rate
+ description: Database rows read
+ unit: rows/s
+ chart_type: line
+ dimensions:
+ - name: returned
+ - name: fetched
+ - name: postgres.db_ops_write_rows_rate
+ description: Database rows written
+ unit: rows/s
+ chart_type: line
+ dimensions:
+ - name: inserted
+ - name: deleted
+ - name: updated
+ - name: postgres.db_conflicts_rate
+ description: Database canceled queries
+ unit: queries/s
+ chart_type: line
+ dimensions:
+ - name: conflicts
+ - name: postgres.db_conflicts_reason_rate
+ description: Database canceled queries by reason
+ unit: queries/s
+ chart_type: line
+ dimensions:
+ - name: tablespace
+ - name: lock
+ - name: snapshot
+ - name: bufferpin
+ - name: deadlock
+ - name: postgres.db_deadlocks_rate
+ description: Database deadlocks
+ unit: deadlocks/s
+ chart_type: line
+ dimensions:
+ - name: deadlocks
+ - name: postgres.db_locks_held_count
+ description: Database locks held
+ unit: locks
+ chart_type: stacked
+ dimensions:
+ - name: access_share
+ - name: row_share
+ - name: row_exclusive
+ - name: share_update
+ - name: share
+ - name: share_row_exclusive
+ - name: exclusive
+ - name: access_exclusive
+ - name: postgres.db_locks_awaited_count
+ description: Database locks awaited
+ unit: locks
+ chart_type: stacked
+ dimensions:
+ - name: access_share
+ - name: row_share
+ - name: row_exclusive
+ - name: share_update
+ - name: share
+ - name: share_row_exclusive
+ - name: exclusive
+ - name: access_exclusive
+ - name: postgres.db_temp_files_created_rate
+ description: Database created temporary files
+ unit: files/s
+ chart_type: line
+ dimensions:
+ - name: created
+ - name: postgres.db_temp_files_io_rate
+ description: Database temporary files data written to disk
+ unit: B/s
+ chart_type: line
+ dimensions:
+ - name: written
+ - name: postgres.db_size
+ description: Database size
+ unit: B
+ chart_type: line
+ dimensions:
+ - name: size
+ - name: table
+ description: These metrics refer to the database table.
+ labels:
+ - name: database
+ description: database name
+ - name: schema
+ description: schema name
+ - name: table
+ description: table name
+ - name: parent_table
+ description: parent table name
+ metrics:
+ - name: postgres.table_rows_dead_ratio
+ description: Table dead rows
+ unit: percentage
+ chart_type: line
+ dimensions:
+ - name: dead
+ - name: postgres.table_rows_count
+ description: Table total rows
+ unit: rows
+ chart_type: line
+ dimensions:
+ - name: live
+ - name: dead
+ - name: postgres.table_ops_rows_rate
+ description: Table throughput
+ unit: rows/s
+ chart_type: line
+ dimensions:
+ - name: inserted
+ - name: deleted
+ - name: updated
+ - name: postgres.table_ops_rows_hot_ratio
+ description: Table HOT updates ratio
+ unit: percentage
+ chart_type: line
+ dimensions:
+ - name: hot
+ - name: postgres.table_ops_rows_hot_rate
+ description: Table HOT updates
+ unit: rows/s
+ chart_type: line
+ dimensions:
+ - name: hot
+ - name: postgres.table_cache_io_ratio
+ description: Table I/O cache miss ratio
+ unit: percentage
+ chart_type: line
+ dimensions:
+ - name: miss
+ - name: postgres.table_io_rate
+ description: Table I/O
+ unit: B/s
+ chart_type: line
+ dimensions:
+ - name: memory
+ - name: disk
+ - name: postgres.table_index_cache_io_ratio
+ description: Table index I/O cache miss ratio
+ unit: percentage
+ chart_type: line
+ dimensions:
+ - name: miss
+ - name: postgres.table_index_io_rate
+ description: Table index I/O
+ unit: B/s
+ chart_type: line
+ dimensions:
+ - name: memory
+ - name: disk
+ - name: postgres.table_toast_cache_io_ratio
+ description: Table TOAST I/O cache miss ratio
+ unit: percentage
+ chart_type: line
+ dimensions:
+ - name: miss
+ - name: postgres.table_toast_io_rate
+ description: Table TOAST I/O
+ unit: B/s
+ chart_type: line
+ dimensions:
+ - name: memory
+ - name: disk
+ - name: postgres.table_toast_index_cache_io_ratio
+ description: Table TOAST index I/O cache miss ratio
+ unit: percentage
+ chart_type: line
+ dimensions:
+ - name: miss
+ - name: postgres.table_toast_index_io_rate
+ description: Table TOAST index I/O
+ unit: B/s
+ chart_type: line
+ dimensions:
+ - name: memory
+ - name: disk
+ - name: postgres.table_scans_rate
+ description: Table scans
+ unit: scans/s
+ chart_type: line
+ dimensions:
+ - name: index
+ - name: sequential
+ - name: postgres.table_scans_rows_rate
+ description: Table live rows fetched by scans
+ unit: rows/s
+ chart_type: line
+ dimensions:
+ - name: index
+ - name: sequential
+ - name: postgres.table_autovacuum_since_time
+ description: Table time since last auto VACUUM
+ unit: seconds
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: postgres.table_vacuum_since_time
+ description: Table time since last manual VACUUM
+ unit: seconds
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: postgres.table_autoanalyze_since_time
+ description: Table time since last auto ANALYZE
+ unit: seconds
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: postgres.table_analyze_since_time
+ description: Table time since last manual ANALYZE
+ unit: seconds
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: postgres.table_null_columns
+ description: Table null columns
+ unit: columns
+ chart_type: line
+ dimensions:
+ - name: "null"
+ - name: postgres.table_size
+ description: Table total size
+ unit: B
+ chart_type: line
+ dimensions:
+ - name: size
+ - name: postgres.table_bloat_size_perc
+ description: Table bloat size percentage
+ unit: percentage
+ chart_type: line
+ dimensions:
+ - name: bloat
+ - name: postgres.table_bloat_size
+ description: Table bloat size
+ unit: B
+ chart_type: line
+ dimensions:
+ - name: bloat
+ - name: index
+ description: These metrics refer to the table index.
+ labels:
+ - name: database
+ description: database name
+ - name: schema
+ description: schema name
+ - name: table
+ description: table name
+ - name: parent_table
+ description: parent table name
+ - name: index
+ description: index name
+ metrics:
+ - name: postgres.index_size
+ description: Index size
+ unit: B
+ chart_type: line
+ dimensions:
+ - name: size
+ - name: postgres.index_bloat_size_perc
+ description: Index bloat size percentage
+ unit: percentage
+ chart_type: line
+ dimensions:
+ - name: bloat
+ - name: postgres.index_bloat_size
+ description: Index bloat size
+ unit: B
+ chart_type: line
+ dimensions:
+ - name: bloat
+ - name: postgres.index_usage_status
+ description: Index usage status
+ unit: status
+ chart_type: line
+ dimensions:
+ - name: used
+ - name: unused