# Pre-defined queries of collectd's postgresql plugin.
#
# Do not edit this file. If you want to change any of the query definitions,
# overwrite them in collectd.conf instead.
#
# This file is distributed under the same terms as collectd itself.

<Query backends>
	Statement "SELECT count(*) AS count \
		FROM pg_stat_activity \
		WHERE datname = $1;"

	Param database

	<Result>
		Type "pg_numbackends"
		ValuesFrom "count"
	</Result>
</Query>

<Query transactions>
	Statement "SELECT xact_commit, xact_rollback \
		FROM pg_stat_database \
		WHERE datname = $1;"

	Param database

	<Result>
		Type "pg_xact"
		InstancePrefix "commit"
		ValuesFrom "xact_commit"
	</Result>
	<Result>
		Type "pg_xact"
		InstancePrefix "rollback"
		ValuesFrom "xact_rollback"
	</Result>
</Query>

<Query queries>
	Statement "SELECT coalesce(sum(n_tup_ins), 0) AS ins, \
			coalesce(sum(n_tup_upd), 0) AS upd, \
			coalesce(sum(n_tup_del), 0) AS del \
		FROM pg_stat_user_tables;"

	<Result>
		Type "pg_n_tup_c"
		InstancePrefix "ins"
		ValuesFrom "ins"
	</Result>
	<Result>
		Type "pg_n_tup_c"
		InstancePrefix "upd"
		ValuesFrom "upd"
	</Result>
	<Result>
		Type "pg_n_tup_c"
		InstancePrefix "del"
		ValuesFrom "del"
	</Result>

	MaxVersion 80299
</Query>

<Query queries>
	Statement "SELECT coalesce(sum(n_tup_ins), 0) AS ins, \
			coalesce(sum(n_tup_upd), 0) AS upd, \
			coalesce(sum(n_tup_del), 0) AS del, \
			coalesce(sum(n_tup_hot_upd), 0) AS hot_upd \
		FROM pg_stat_user_tables;"

	<Result>
		Type "pg_n_tup_c"
		InstancePrefix "ins"
		ValuesFrom "ins"
	</Result>
	<Result>
		Type "pg_n_tup_c"
		InstancePrefix "upd"
		ValuesFrom "upd"
	</Result>
	<Result>
		Type "pg_n_tup_c"
		InstancePrefix "del"
		ValuesFrom "del"
	</Result>
	<Result>
		Type "pg_n_tup_c"
		InstancePrefix "hot_upd"
		ValuesFrom "hot_upd"
	</Result>

	MinVersion 80300
</Query>

<Query queries_by_table>
	Statement "SELECT schemaname, relname, \
			n_tup_ins AS ins, \
			n_tup_upd AS upd, \
			n_tup_del AS del \
		FROM pg_stat_user_tables;"

	<Result>
		Type "pg_n_tup_c"
		InstancePrefix "ins"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "ins"
	</Result>
	<Result>
		Type "pg_n_tup_c"
		InstancePrefix "upd"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "upd"
	</Result>
	<Result>
		Type "pg_n_tup_c"
		InstancePrefix "del"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "del"
	</Result>

	MaxVersion 80299
</Query>

<Query queries_by_table>
	Statement "SELECT schemaname, relname, \
			n_tup_ins AS ins, \
			n_tup_upd AS upd, \
			n_tup_del AS del, \
			n_tup_hot_upd AS hot_upd \
		FROM pg_stat_user_tables;"

	<Result>
		Type "pg_n_tup_c"
		InstancePrefix "ins"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "ins"
	</Result>
	<Result>
		Type "pg_n_tup_c"
		InstancePrefix "upd"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "upd"
	</Result>
	<Result>
		Type "pg_n_tup_c"
		InstancePrefix "del"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "del"
	</Result>
	<Result>
		Type "pg_n_tup_c"
		InstancePrefix "hot_upd"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "hot_upd"
	</Result>

	MinVersion 80300
</Query>

<Query query_plans>
	Statement "SELECT coalesce(sum(seq_scan), 0) AS seq, \
			  coalesce(sum(seq_tup_read), 0) AS seq_tup_read, \
			  coalesce(sum(idx_scan), 0) AS idx, \
			  coalesce(sum(idx_tup_fetch), 0) AS idx_tup_fetch \
		FROM pg_stat_user_tables;"

	<Result>
		Type "pg_scan"
		InstancePrefix "seq"
		ValuesFrom "seq"
	</Result>
	<Result>
		Type "pg_scan"
		InstancePrefix "seq_tup_read"
		ValuesFrom "seq_tup_read"
	</Result>
	<Result>
		Type "pg_scan"
		InstancePrefix "idx"
		ValuesFrom "idx"
	</Result>
	<Result>
		Type "pg_scan"
		InstancePrefix "idx_tup_fetch"
		ValuesFrom "idx_tup_fetch"
	</Result>
</Query>

<Query table_states>
	Statement "SELECT coalesce(sum(n_live_tup), 0) AS live, \
		coalesce(sum(n_dead_tup), 0) AS dead \
		FROM pg_stat_user_tables;"

	<Result>
		Type "pg_n_tup_g"
		InstancePrefix "live"
		ValuesFrom "live"
	</Result>
	<Result>
		Type "pg_n_tup_g"
		InstancePrefix "dead"
		ValuesFrom "dead"
	</Result>

	MinVersion 80300
