Use case for enabling log_duration other than benchmarking

Started by Alicja Kucharczykabout 3 years ago6 messagesgeneral
Jump to latest
#1Alicja Kucharczyk
zaledwie10minut@gmail.com

Do you know any use case for enabling log_duration? Like 3rd party tools
for instance.
I find this parameter pretty much useless (in opposite to
log_min_duration_statement) as it does not show the query text, so besides
having just the timing logged it is of no use in troubleshooting and often
causes huge overhead. Am I missing something?

pozdrawiam,
best regards,
Alicja Kucharczyk

#2Ron
ronljohnsonjr@gmail.com
In reply to: Alicja Kucharczyk (#1)
Re: Use case for enabling log_duration other than benchmarking

On 1/10/23 07:14, Alicja Kucharczyk wrote:

Do you know any use case for enabling log_duration? Like 3rd party tools
for instance.
I find this parameter pretty much useless (in opposite to
log_min_duration_statement) as it does not show the query text, so besides
having just the timing logged it is of no use in troubleshooting and often
causes huge overhead. Am I missing something?

https://www.postgresql.org/docs/current/runtime-config-logging.html

Note

The difference between enabling|log_duration|and
settinglog_min_duration_statement
<https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-MIN-DURATION-STATEMENT&gt;to
zero is that exceeding|log_min_duration_statement|forces the text of the
query to be logged, but this option doesn't. Thus,
if|log_duration|is|on|and|log_min_duration_statement|has a positive value,
all durations are logged but the query text is included only for statements
exceeding the threshold. *This behavior can be useful for gathering
statistics in high-load installations.*

--
Born in Arizona, moved to Babylonia.

#3Alicja Kucharczyk
zaledwie10minut@gmail.com
In reply to: Ron (#2)
Re: Use case for enabling log_duration other than benchmarking

wt., 10 sty 2023 o 14:57 Ron <ronljohnsonjr@gmail.com> napisał(a):

On 1/10/23 07:14, Alicja Kucharczyk wrote:

Do you know any use case for enabling log_duration? Like 3rd party tools
for instance.
I find this parameter pretty much useless (in opposite to
log_min_duration_statement) as it does not show the query text, so besides
having just the timing logged it is of no use in troubleshooting and often
causes huge overhead. Am I missing something?

https://www.postgresql.org/docs/current/runtime-config-logging.html

Note

The difference between enabling log_duration and setting
log_min_duration_statement
<https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-MIN-DURATION-STATEMENT&gt;
to zero is that exceeding log_min_duration_statement forces the text of
the query to be logged, but this option doesn't. Thus, if log_duration is
on and log_min_duration_statement has a positive value, all durations are
logged but the query text is included only for statements exceeding the
threshold. *This behavior can be useful for gathering statistics in
high-load installations.*

thank you Ron.
My question is a bit more practical - Does anyone really find it useful?
What value brings the info that 20% of my query are under 1ms and 10% over
1 minute - If just checked once and then turned off - I can understand to
have more visibility into the overall characteristics. But let say someone
have it enabled on a production system all the time - what could be the
reason for that?

#4Ron
ronljohnsonjr@gmail.com
In reply to: Alicja Kucharczyk (#3)
Re: Use case for enabling log_duration other than benchmarking

On 1/10/23 09:57, Alicja Kucharczyk wrote:

wt., 10 sty 2023 o 14:57 Ron <ronljohnsonjr@gmail.com> napisał(a):

On 1/10/23 07:14, Alicja Kucharczyk wrote:

Do you know any use case for enabling log_duration? Like 3rd party
tools for instance.
I find this parameter pretty much useless (in opposite to
log_min_duration_statement) as it does not show the query text, so
besides having just the timing logged it is of no use in
troubleshooting and often causes huge overhead. Am I missing something?

https://www.postgresql.org/docs/current/runtime-config-logging.html

Note

The difference between enabling|log_duration|and
settinglog_min_duration_statement
<https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-MIN-DURATION-STATEMENT&gt;to
zero is that exceeding|log_min_duration_statement|forces the text of
the query to be logged, but this option doesn't. Thus,
if|log_duration|is|on|and|log_min_duration_statement|has a positive
value, all durations are logged but the query text is included only
for statements exceeding the threshold. *This behavior can be useful
for gathering statistics in high-load installations.*

thank you Ron.
My question is a bit more practical - Does anyone really find it useful?
What value brings the info that 20% of my query are under 1ms and 10% over
1 minute

If your application /*requires*/ subsecond response, and you're only getting
subsecond response some of the time, then you obviously want to know why. 
Part of that is checking to see if the database and queries are doing their job.

- If just checked once and then turned off - I can understand to have more
visibility into the overall characteristics. But let say someone have it
enabled on a production system all the time - what could be the reason for
that?

--
Born in Arizona, moved to Babylonia.

#5Julien Rouhaud
rjuju123@gmail.com
In reply to: Ron (#4)
Re: Use case for enabling log_duration other than benchmarking

Le mer. 11 janv. 2023 à 00:28, Ron <ronljohnsonjr@gmail.com> a écrit :

If your application *requires* subsecond response, and you're only
getting subsecond response some of the time, then you obviously want to
know why. Part of that is checking to see if the database and queries are
doing their job.

now that log_line_prefix can display the query_id, it could also be used to
get a limited version of what log_min_duration_statements does (you can
know what query was but not the exact parameters), but in a way cheaper
way. of course it assumes that you have something like pg_stat_statements
installed and that you need some more granularity than regular snapshots of
its information.

Show quoted text
#6Bruce Momjian
bruce@momjian.us
In reply to: Alicja Kucharczyk (#3)
Re: Use case for enabling log_duration other than benchmarking

On Tue, Jan 10, 2023 at 04:57:11PM +0100, Alicja Kucharczyk wrote:

thank you Ron.
My question is a bit more practical - Does anyone really find it useful? 
What value brings the info that 20% of my query are under 1ms and 10% over 1
minute - If just checked once and then turned off - I can understand to have
more visibility into the overall characteristics. But let say someone have it
enabled on a production system all the time - what could be the reason for
that?

I think the big value is that enabling log_statement and log_duration
prints the statement text when it _starts, while enabling only
log_min_duration_statement prints the statement and duration when it
_ends_.

--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com

Embrace your flaws. They make you human, rather than perfect,
which you will never be.