diff --git a/zabbix_templates/pgmon_templates.yaml b/zabbix_templates/pgmon_templates.yaml index 5e55979..b18c6d0 100644 --- a/zabbix_templates/pgmon_templates.yaml +++ b/zabbix_templates/pgmon_templates.yaml @@ -13,58 +13,58 @@ zabbix_export: items: - uuid: 763920af8da84db8a9a2667d9653cb21 name: 'PostgreSQL Agent Version' - key: 'web.page.get[localhost,/agent_version,{$AGENT_PORT}]' + type: HTTP_AGENT + key: 'pgmon[agent_version]' delay: 1h history: 90d value_type: TEXT + trends: '0' description: 'PostgreSQL monitoring agent version number' - preprocessing: - - type: REGEX - parameters: - - '\n\s?\n([\s\S]*)' - - \1 + url: 'http://localhost:{$AGENT_PORT}/agent_version' tags: - tag: Application value: PostgreSQL - uuid: 8706eccb7edc4fa394f552fc31f401a9 name: 'Max Frozen XID Age' - key: 'web.page.get[localhost,/max_frozen_age,{$AGENT_PORT}]' + type: HTTP_AGENT + key: 'pgmon[max_frozen_age]' history: 90d - trends: '0' description: 'Maximum age of any frozen XID in any database' preprocessing: - - type: REGEX - parameters: - - '\n\s?\n([\s\S]*)' - - \1 - type: MATCHES_REGEX parameters: - '^[0-9]+$' + url: 'http://localhost:{$AGENT_PORT}/max_frozen_age' tags: - tag: Application value: PostgreSQL - uuid: ee88f5f4d2384f97946d049af5af4502 name: 'PostgreSQL version' - key: 'web.page.get[localhost,/version,{$AGENT_PORT}]' + type: HTTP_AGENT + key: 'pgmon[version]' delay: 1h history: 90d description: 'PostgreSQL Server version number' preprocessing: - - type: REGEX - parameters: - - '\n\s?\n([\s\S]*)' - - \1 - type: MATCHES_REGEX parameters: - '^[0-9]+$' + url: 'http://localhost:{$AGENT_PORT}/version' tags: - tag: Application value: PostgreSQL discovery_rules: - uuid: 085de335305e435dbb4439bd52e0d35d name: 'Discover Databases' - key: 'web.page.get[localhost,/discover_dbs,{$AGENT_PORT}]' + type: HTTP_AGENT + key: pgmon_discover_dbs delay: 10m + filter: + conditions: + - macro: '{#DBNAME}' + value: ^template0$ + operator: NOT_MATCHES_REGEX + formulaid: A lifetime: 30d enabled_lifetime_type: DISABLE_NEVER item_prototypes: @@ -72,6 +72,7 @@ zabbix_export: name: 'Time spent executing statements on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[active_time,{#DBNAME}]' + delay: '0' history: 90d value_type: FLOAT units: s @@ -84,7 +85,7 @@ zabbix_export: parameters: - '0.001' master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -94,6 +95,7 @@ zabbix_export: name: 'Number of backends on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[backends,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of backends currently connected to this database, or NULL for shared objects. This is the only column in this view that returns a value reflecting current state; all other columns return the accumulated values since the last reset.' preprocessing: @@ -101,7 +103,7 @@ zabbix_export: parameters: - $.numbackends master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -111,6 +113,7 @@ zabbix_export: name: 'Blocks hit on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[blks_hit,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of times disk blocks were found already in the buffer cache, so that a read was not necessary (this only includes hits in the PostgreSQL buffer cache, not the operating system''s file system cache)' preprocessing: @@ -118,7 +121,7 @@ zabbix_export: parameters: - $.blks_hit master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -128,6 +131,7 @@ zabbix_export: name: 'Blocks read on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[blks_read,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of disk blocks read in this database' preprocessing: @@ -135,7 +139,7 @@ zabbix_export: parameters: - $.blks_read master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -145,6 +149,7 @@ zabbix_export: name: 'Time spent reading blocks on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[blk_read_time,{#DBNAME}]' + delay: '0' history: 90d value_type: FLOAT units: s @@ -157,7 +162,7 @@ zabbix_export: parameters: - '0.001' master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -167,6 +172,7 @@ zabbix_export: name: 'Time spent writing blocks on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[blk_write_time,{#DBNAME}]' + delay: '0' history: 90d value_type: FLOAT units: s @@ -179,7 +185,7 @@ zabbix_export: parameters: - '0.001' master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -189,6 +195,7 @@ zabbix_export: name: 'Total number of checksum failures on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[checksum_failures,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of data page checksum failures detected in this database (or on a shared object), or NULL if data checksums are not enabled.' preprocessing: @@ -201,7 +208,7 @@ zabbix_export: error_handler: CUSTOM_VALUE error_handler_params: '0' master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -211,6 +218,7 @@ zabbix_export: name: 'Total number of conflicts on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[conflicts,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of queries canceled due to conflicts with recovery in this database. (Conflicts occur only on standby servers; see pg_stat_database_conflicts for details.)' preprocessing: @@ -218,7 +226,7 @@ zabbix_export: parameters: - $.conflicts master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -228,6 +236,7 @@ zabbix_export: name: 'Total number of deadlocks on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[deadlocks,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of deadlocks detected in this database' preprocessing: @@ -235,7 +244,7 @@ zabbix_export: parameters: - $.deadlocks master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -245,6 +254,7 @@ zabbix_export: name: 'Time spent in idle transactions on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[idle_in_transaction_time,{#DBNAME}]' + delay: '0' history: 90d value_type: FLOAT units: s @@ -257,7 +267,7 @@ zabbix_export: parameters: - '0.001' master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -267,6 +277,7 @@ zabbix_export: name: 'Total number of sessions on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[sessions,{#DBNAME}]' + delay: '0' history: 90d description: 'Total number of sessions established to this database' preprocessing: @@ -274,7 +285,7 @@ zabbix_export: parameters: - $.sessions master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -284,6 +295,7 @@ zabbix_export: name: 'Total number of abandoned sessions on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[sessions_abandoned,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of database sessions to this database that were terminated because connection to the client was lost' preprocessing: @@ -291,7 +303,7 @@ zabbix_export: parameters: - $.sessions_abandoned master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -301,6 +313,7 @@ zabbix_export: name: 'Total number of fatal sessions on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[sessions_fatal,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of database sessions to this database that were terminated by fatal errors' preprocessing: @@ -308,7 +321,7 @@ zabbix_export: parameters: - $.sessions_fatal master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -318,6 +331,7 @@ zabbix_export: name: 'Total number of terminated sessions on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[sessions_killed,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of database sessions to this database that were terminated by operator intervention' preprocessing: @@ -325,7 +339,7 @@ zabbix_export: parameters: - $.sessions_killed master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -335,6 +349,7 @@ zabbix_export: name: 'Total temp file size on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[temp_bytes,{#DBNAME}]' + delay: '0' history: 90d units: b description: 'Total amount of data written to temporary files by queries in this database. All temporary files are counted, regardless of why the temporary file was created, and regardless of the log_temp_files setting.' @@ -343,7 +358,7 @@ zabbix_export: parameters: - $.temp_bytes master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -353,6 +368,7 @@ zabbix_export: name: 'Total number of temp files on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[temp_files,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of temporary files created by queries in this database. All temporary files are counted, regardless of why the temporary file was created (e.g., sorting or hashing), and regardless of the log_temp_files setting.' preprocessing: @@ -360,7 +376,7 @@ zabbix_export: parameters: - $.temp_files master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -370,6 +386,7 @@ zabbix_export: name: 'Tuples deleted on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[tup_deleted,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of rows deleted by queries in this database' preprocessing: @@ -377,7 +394,7 @@ zabbix_export: parameters: - $.tup_deleted master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -387,6 +404,7 @@ zabbix_export: name: 'Tuples fetched by index scans on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[tup_fetched,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of live rows fetched by index scans in this database' preprocessing: @@ -394,7 +412,7 @@ zabbix_export: parameters: - $.tup_fetched master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -404,6 +422,7 @@ zabbix_export: name: 'Tuples inserted on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[tup_inserted,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of rows inserted by queries in this database' preprocessing: @@ -411,7 +430,7 @@ zabbix_export: parameters: - $.tup_inserted master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -421,6 +440,7 @@ zabbix_export: name: 'Tuples returned by sequential scans on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[tup_returned,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of live rows fetched by sequential scans and index entries returned by index scans in this database' preprocessing: @@ -428,7 +448,7 @@ zabbix_export: parameters: - $.tup_returned master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -438,6 +458,7 @@ zabbix_export: name: 'Tuples updated on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[tup_updated,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of rows updated by queries in this database' preprocessing: @@ -445,7 +466,7 @@ zabbix_export: parameters: - $.tup_updated master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -455,6 +476,7 @@ zabbix_export: name: 'Total number of commits on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[xact_commit,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of transactions in this database that have been committed' preprocessing: @@ -462,7 +484,7 @@ zabbix_export: parameters: - $.xact_commit master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -472,6 +494,7 @@ zabbix_export: name: 'Total number of rollbacks on {#DBNAME}' type: DEPENDENT key: 'pgmon_db[xact_rollback,{#DBNAME}]' + delay: '0' history: 90d description: 'Number of transactions in this database that have been rolled back' preprocessing: @@ -479,7 +502,7 @@ zabbix_export: parameters: - $.xact_rollback master_item: - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + key: 'pgmon_db_stats[{#DBNAME}]' tags: - tag: Application value: PostgreSQL @@ -497,6 +520,8 @@ zabbix_export: value: PostgreSQL - tag: Database value: '{#DBNAME}' + - tag: Type + value: Calculated - uuid: a81ba5a7c96d40bca9cc0861da574b49 name: 'Tuples fetched by index scans on {#DBNAME} - 1m delta' type: CALCULATED @@ -508,6 +533,8 @@ zabbix_export: value: PostgreSQL - tag: Database value: '{#DBNAME}' + - tag: Type + value: Calculated - uuid: 3bfa9b7db9394b6d9e0cac6255524f50 name: 'Tuples fetched by index scans on {#DBNAME} - 5m delta' type: CALCULATED @@ -519,6 +546,8 @@ zabbix_export: value: PostgreSQL - tag: Database value: '{#DBNAME}' + - tag: Type + value: Calculated - uuid: 261e83e1e87c42d587a9409a8a26f971 name: 'Tuples returned by sequential scans on {#DBNAME} - 1h delta' type: CALCULATED @@ -531,6 +560,8 @@ zabbix_export: value: PostgreSQL - tag: Database value: '{#DBNAME}' + - tag: Type + value: Calculated - uuid: e46c4ec2a21d48288337b90549fbf757 name: 'Tuples returned by sequential scans on {#DBNAME} - 1m delta' type: CALCULATED @@ -543,6 +574,8 @@ zabbix_export: value: PostgreSQL - tag: Database value: '{#DBNAME}' + - tag: Type + value: Calculated - uuid: 26a42b55d7f949588f0739388ff52831 name: 'Tuples returned by sequential scans on {#DBNAME} - 5m delta' type: CALCULATED @@ -555,24 +588,88 @@ zabbix_export: value: PostgreSQL - tag: Database value: '{#DBNAME}' + - tag: Type + value: Calculated - uuid: 492b3cac15f348c2b85f97b69c114d1b name: 'Database Stats for {#DBNAME}' - key: 'web.page.get[localhost,/db_stats?dbname={#DBNAME},{$AGENT_PORT}]' + type: HTTP_AGENT + key: 'pgmon_db_stats[{#DBNAME}]' history: '0' value_type: TEXT - preprocessing: - - type: REGEX - parameters: - - '\n\s?\n([\s\S]*)' - - \1 + trends: '0' + url: 'http://localhost:{$AGENT_PORT}/db_stats' + query_fields: + - name: dbname + value: '{#DBNAME}' tags: - tag: Application value: PostgreSQL - tag: Database value: '{#DBNAME}' graph_prototypes: + - uuid: 1f7de43b77714f819e61c31273712b70 + name: 'DML Totals for {#DBNAME}' + graph_items: + - color: 199C0D + calc_fnc: ALL + item: + host: 'PostgreSQL by pgmon' + key: 'pgmon_db[tup_deleted,{#DBNAME}]' + - sortorder: '1' + color: F63100 + calc_fnc: ALL + item: + host: 'PostgreSQL by pgmon' + key: 'pgmon_db[tup_inserted,{#DBNAME}]' + - sortorder: '2' + color: 2774A4 + calc_fnc: ALL + item: + host: 'PostgreSQL by pgmon' + key: 'pgmon_db[tup_updated,{#DBNAME}]' + - uuid: aaec1de6f2314cbd875980fc1be3a2db + name: 'Sessions for {#DBNAME}' + graph_items: + - color: 199C0D + calc_fnc: ALL + item: + host: 'PostgreSQL by pgmon' + key: 'pgmon_db[sessions_fatal,{#DBNAME}]' + - sortorder: '1' + color: F63100 + calc_fnc: ALL + item: + host: 'PostgreSQL by pgmon' + key: 'pgmon_db[xact_rollback,{#DBNAME}]' + - sortorder: '2' + color: 2774A4 + calc_fnc: ALL + item: + host: 'PostgreSQL by pgmon' + key: 'pgmon_db[sessions,{#DBNAME}]' + - sortorder: '3' + color: F7941D + calc_fnc: ALL + item: + host: 'PostgreSQL by pgmon' + key: 'pgmon_db[sessions_killed,{#DBNAME}]' + - uuid: a08d60bd0ffb4f90b5411d30a057a85e + name: 'Temp Files for {#DBNAME}' + graph_items: + - color: 199C0D + calc_fnc: ALL + item: + host: 'PostgreSQL by pgmon' + key: 'pgmon_db[temp_files,{#DBNAME}]' + - sortorder: '1' + color: F63100 + yaxisside: RIGHT + calc_fnc: ALL + item: + host: 'PostgreSQL by pgmon' + key: 'pgmon_db[temp_bytes,{#DBNAME}]' - uuid: 4949cdfbda614af796a2856fdfa9ac3f - name: 'Time breakdown for {#DBNAME} on {#CLUSTER}' + name: 'Time breakdown for {#DBNAME}' graph_items: - color: 199C0D calc_fnc: ALL @@ -597,17 +694,14 @@ zabbix_export: item: host: 'PostgreSQL by pgmon' key: 'pgmon_db[blk_write_time,{#DBNAME}]' + url: 'http://localhost:{$AGENT_PORT}/discover_dbs' lld_macro_paths: - lld_macro: '{#DBNAME}' path: $.dbname - preprocessing: - - type: REGEX - parameters: - - '\n\s?\n([\s\S]*)' - - \1 - uuid: 8ec029d577ae4872858e2e5cfd1cc40e name: 'Discover Replication' - key: 'web.page.get[localhost,/discover_rep,{$AGENT_PORT}]' + type: HTTP_AGENT + key: pgmon_discover_rep delay: 10m lifetime: 30d enabled_lifetime_type: DISABLE_NEVER @@ -616,6 +710,7 @@ zabbix_export: name: 'Flush lag for {#REPID}' type: DEPENDENT key: 'pgmon_rep[flush_lag,repid={#REPID}]' + delay: '0' history: 90d value_type: FLOAT description: 'Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written and flushed it (but not yet applied it). This can be used to gauge the delay that synchronous_commit level on incurred while committing if this server was configured as a synchronous standby.' @@ -624,7 +719,7 @@ zabbix_export: parameters: - $.flush_lag master_item: - key: 'web.page.get[localhost,/rep_stats?repid={#REPID},{$AGENT_PORT}]' + key: 'pgmon_rep_stats[{#REPID}]' tags: - tag: Application value: PostgreSQL @@ -636,15 +731,17 @@ zabbix_export: name: 'Last flush LSN for {#REPID}' type: DEPENDENT key: 'pgmon_rep[flush_lsn,repid={#REPID}]' + delay: '0' history: 90d value_type: TEXT + trends: '0' description: 'Last write-ahead log location flushed to disk by this standby server' preprocessing: - type: JSONPATH parameters: - $.flush_lsn master_item: - key: 'web.page.get[localhost,/rep_stats?repid={#REPID},{$AGENT_PORT}]' + key: 'pgmon_rep_stats[{#REPID}]' tags: - tag: Application value: PostgreSQL @@ -656,6 +753,7 @@ zabbix_export: name: 'Replay lag for {#REPID}' type: DEPENDENT key: 'pgmon_rep[replay_lag,repid={#REPID}]' + delay: '0' history: 90d value_type: FLOAT description: 'Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written, flushed and applied it. This can be used to gauge the delay that synchronous_commit level remote_apply incurred while committing if this server was configured as a synchronous standby.' @@ -664,7 +762,7 @@ zabbix_export: parameters: - $.replay_lag master_item: - key: 'web.page.get[localhost,/rep_stats?repid={#REPID},{$AGENT_PORT}]' + key: 'pgmon_rep_stats[{#REPID}]' tags: - tag: Application value: PostgreSQL @@ -676,15 +774,17 @@ zabbix_export: name: 'Last replay LSN for {#REPID}' type: DEPENDENT key: 'pgmon_rep[replay_lsn,repid={#REPID}]' + delay: '0' history: 90d value_type: TEXT + trends: '0' description: 'Last write-ahead log location replayed into the database on this standby server' preprocessing: - type: JSONPATH parameters: - $.replay_lsn master_item: - key: 'web.page.get[localhost,/rep_stats?repid={#REPID},{$AGENT_PORT}]' + key: 'pgmon_rep_stats[{#REPID}]' tags: - tag: Application value: PostgreSQL @@ -696,15 +796,17 @@ zabbix_export: name: 'Last sent LSN for {#REPID}' type: DEPENDENT key: 'pgmon_rep[sent_lsn,repid={#REPID}]' + delay: '0' history: 90d value_type: TEXT + trends: '0' description: 'Last write-ahead log location sent on this connection' preprocessing: - type: JSONPATH parameters: - $.sent_lsn master_item: - key: 'web.page.get[localhost,/rep_stats?repid={#REPID},{$AGENT_PORT}]' + key: 'pgmon_rep_stats[{#REPID}]' tags: - tag: Application value: PostgreSQL @@ -716,8 +818,10 @@ zabbix_export: name: 'Replication state for {#REPID}' type: DEPENDENT key: 'pgmon_rep[state,repid={#REPID}]' + delay: '0' history: 90d value_type: TEXT + trends: '0' description: | Current WAL sender state. Possible values are: * startup: This WAL sender is starting up. @@ -730,7 +834,7 @@ zabbix_export: parameters: - $.state master_item: - key: 'web.page.get[localhost,/rep_stats?repid={#REPID},{$AGENT_PORT}]' + key: 'pgmon_rep_stats[{#REPID}]' tags: - tag: Application value: PostgreSQL @@ -742,6 +846,7 @@ zabbix_export: name: 'Write lag for {#REPID}' type: DEPENDENT key: 'pgmon_rep[write_lag,repid={#REPID}]' + delay: '0' history: 90d value_type: FLOAT description: 'Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written it (but not yet flushed it or applied it). This can be used to gauge the delay that synchronous_commit level remote_write incurred while committing if this server was configured as a synchronous standby.' @@ -750,7 +855,7 @@ zabbix_export: parameters: - $.write_lag master_item: - key: 'web.page.get[localhost,/rep_stats?repid={#REPID},{$AGENT_PORT}]' + key: 'pgmon_rep_stats[{#REPID}]' tags: - tag: Application value: PostgreSQL @@ -762,15 +867,17 @@ zabbix_export: name: 'Last write LSN for {#REPID}' type: DEPENDENT key: 'pgmon_rep[write_lsn,repid={#REPID}]' + delay: '0' history: 90d value_type: TEXT + trends: '0' description: 'Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written it (but not yet flushed it or applied it). This can be used to gauge the delay that synchronous_commit level remote_write incurred while committing if this server was configured as a synchronous standby.' preprocessing: - type: JSONPATH parameters: - $.write_lsn master_item: - key: 'web.page.get[localhost,/rep_stats?repid={#REPID},{$AGENT_PORT}]' + key: 'pgmon_rep_stats[{#REPID}]' tags: - tag: Application value: PostgreSQL @@ -780,14 +887,15 @@ zabbix_export: value: '{#DBNAME}' - uuid: efbe11f37c2f499488bdc5853c3d89e6 name: 'Replication Stats for {#REPID}' - key: 'web.page.get[localhost,/rep_stats?repid={#REPID},{$AGENT_PORT}]' + type: HTTP_AGENT + key: 'pgmon_rep_stats[{#REPID}]' history: '0' value_type: TEXT - preprocessing: - - type: REGEX - parameters: - - '\n\s?\n([\s\S]*)' - - \1 + trends: '0' + url: 'http://localhost:{$AGENT_PORT}/rep_stats' + query_fields: + - name: repid + value: '{#REPID}' tags: - tag: Application value: PostgreSQL @@ -795,6 +903,7 @@ zabbix_export: value: Replication - tag: Database value: '{#DBNAME}' + url: 'http://localhost:{$AGENT_PORT}/discover_rep' lld_macro_paths: - lld_macro: '{#CLIENT_ADDR}' path: $.client_addr @@ -802,12 +911,80 @@ zabbix_export: path: $.repid - lld_macro: '{#STATE}' path: $.state - preprocessing: - - type: REGEX - parameters: - - '\n\s?\n([\s\S]*)' - - \1 macros: - macro: '{$AGENT_PORT}' value: '5400' description: 'The port the agent listens on' + dashboards: + - uuid: a818cfb97d654c75a3d70ae7f942bb89 + name: 'PostgreSQL - Overview' + pages: + - widgets: + - type: graphprototype + name: 'Time Breakdown' + width: '39' + height: '5' + fields: + - type: INTEGER + name: columns + value: '1' + - type: GRAPH_PROTOTYPE + name: graphid.0 + value: + host: 'PostgreSQL by pgmon' + name: 'Time breakdown for {#DBNAME}' + - type: STRING + name: reference + value: ZAWWD + - type: graphprototype + name: 'Session Breakdown' + 'y': '5' + width: '39' + height: '6' + fields: + - type: INTEGER + name: columns + value: '1' + - type: GRAPH_PROTOTYPE + name: graphid.0 + value: + host: 'PostgreSQL by pgmon' + name: 'Sessions for {#DBNAME}' + - type: STRING + name: reference + value: WBVFA + - type: graphprototype + name: 'Temp Files' + x: '39' + width: '33' + height: '5' + fields: + - type: INTEGER + name: columns + value: '1' + - type: GRAPH_PROTOTYPE + name: graphid.0 + value: + host: 'PostgreSQL by pgmon' + name: 'Temp Files for {#DBNAME}' + - type: STRING + name: reference + value: CFQAN + - type: graphprototype + name: 'DML Totals' + x: '39' + 'y': '5' + width: '33' + height: '6' + fields: + - type: INTEGER + name: columns + value: '1' + - type: GRAPH_PROTOTYPE + name: graphid.0 + value: + host: 'PostgreSQL by pgmon' + name: 'DML Totals for {#DBNAME}' + - type: STRING + name: reference + value: XSCMZ