mirror of
https://github.com/postgres/postgres.git
synced 2025-07-11 10:01:57 +03:00
Add pg_stat_wal statistics view.
This view shows the statistics about WAL activity. Currently it has only two columns: wal_buffers_full and stats_reset. wal_buffers_full column indicates the number of times WAL data was written to the disk because WAL buffers got full. This information is useful when tuning wal_buffers. stats_reset column indicates the time at which these statistics were last reset. pg_stat_wal view is also the basic infrastructure to expose other various statistics about WAL activity later. Bump PGSTAT_FILE_FORMAT_ID due to the change in pgstat format. Bump catalog version. Author: Masahiro Ikeda Reviewed-by: Takayuki Tsunakawa, Kyotaro Horiguchi, Amit Kapila, Fujii Masao Discussion: https://postgr.es/m/188bd3f2d2233cf97753b5ced02bb050@oss.nttdata.com
This commit is contained in:
@ -61,6 +61,7 @@ typedef enum StatMsgType
|
||||
PGSTAT_MTYPE_ANALYZE,
|
||||
PGSTAT_MTYPE_ARCHIVER,
|
||||
PGSTAT_MTYPE_BGWRITER,
|
||||
PGSTAT_MTYPE_WAL,
|
||||
PGSTAT_MTYPE_SLRU,
|
||||
PGSTAT_MTYPE_FUNCSTAT,
|
||||
PGSTAT_MTYPE_FUNCPURGE,
|
||||
@ -122,7 +123,8 @@ typedef struct PgStat_TableCounts
|
||||
typedef enum PgStat_Shared_Reset_Target
|
||||
{
|
||||
RESET_ARCHIVER,
|
||||
RESET_BGWRITER
|
||||
RESET_BGWRITER,
|
||||
RESET_WAL
|
||||
} PgStat_Shared_Reset_Target;
|
||||
|
||||
/* Possible object types for resetting single counters */
|
||||
@ -436,6 +438,16 @@ typedef struct PgStat_MsgBgWriter
|
||||
PgStat_Counter m_checkpoint_sync_time;
|
||||
} PgStat_MsgBgWriter;
|
||||
|
||||
/* ----------
|
||||
* PgStat_MsgWal Sent by backends and background processes to update WAL statistics.
|
||||
* ----------
|
||||
*/
|
||||
typedef struct PgStat_MsgWal
|
||||
{
|
||||
PgStat_MsgHdr m_hdr;
|
||||
PgStat_Counter m_wal_buffers_full;
|
||||
} PgStat_MsgWal;
|
||||
|
||||
/* ----------
|
||||
* PgStat_MsgSLRU Sent by a backend to update SLRU statistics.
|
||||
* ----------
|
||||
@ -596,6 +608,7 @@ typedef union PgStat_Msg
|
||||
PgStat_MsgAnalyze msg_analyze;
|
||||
PgStat_MsgArchiver msg_archiver;
|
||||
PgStat_MsgBgWriter msg_bgwriter;
|
||||
PgStat_MsgWal msg_wal;
|
||||
PgStat_MsgSLRU msg_slru;
|
||||
PgStat_MsgFuncstat msg_funcstat;
|
||||
PgStat_MsgFuncpurge msg_funcpurge;
|
||||
@ -614,7 +627,7 @@ typedef union PgStat_Msg
|
||||
* ------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#define PGSTAT_FILE_FORMAT_ID 0x01A5BC9D
|
||||
#define PGSTAT_FILE_FORMAT_ID 0x01A5BC9E
|
||||
|
||||
/* ----------
|
||||
* PgStat_StatDBEntry The collector's data per database
|
||||
@ -745,6 +758,15 @@ typedef struct PgStat_GlobalStats
|
||||
TimestampTz stat_reset_timestamp;
|
||||
} PgStat_GlobalStats;
|
||||
|
||||
/*
|
||||
* WAL statistics kept in the stats collector
|
||||
*/
|
||||
typedef struct PgStat_WalStats
|
||||
{
|
||||
PgStat_Counter wal_buffers_full;
|
||||
TimestampTz stat_reset_timestamp;
|
||||
} PgStat_WalStats;
|
||||
|
||||
/*
|
||||
* SLRU statistics kept in the stats collector
|
||||
*/
|
||||
@ -1265,6 +1287,11 @@ extern char *pgstat_stat_filename;
|
||||
*/
|
||||
extern PgStat_MsgBgWriter BgWriterStats;
|
||||
|
||||
/*
|
||||
* WAL statistics counter is updated by backends and background processes
|
||||
*/
|
||||
extern PgStat_MsgWal WalStats;
|
||||
|
||||
/*
|
||||
* Updated by pgstat_count_buffer_*_time macros
|
||||
*/
|
||||
@ -1464,6 +1491,7 @@ extern void pgstat_twophase_postabort(TransactionId xid, uint16 info,
|
||||
|
||||
extern void pgstat_send_archiver(const char *xlog, bool failed);
|
||||
extern void pgstat_send_bgwriter(void);
|
||||
extern void pgstat_send_wal(void);
|
||||
|
||||
/* ----------
|
||||
* Support functions for the SQL-callable functions to
|
||||
@ -1478,6 +1506,7 @@ extern PgStat_StatFuncEntry *pgstat_fetch_stat_funcentry(Oid funcid);
|
||||
extern int pgstat_fetch_stat_numbackends(void);
|
||||
extern PgStat_ArchiverStats *pgstat_fetch_stat_archiver(void);
|
||||
extern PgStat_GlobalStats *pgstat_fetch_global(void);
|
||||
extern PgStat_WalStats *pgstat_fetch_stat_wal(void);
|
||||
extern PgStat_SLRUStats *pgstat_fetch_slru(void);
|
||||
|
||||
extern void pgstat_count_slru_page_zeroed(int slru_idx);
|
||||
|
Reference in New Issue
Block a user