Re: Pluggable cumulative statistics

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Dmitry Dolgov <9erthalion6@gmail.com>
Cc: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-08-05T06:23:05Z
Lists: pgsql-hackers
On Fri, Aug 02, 2024 at 05:53:31AM +0900, Michael Paquier wrote:
> Attached is a rebased set of the rest, with 0001 now introducing the
> pluggable core part.

So, I have been able to spend a few more days on all that while
travelling across three continents, and I have applied the core patch
followed by the template parts after more polishing.  The core part
has been tweaked a bit more in terms of variable and structure names,
to bring the builtin and custom stats parts more consistent with each
other.  There were also a bunch of loops that did not use the
PgStat_Kind, but an int with an index on the custom_data arrays.  I
have uniformized the whole.

I am keeping an eye on the buildfarm and it is currently green.  My
machines don't seem to have run the new tests with injection points
yet, the CI on the CF app is not reporting any failure caused by that,
and my CI runs have all been stable.
--
Michael

Commits

  1. injection_points: Add some fixed-numbered statistics

  2. injection_points: Add some cumulative stats for injection points

  3. Add helper routines to retrieve data for custom fixed-numbered pgstats

  4. Introduce pluggable APIs for Cumulative Statistics

  5. Switch PgStat_Kind from an enum to a uint32 type

  6. Improve comment of pgstat_read_statsfile()

  7. Add a new 'F' entry type for fixed-numbered stats in pgstats file

  8. Add PgStat_KindInfo.init_shmem_cb

  9. Use pgstat_kind_infos to write fixed shared statistics

  10. Replace hardcoded identifiers of pgstats file by #defines