Re: New GUC to sample log queries

Adrien NAYRAT <adrien.nayrat@anayrat.info>

From: Adrien NAYRAT <adrien.nayrat@anayrat.info>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Thomas Munro <thomas.munro@enterprisedb.com>, Dmitry Dolgov <9erthalion6@gmail.com>, Tomas Vondra <tomas.vondra@2ndquadrant.com>, <vik.fearing@2ndquadrant.com>, Robert Haas <robertmhaas@gmail.com>, "Michael Paquier" <michael@paquier.xyz>, David Rowley <david.rowley@2ndquadrant.com>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2018-11-29T17:14:01Z
Lists: pgsql-hackers
On 11/29/18 2:27 PM, Alvaro Herrera wrote:
> 
> =# select name, short_desc, extra_desc, category from pg_settings where category like 'Reporting%When%' ;
> ─[ RECORD 1 ]────────────────────────────────────────────────────────────────────────────────────────────────────
> name       │ log_min_duration_statement
> short_desc │ Sets the minimum execution time above which statements will be logged.
> extra_desc │ Zero prints all queries. -1 turns this feature off.
> category   │ Reporting and Logging / When to Log
> ─[ RECORD 2 ]────────────────────────────────────────────────────────────────────────────────────────────────────
> name       │ log_min_error_statement
> short_desc │ Causes all statements generating error at or above this level to be logged.
> extra_desc │ Each level includes all the levels that follow it. The later the level, the fewer messages are sent.
> category   │ Reporting and Logging / When to Log
> ─[ RECORD 3 ]────────────────────────────────────────────────────────────────────────────────────────────────────
> name       │ log_min_messages
> short_desc │ Sets the message levels that are logged.
> extra_desc │ Each level includes all the levels that follow it. The later the level, the fewer messages are sent.
> category   │ Reporting and Logging / When to Log
> ─[ RECORD 4 ]────────────────────────────────────────────────────────────────────────────────────────────────────
> name       │ log_statement_sample_rate
> short_desc │ Fraction of statements to log.
> extra_desc │ 1.0 logs all statements.
> category   │ Reporting and Logging / When to Log
> 
> The description here seems a bit short on details to me.  I would say
> something like "Fraction of statements over log_min_duration_statement
> to log"; otherwise it's not clear why this doesn't apply to
> log_statement.  I think the extra_desc should be more verbose too. (Not
> really clear to me what to put in each ... suggestions welcome.)

I totally agree with that.

I like your short_desc, so I propose:

short_desc: "Fraction of statements over log_min_duration_statement to log"
long_desc: "If we only want a sample, use a value between 0 (never log) 
and 1.0 (always log)"

If you agree with that, I will send another patch (I will complete 
postgresql.conf.sample with the same description).

> 
> (More generally, I think we should add a lot more juice to the GUC
> description fields.)
> 
> Attached is pgindent fixes for your next submission.
> 

Thanks, (I have to remember to pgident patches before submission)


Commits

  1. Use pg_strong_random() to select each server process's random seed.

  2. Use a separate random seed for SQL random()/setseed() functions.

  3. Marginal performance hacking in erand48.c.

  4. Fix latent problem with pg_jrand48().

  5. Silence compiler warning

  6. Add log_statement_sample_rate parameter