From 44da55fffb7142a27b010e9eae42b55783410495 Mon Sep 17 00:00:00 2001 From: Erik Bernhardson Date: Wed, 5 Oct 2016 12:30:18 -0700 Subject: [PATCH] Use a parameterized log for sub-optimal transaction logging In logstash these messages can't be grouped in any way, because they are all slightly different. By using a parameterized log message these can be grouped to give a better overview about the size of a problem. Change-Id: Icfa957bd1775b49bccd6e9920586c94eb4597f9b --- includes/libs/rdbms/TransactionProfiler.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/includes/libs/rdbms/TransactionProfiler.php b/includes/libs/rdbms/TransactionProfiler.php index 4d2b28fdd5..12f6df5d4a 100644 --- a/includes/libs/rdbms/TransactionProfiler.php +++ b/includes/libs/rdbms/TransactionProfiler.php @@ -295,13 +295,15 @@ class TransactionProfiler implements LoggerAwareInterface { } } if ( $slow ) { - $dbs = implode( ', ', array_keys( $this->dbTrxHoldingLocks[$name]['conns'] ) ); - $msg = "Sub-optimal transaction on DB(s) [{$dbs}]:\n"; + $trace = ''; foreach ( $this->dbTrxMethodTimes[$name] as $i => $info ) { list( $query, $sTime, $end ) = $info; - $msg .= sprintf( "%d\t%.6f\t%s\n", $i, ( $end - $sTime ), $query ); + $trace .= sprintf( "%d\t%.6f\t%s\n", $i, ( $end - $sTime ), $query ); } - $this->logger->info( $msg ); + $this->logger->info( "Sub-optimal transaction on DB(s) [{dbs}]: \n{trace}", [ + 'dbs' => implode( ', ', array_keys( $this->dbTrxHoldingLocks[$name]['conns'] ) ), + 'trace' => $trace + ] ); } unset( $this->dbTrxHoldingLocks[$name] ); unset( $this->dbTrxMethodTimes[$name] ); -- 2.20.1