pgsql: Allow sampling of statements depending on duration

From: Tomas Vondra <tomas(dot)vondra(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Allow sampling of statements depending on duration
Date: 2019-11-06 18:11:48
Message-ID: E1iSPmW-0007qs-Vz@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Allow sampling of statements depending on duration

This allows logging a sample of statements, without incurring excessive
log traffic (which may impact performance). This can be useful when
analyzing workloads with lots of short queries.

The sampling is configured using two new GUC parameters:

* log_min_duration_sample - minimum required statement duration

* log_statement_sample_rate - sample rate (0.0 - 1.0)

Only statements with duration exceeding log_min_duration_sample are
considered for sampling. To enable sampling, both those GUCs have to
be set correctly.

The existing log_min_duration_statement GUC has a higher priority, i.e.
statements with duration exceeding log_min_duration_statement will be
always logged, irrespectedly of how the sampling is configured. This
means only configurations

log_min_duration_sample < log_min_duration_statement

do actually sample the statements, instead of logging everything.

Author: Adrien Nayrat
Reviewed-by: David Rowley, Vik Fearing, Tomas Vondra
Discussion: https://postgr.es/m/bbe0a1a8-a8f7-3be2-155a-888e661cc06c@anayrat.info

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/6e3e6cc0e884a6091e1094dff29db430af08fb93

Modified Files
--------------
doc/src/sgml/config.sgml | 85 +++++++++++++++++++++++++++
src/backend/tcop/postgres.c | 40 +++++++++----
src/backend/utils/misc/guc.c | 27 ++++++++-
src/backend/utils/misc/postgresql.conf.sample | 11 ++++
src/include/utils/guc.h | 2 +
5 files changed, 153 insertions(+), 12 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tomas Vondra 2019-11-06 18:12:04 pgsql: Document log_transaction_sample_rate as superuser-only
Previous Message Tom Lane 2019-11-06 17:00:25 pgsql: Minor code review for tuple slot rewrite.