Hi, Thank you for working on this!
I just started reading the code and have a couple of questions. I think that every time we flush IO or WAL stats, we want(?) to flush backend stats as well, so would it make sense to move pgstat_flush_backend() calls to inside of pgstat_flush_io() and pgstat_wal_flush_cb()? I see that backend statistics are not collected for some of the backend types but that is already checked in the pgstat_flush_backend() with pgstat_tracks_backend_bktype(). Also, is there a chance that wal_bytes gets incremented without wal_records getting incremented? I searched the code and did not find any example of that but I just wanted to be sure. If there is a case like that, then pgstat_backend_wal_have_pending() needs to check wal_bytes instead of wal_records. -- Regards, Nazir Bilal Yavuz Microsoft