X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Flibs%2Frdbms%2FTransactionProfiler.php;h=43b6f88704c91442d505b100d0e703979b206a97;hp=823e0dc5cd3f6dd8c16a1875bba38a97dd996d73;hb=d5a7166771613dfe4ed9fb75fa5efeced6134bd1;hpb=d18cf170d55f963bfa97c0c90e48f12c9fbf1193 diff --git a/includes/libs/rdbms/TransactionProfiler.php b/includes/libs/rdbms/TransactionProfiler.php index 823e0dc5cd..43b6f88704 100644 --- a/includes/libs/rdbms/TransactionProfiler.php +++ b/includes/libs/rdbms/TransactionProfiler.php @@ -19,7 +19,6 @@ * * @file * @ingroup Profiler - * @author Aaron Schulz */ namespace Wikimedia\Rdbms; @@ -156,11 +155,13 @@ class TransactionProfiler implements LoggerAwareInterface { */ public function recordConnection( $server, $db, $isMaster ) { // Report when too many connections happen... - if ( $this->hits['conns']++ == $this->expect['conns'] ) { - $this->reportExpectationViolated( 'conns', "[connect to $server ($db)]" ); + if ( $this->hits['conns']++ >= $this->expect['conns'] ) { + $this->reportExpectationViolated( + 'conns', "[connect to $server ($db)]", $this->hits['conns'] ); } - if ( $isMaster && $this->hits['masterConns']++ == $this->expect['masterConns'] ) { - $this->reportExpectationViolated( 'masterConns', "[connect to $server ($db)]" ); + if ( $isMaster && $this->hits['masterConns']++ >= $this->expect['masterConns'] ) { + $this->reportExpectationViolated( + 'masterConns', "[connect to $server ($db)]", $this->hits['masterConns'] ); } } @@ -211,11 +212,11 @@ class TransactionProfiler implements LoggerAwareInterface { } // Report when too many writes/queries happen... - if ( $this->hits['queries']++ == $this->expect['queries'] ) { - $this->reportExpectationViolated( 'queries', $query ); + if ( $this->hits['queries']++ >= $this->expect['queries'] ) { + $this->reportExpectationViolated( 'queries', $query, $this->hits['queries'] ); } - if ( $isWrite && $this->hits['writes']++ == $this->expect['writes'] ) { - $this->reportExpectationViolated( 'writes', $query ); + if ( $isWrite && $this->hits['writes']++ >= $this->expect['writes'] ) { + $this->reportExpectationViolated( 'writes', $query, $this->hits['writes'] ); } // Report slow queries... if ( !$isWrite && $elapsed > $this->expect['readQueryTime'] ) { @@ -328,20 +329,23 @@ class TransactionProfiler implements LoggerAwareInterface { /** * @param string $expect * @param string $query - * @param string|float|int $actual [optional] + * @param string|float|int $actual */ - protected function reportExpectationViolated( $expect, $query, $actual = null ) { + protected function reportExpectationViolated( $expect, $query, $actual ) { if ( $this->silenced ) { return; } - $n = $this->expect[$expect]; - $by = $this->expectBy[$expect]; - $actual = ( $actual !== null ) ? " (actual: $actual)" : ""; - $this->logger->info( - "Expectation ($expect <= $n) by $by not met$actual:\n$query\n" . - ( new RuntimeException() )->getTraceAsString() + "Expectation ({measure} <= {max}) by {by} not met (actual: {actual}):\n{query}\n" . + ( new RuntimeException() )->getTraceAsString(), + [ + 'measure' => $expect, + 'max' => $this->expect[$expect], + 'by' => $this->expectBy[$expect], + 'actual' => $actual, + 'query' => $query + ] ); } }