Re: [PATCH] Tracking statements entry timestamp in pg_stat_statements
Julien Rouhaud <rjuju123@gmail.com>
From: Julien Rouhaud <rjuju123@gmail.com>
To: Andrei Zubkov <zubkov@moonset.ru>
Cc: Andres Freund <andres@anarazel.de>, pgsql-hackers@lists.postgresql.org, "Anton A.Melnikov" <aamelnikov@inbox.ru>
Date: 2022-01-25T12:22:02Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Improve quoting in some error messages
- 07e5e6674233 14.0 cited
Hi Andrei, On Tue, Jan 25, 2022 at 02:58:17PM +0300, Andrei Zubkov wrote: > > Of course we can replace old min/max metrics with the new "aux" min/max > metrics. It seems reasonable to me because they will have the same > behavior until we touch reset_aux. I think we can assume that min/max > data is saved somewhere if reset_aux was performed, but how about the > backward compatibility? > There may be some monitoring solutions that doesn't expect min/max > stats reset independently of other statement statistics. > It seems highly unlikely to me, because the min/max stats for "the last > 3 years" is obvious unusable but maybe someone uses them as a sign of > something? To be honest I don't see how any monitoring solution could make any use of those fields as-is. For that reason in PoWA we unfortunately have to entirely ignore them. There was a previous attempt to provide a way to reset those counters only (see [1]), but it was returned with feedback due to lack of TLC from the author. > Are we need to worry about that? I don't think it's a problem, as once you have a solution on top of pg_stat_statements, you get information order of magnitude better from that solution instead of pg_stat_statements. And if that's a problem, well either don't reset those counters, or don't use the external solution if it does it automatically and you're not ok with it. > Also, there is one more dramatic consequence of such decision... > What min/max values should be returned after the auxiliary reset but > before the next statement execution? > The NULL values seems reasonable but there was not any NULLs before and > backward compatibility seems broken. Another approach is to return the > old values of min/max stats and the old aux_stats_since value until the > next statement execution but it seems strange when the reset was > performed and it doesn't affected any stats instantly. If you're worried about some external table having a NOT NULL constraint for those fields, how about returning NaN instead? That's a valid value for a double precision data type. [1] https://www.postgresql.org/message-id/1762890.8ARNpCrDLI@peanuts2