4.13. SQL Query and Statement Metrics #
Metrics based on the pg_stat_statements view and collected by the following plugins:
the statements_generic plugin:
postgresql.statements.calls{database, user, queryid}postgresql.statements.rows{database, user, queryid}
the statements_parallel plugin, available from Postgres Pro and PostgreSQL 18:
postgresql.statements.parallel_workers_to_launch{database, user, queryid}postgresql.statements.parallel_workers_launched{database, user, queryid}
the statements_timing plugin:
postgresql.statements.exec_time_milliseconds{database, user, queryid}postgresql.statements.blocks_read_time_milliseconds{database, user, queryid}postgresql.statements.blocks_write_time_milliseconds{database, user, queryid}available from Postgres Pro and PostgreSQL 17:
postgresql.statements.local_blocks_read_time_milliseconds{database, user, queryid}postgresql.statements.local_blocks_write_time_milliseconds{database, user, queryid}
the statements_planning plugin:
postgresql.statements.plans{database, user, queryid}postgresql.statements.plan_time_milliseconds{database, user, queryid}
the statements_shared_io plugin:
postgresql.statements.shared_blocks_dirtied{database, user, queryid}postgresql.statements.shared_blocks_hit{database, user, queryid}postgresql.statements.shared_blocks_read{database, user, queryid}postgresql.statements.shared_blocks_written{database, user, queryid}
the statements_local_io plugin:
postgresql.statements.local_blocks_dirtied{database, user, queryid}postgresql.statements.local_blocks_hit{database, user, queryid}postgresql.statements.local_blocks_read{database, user, queryid}postgresql.statements.local_blocks_written{database, user, queryid}
the statements_temp_io plugin:
postgresql.statements.temp_blocks_read_time_milliseconds{database, user, queryid}postgresql.statements.temp_blocks_read{database, user, queryid}postgresql.statements.temp_blocks_write_time_milliseconds{database, user, queryid}postgresql.statements.temp_blocks_written{database, user, queryid}
the statements_wal plugin:
postgresql.statements.wal_bytes{database, user, queryid}postgresql.statements.wal_fpi{database, user, queryid}postgresql.statements.wal_records{database, user, queryid}available from Postgres Pro and PostgreSQL 18:
postgresql.statements.wal_buffers_full{database, user, queryid}
the statements_jit plugin:
postgresql.statements.jit_emission_count{database, user, queryid}postgresql.statements.jit_emission_time_milliseconds{database, user, queryid}postgresql.statements.jit_functions{database, user, queryid}postgresql.statements.jit_generation_time_milliseconds{database, user, queryid}postgresql.statements.jit_inlining_count{database, user, queryid}postgresql.statements.jit_inlining_time_milliseconds{database, user, queryid}postgresql.statements.jit_optimization_count{database, user, queryid}postgresql.statements.jit_optimization_time_milliseconds{database, user, queryid}available from Postgres Pro and PostgreSQL 17:
postgresql.statements.jit_deform_count{database, user, queryid}postgresql.statements.jit_deform_time_milliseconds{database, user, queryid}
the statements_queries plugin:
postgresql.statements.query_info{database, user, queryid, query}
Metrics based on the pgpro_stats_statements view, collected by the following plugins:
the pgpro_statements_generic plugin:
postgresql.pgpro_statements.calls{database, user, queryid}postgresql.pgpro_statements.rows{database, user, queryid}
the pgpro_statements_parallel plugin, available from Postgres Pro and PostgreSQL 18:
postgresql.pgpro_statements.parallel_workers_to_launch{database, user, queryid}postgresql.pgpro_statements.parallel_workers_launched{database, user, queryid}
the pgpro_statements_timing plugin:
postgresql.pgpro_statements.exec_time_milliseconds{database, user, queryid}postgresql.pgpro_statements.shared_blocks_read_time_milliseconds{database, user, queryid}postgresql.pgpro_statements.shared_blocks_write_time_milliseconds{database, user, queryid}available from Postgres Pro and PostgreSQL 17:
postgresql.pgpro_statements.local_blocks_read_time_milliseconds{database, user, queryid}postgresql.pgpro_statements.local_blocks_write_time_milliseconds{database, user, queryid}
the pgpro_statements_planning plugin:
postgresql.pgpro_statements.plans{database, user, queryid}postgresql.pgpro_statements.plan_time_milliseconds{database, user, queryid}
the pgpro_statements_shared_io plugin:
postgresql.pgpro_statements.shared_blocks_hit{database, user, queryid}postgresql.pgpro_statements.shared_blocks_read{database, user, queryid}postgresql.pgpro_statements.shared_blocks_dirtied{database, user, queryid}postgresql.pgpro_statements.shared_blocks_written{database, user, queryid}
the pgpro_statements_local_io plugin:
postgresql.pgpro_statements.local_blocks_hit{database, user, queryid}postgresql.pgpro_statements.local_blocks_read{database, user, queryid}postgresql.pgpro_statements.local_blocks_dirtied{database, user, queryid}postgresql.pgpro_statements.local_blocks_written{database, user, queryid}
the pgpro_statements_temp_io plugin:
postgresql.pgpro_statements.temp_blocks_read{database, user, queryid}postgresql.pgpro_statements.temp_blocks_written{database, user, queryid}postgresql.pgpro_statements.temp_blocks_read_time_milliseconds{database, user, queryid}postgresql.pgpro_statements.temp_blocks_write_time_milliseconds{database, user, queryid}
the pgpro_statements_wal plugin:
postgresql.pgpro_statements.wal_records{database, user, queryid}postgresql.pgpro_statements.wal_fpi{database, user, queryid}postgresql.pgpro_statements.wal_bytes{database, user, queryid}available from Postgres Pro and PostgreSQL 17:
postgresql.pgpro_statements.wal_buffers_full{database, user, queryid}
the pgpro_statements_jit plugin:
postgresql.pgpro_statements.jit_functions{database, user, queryid}postgresql.pgpro_statements.jit_generation_time_milliseconds{database, user, queryid}postgresql.pgpro_statements.jit_inlining_count{database, user, queryid}postgresql.pgpro_statements.jit_inlining_time_milliseconds{database, user, queryid}postgresql.pgpro_statements.jit_optimization_count{database, user, queryid}postgresql.pgpro_statements.jit_optimization_time_milliseconds{database, user, queryid}postgresql.pgpro_statements.jit_emission_count{database, user, queryid}postgresql.pgpro_statements.jit_emission_time_milliseconds{database, user, queryid}available from Postgres Pro and PostgreSQL 17:
postgresql.pgpro_statements.jit_deform_count{database, user, queryid}postgresql.pgpro_statements.jit_deform_time_milliseconds{database, user, queryid}
the pgpro_statements_queries plugin:
postgresql.pgpro_statements.query_info{database, user, queryid, query}
the pgpro_statements_wait_stats plugin:
postgresql.pgpro_statements.wait_stats_milliseconds_total{database, user, queryid, type, event}
the pgpro_statements_rusage plugin:
postgresql.pgpro_statements.rusage_reads{database, user, queryid, statement_phase}postgresql.pgpro_statements.rusage_writes{database, user, queryid, statement_phase}postgresql.pgpro_statements.rusage_user_time_milliseconds{database, user, queryid, statement_phase}postgresql.pgpro_statements.rusage_system_time_milliseconds{database, user, queryid, statement_phase}postgresql.pgpro_statements.rusage_minflts{database, user, queryid, statement_phase}postgresql.pgpro_statements.rusage_majflts{database, user, queryid, statement_phase}postgresql.pgpro_statements.rusage_nswaps{database, user, queryid, statement_phase}postgresql.pgpro_statements.rusage_msgsnds{database, user, queryid, statement_phase}postgresql.pgpro_statements.rusage_msgrcvs{database, user, queryid, statement_phase}postgresql.pgpro_statements.rusage_nsignals{database, user, queryid, statement_phase}postgresql.pgpro_statements.rusage_nvcsws{database, user, queryid, statement_phase}postgresql.pgpro_statements.rusage_nivcsws{database, user, queryid, statement_phase}
the pgpro_statements_plans plugin:
postgresql.pgpro_statements.plan_info{database, user, planid, plan}
the pgpro_statements_inval_msgs plugin:
postgresql.pgpro_statements.inval_msgs_total{database, user, queryid}postgresql.pgpro_statements.inval_msgs_catcache{database, user, queryid}postgresql.pgpro_statements.inval_msgs_catalog{database, user, queryid}postgresql.pgpro_statements.inval_msgs_relcache{database, user, queryid}postgresql.pgpro_statements.inval_msgs_relcache_all{database, user, queryid}postgresql.pgpro_statements.inval_msgs_smgr{database, user, queryid}postgresql.pgpro_statements.inval_msgs_relmap{database, user, queryid}postgresql.pgpro_statements.inval_msgs_snapshot{database, user, queryid}