</Query>

<Query query_plans_by_table>
	Statement "SELECT schemaname, relname, \
			coalesce(seq_scan, 0) AS seq, \
			coalesce(seq_tup_read, 0) AS seq_tup_read, \
			coalesce(idx_scan, 0) AS idx, \
			coalesce(idx_tup_fetch, 0) AS idx_tup_fetch \
		FROM pg_stat_user_tables;"

	<Result>
		Type "pg_scan"
		InstancePrefix "seq"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "seq"
	</Result>
	<Result>
		Type "pg_scan"
		InstancePrefix "seq_tup_read"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "seq_tup_read"
	</Result>
	<Result>
		Type "pg_scan"
		InstancePrefix "idx"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "idx"
	</Result>
	<Result>
		Type "pg_scan"
		InstancePrefix "idx_tup_fetch"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "idx_tup_fetch"
	</Result>
</Query>

<Query table_states_by_table>
	Statement "SELECT schemaname, relname, \
			n_live_tup AS live, n_dead_tup AS dead \
		FROM pg_stat_user_tables;"

	<Result>
		Type "pg_n_tup_g"
		InstancePrefix "live"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "live"
	</Result>
	<Result>
		Type "pg_n_tup_g"
		InstancePrefix "dead"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "dead"
	</Result>

	MinVersion 80300
</Query>

<Query disk_io>
	Statement "SELECT coalesce(sum(heap_blks_read), 0) AS heap_read, \
			coalesce(sum(heap_blks_hit), 0) AS heap_hit, \
			coalesce(sum(idx_blks_read), 0) AS idx_read, \
			coalesce(sum(idx_blks_hit), 0) AS idx_hit, \
			coalesce(sum(toast_blks_read), 0) AS toast_read, \
			coalesce(sum(toast_blks_hit), 0) AS toast_hit, \
			coalesce(sum(tidx_blks_read), 0) AS tidx_read, \
			coalesce(sum(tidx_blks_hit), 0) AS tidx_hit \
		FROM pg_statio_user_tables;"

	<Result>
		Type "pg_blks"
		InstancePrefix "heap_read"
		ValuesFrom "heap_read"
	</Result>
	<Result>
		Type "pg_blks"
		InstancePrefix "heap_hit"
		ValuesFrom "heap_hit"
	</Result>
	<Result>
		Type "pg_blks"
		InstancePrefix "idx_read"
		ValuesFrom "idx_read"
	</Result>
	<Result>
		Type "pg_blks"
		InstancePrefix "idx_hit"
		ValuesFrom "idx_hit"
	</Result>
	<Result>
		Type "pg_blks"
		InstancePrefix "toast_read"
		ValuesFrom "toast_read"
	</Result>
	<Result>
		Type "pg_blks"
		InstancePrefix "toast_hit"
		ValuesFrom "toast_hit"
	</Result>
	<Result>
		Type "pg_blks"
		InstancePrefix "tidx_read"
		ValuesFrom "tidx_read"
	</Result>
	<Result>
		Type "pg_blks"
		InstancePrefix "tidx_hit"
		ValuesFrom "tidx_hit"
	</Result>
</Query>

<Query disk_io_by_table>
	Statement "SELECT schemaname, relname, \
			coalesce(heap_blks_read, 0) AS heap_read, \
			coalesce(heap_blks_hit, 0) AS heap_hit, \
			coalesce(idx_blks_read, 0) AS idx_read, \
			coalesce(idx_blks_hit, 0) AS idx_hit, \
			coalesce(toast_blks_read, 0) AS toast_read, \
			coalesce(toast_blks_hit, 0) AS toast_hit, \
			coalesce(tidx_blks_read, 0) AS tidx_read, \
			coalesce(tidx_blks_hit, 0) AS tidx_hit \
		FROM pg_statio_user_tables;"

	<Result>
		Type "pg_blks"
		InstancePrefix "heap_read"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "heap_read"
	</Result>
	<Result>
		Type "pg_blks"
		InstancePrefix "heap_hit"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "heap_hit"
	</Result>
	<Result>
		Type "pg_blks"
		InstancePrefix "idx_read"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "idx_read"
	</Result>
	<Result>
		Type "pg_blks"
		InstancePrefix "idx_hit"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "idx_hit"
	</Result>
	<Result>
		Type "pg_blks"
		InstancePrefix "toast_read"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "toast_read"
	</Result>
	<Result>
		Type "pg_blks"
		InstancePrefix "toast_hit"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "toast_hit"
	</Result>
	<Result>
		Type "pg_blks"
		InstancePrefix "tidx_read"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "tidx_read"
	</Result>
	<Result>
		Type "pg_blks"
		InstancePrefix "tidx_hit"
		InstancesFrom "schemaname" "relname"
		ValuesFrom "tidx_hit"
	</Result>
</Query>

<Query disk_usage>
	Statement "SELECT pg_database_size($1) AS size;"

	Param database

	<Result>
		Type pg_db_size
		ValuesFrom "size"
	</Result>
</Query>

# vim: set ft=config :

