summaryrefslogtreecommitdiff
path: root/src/bin/pgbench
diff options
context:
space:
mode:
authorTatsuo Ishii2022-04-06 00:55:58 +0000
committerTatsuo Ishii2022-04-06 00:55:58 +0000
commit17a856d08bedeaec77be3f15572e01f553e9613f (patch)
tree61445ad4b12aa2e9d874249881035d6fe6b69758 /src/bin/pgbench
parente37ad5fa4df2319e26a7e779607130feae1a5029 (diff)
Change aggregated log format of pgbench.
Commit 4a39f87acd changed the aggregated log format. Problem is, now the explanatory paragraph for the log line in the document is too long. Also the log format included more optional columns, and it's harder to parse the log lines. This commit tries to solve the problems. - There's no optional log columns anymore. If a column is not meaningful with provided pgbench option, it will be presented as 0. - Reorder the log columns so that it's easier to parse them. - Adjust explanatory paragraph for the log line in the doc. Discussion: https://postgr.es/m/flat/202203280757.3tu4ovs3petm%40alvherre.pgsql
Diffstat (limited to 'src/bin/pgbench')
-rw-r--r--src/bin/pgbench/pgbench.c59
1 files changed, 42 insertions, 17 deletions
diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c
index acf3e56413..4d4b979e4f 100644
--- a/src/bin/pgbench/pgbench.c
+++ b/src/bin/pgbench/pgbench.c
@@ -4494,6 +4494,17 @@ doLog(TState *thread, CState *st,
while ((next = agg->start_time + agg_interval * INT64CONST(1000000)) <= now)
{
+ double lag_sum = 0.0;
+ double lag_sum2 = 0.0;
+ double lag_min = 0.0;
+ double lag_max = 0.0;
+ int64 skipped = 0;
+ int64 serialization_failures = 0;
+ int64 deadlock_failures = 0;
+ int64 serialization_or_deadlock_failures = 0;
+ int64 retried = 0;
+ int64 retries = 0;
+
/* print aggregated report to logfile */
fprintf(logfile, INT64_FORMAT " " INT64_FORMAT " %.0f %.0f %.0f %.0f",
agg->start_time / 1000000, /* seconds since Unix epoch */
@@ -4503,27 +4514,41 @@ doLog(TState *thread, CState *st,
agg->latency.min,
agg->latency.max);
- if (failures_detailed)
- fprintf(logfile, " " INT64_FORMAT " " INT64_FORMAT,
- agg->serialization_failures,
- agg->deadlock_failures);
- else
- fprintf(logfile, " " INT64_FORMAT, getFailures(agg));
-
if (throttle_delay)
{
- fprintf(logfile, " %.0f %.0f %.0f %.0f",
- agg->lag.sum,
- agg->lag.sum2,
- agg->lag.min,
- agg->lag.max);
- if (latency_limit)
- fprintf(logfile, " " INT64_FORMAT, agg->skipped);
+ lag_sum = agg->lag.sum;
+ lag_sum2 = agg->lag.sum2;
+ lag_min = agg->lag.min;
+ lag_max = agg->lag.max;
}
+ fprintf(logfile, " %.0f %.0f %.0f %.0f",
+ lag_sum,
+ lag_sum2,
+ lag_min,
+ lag_max);
+
+ if (latency_limit)
+ skipped = agg->skipped;
+ fprintf(logfile, " " INT64_FORMAT, skipped);
+
if (max_tries != 1)
- fprintf(logfile, " " INT64_FORMAT " " INT64_FORMAT,
- agg->retried,
- agg->retries);
+ {
+ retried = agg->retried;
+ retries = agg->retries;
+ }
+ fprintf(logfile, " " INT64_FORMAT " " INT64_FORMAT, retried, retries);
+
+ if (failures_detailed)
+ {
+ serialization_failures = agg->serialization_failures;
+ deadlock_failures = agg->deadlock_failures;
+ }
+ serialization_or_deadlock_failures = serialization_failures + deadlock_failures;
+ fprintf(logfile, " " INT64_FORMAT " " INT64_FORMAT " " INT64_FORMAT,
+ serialization_or_deadlock_failures,
+ serialization_failures,
+ deadlock_failures);
+
fputc('\n', logfile);
/* reset data and move to next interval */