diff --git a/sample-config/pgmon-metrics.yml b/sample-config/pgmon-metrics.yml index 8c1045d..4509863 100644 --- a/sample-config/pgmon-metrics.yml +++ b/sample-config/pgmon-metrics.yml @@ -116,6 +116,63 @@ metrics: FROM pg_stat_io GROUP BY backend_type + temp_files: + type: row + query: + 120000: > + SELECT count(*) AS count, + coalesce(sum(size), 0) AS size + FROM pg_ls_tmpdir() + WHERE name LIKE 'pgsql_tmp%%' + 90500: > + SELECT count(*) AS count, + coalesce(sum((pg_stat_file(name)).size), 0) AS size + FROM pg_ls_dir('base/pgsql_tmp/', true, false) AS name + WHERE name LIKE 'pgsql_tmp%%' + 0: > + SELECT count(*) AS count, + coalesce(sum((pg_stat_file(files.name)).size), 0) AS size + FROM ( + SELECT name + FROM pg_ls_dir('base') AS name + WHERE name = 'pgsql_tmp') AS dir + LEFT JOIN ( + SELECT name + FROM pg_ls_dir('base/pgsql_tmp/') AS name + WHERE name LIKE 'pgsql_tmp%%') AS files + ON dir.name IS NOT NULL + + + ready_archive_files: + type: value + query: + 120000: > + SELECT count(*) AS count + FROM pg_ls_archive_statusdir() + WHERE name LIKE '%%.ready' + 100000: > + SELECT count(*) AS count + FROM pg_ls_dir('pg_wal/archive_status/', true, false) AS name + WHERE name LIKE '%%.ready' + 90500: > + SELECT count(*) AS count + FROM pg_ls_dir('pg_xlog/archive_status/', true, false) AS name + WHERE name LIKE '%%.ready' + 0: > + SELECT + CASE WHEN ( + SELECT count(*) + FROM pg_ls_dir('pg_xlog/') AS f + WHERE f = 'archive_status') = 0 + THEN ( + SELECT 0 AS count + ) + ELSE ( + SELECT count(*) AS count + FROM pg_ls_dir('pg_xlog/archive_status/') AS name + WHERE name LIKE '%%.ready') + END + ## # Per-database metrics diff --git a/zabbix_templates/pgmon_templates.yaml b/zabbix_templates/pgmon_templates.yaml index 17dd276..1feacef 100644 --- a/zabbix_templates/pgmon_templates.yaml +++ b/zabbix_templates/pgmon_templates.yaml @@ -282,6 +282,39 @@ zabbix_export: expression: 'last(/PostgreSQL by pgmon/pgmon.release.supported)<>1' name: 'PostgreSQL major release is lo longer supported' priority: INFO + - uuid: d0651ffc203949e3a24b1e1a2beb3dd7 + name: 'Temp file size' + type: DEPENDENT + key: 'pgmon.temp_files[bytes]' + delay: '0' + history: 90d + units: b + description: 'Total size of all temp files' + preprocessing: + - type: JSONPATH + parameters: + - $.size + master_item: + key: 'pgmon[temp_files]' + tags: + - tag: Application + value: PostgreSQL + - uuid: deb355b26c37441189c85ac82465f21e + name: 'Temp file count' + type: DEPENDENT + key: 'pgmon.temp_files[count]' + delay: '0' + history: 90d + description: 'Total number of temp flies' + preprocessing: + - type: JSONPATH + parameters: + - $.count + master_item: + key: 'pgmon[temp_files]' + tags: + - tag: Application + value: PostgreSQL - uuid: 763920af8da84db8a9a2667d9653cb21 name: 'PostgreSQL Agent Version' type: HTTP_AGENT @@ -295,6 +328,17 @@ zabbix_export: tags: - tag: Application value: PostgreSQL + - uuid: a0bd4a987b7643c5a86e160dd9f9afcb + name: 'PostgreSQL Archive ready count' + type: HTTP_AGENT + key: 'pgmon[archive_ready]' + history: 90d + trends: '0' + description: 'Number of WAL files ready and waiting to be archived' + url: 'http://localhost:{$AGENT_PORT}/ready_archive_files' + tags: + - tag: Application + value: PostgreSQL - uuid: 91baea76ebb240b19c5a5d3913d0b989 name: 'PostgreSQL BGWriter Info' type: HTTP_AGENT @@ -369,6 +413,20 @@ zabbix_export: value: PostgreSQL - tag: Type value: Raw + - uuid: bd3026ef3b82419d8a004e2d4684554a + name: 'PostgreSQL Temp Ffle info' + type: HTTP_AGENT + key: 'pgmon[temp_files]' + history: '0' + value_type: TEXT + trends: '0' + description: 'PostgreSQL temp file stats' + url: 'http://localhost:{$AGENT_PORT}/temp_files' + tags: + - tag: Application + value: PostgreSQL + - tag: Type + value: Raw - uuid: ee88f5f4d2384f97946d049af5af4502 name: 'PostgreSQL version' type: HTTP_AGENT