On Tue, Jul 10, 2018 at 11:38 AM, Justin Pryzby <pryzby@xxxxxxxxxxxxx> wrote:
> 2. Make stats available in `pg_stat_statements` (or alternate view that
> could be joined on). The block stats are already available here, but
> others like CPU usage, page faults, and context switches are not.
pg_stat_statements is ./contrib/pg_stat_statements/pg_stat_statements.c which is 3k LOC.
getrusage stuff and log_*_stat stuff is in src/backend/tcop/postgres.c
Before you start implementing something here, take a look at pg_stat_kcache [0]
Which already aims to collect a few more system statistics than what pg_stat_statements provides today, and might be a good basis to extend from.
It might also be worth to look at pg_stat_activity wait event sampling to determine where a system spends time, see e.g. pg_wait_sampling [1] for one approach to this.
Best,
Lukas
Lukas Fittl