From 7dba64f2c1195e8b8a2a2fa0f119fee845b7da4b Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Thu, 4 Dec 2014 21:40:13 +0000 Subject: [PATCH] Revert "Remove deprecated profiling config parameters, clarify docs" StatCounter still needs $wgUDPProfilerHost. This reverts commit 88c42dc1df93533286dfbe969631403f77958dca. Change-Id: I4a56f6fb6bc454d15a9dc752f45dfb29b2b47a84 --- RELEASE-NOTES-1.25 | 9 +--- StartProfiler.sample | 6 +-- includes/DefaultSettings.php | 47 +++++++++++++++++++ includes/Setup.php | 5 ++ includes/profiler/Profiler.php | 1 - includes/profiler/output/ProfilerOutputDb.php | 3 ++ .../profiler/output/ProfilerOutputUdp.php | 7 +++ 7 files changed, 64 insertions(+), 14 deletions(-) diff --git a/RELEASE-NOTES-1.25 b/RELEASE-NOTES-1.25 index e2449c18fa..ce825e553f 100644 --- a/RELEASE-NOTES-1.25 +++ b/RELEASE-NOTES-1.25 @@ -19,15 +19,8 @@ production. * (T74951) The UserGetLanguageObject hook may be passed any IContextSource for its $context parameter. Formerly it was documented as receiving a RequestContext specifically. -* BREAKING CHANGE: Profiling was restructured and $wgProfiler will require - reconfiguration. Notably, it now needs an 'output' parameter. Using normal - MediaWiki profiling requires setting the class to 'ProfilerStandard.' - Xhprof-backed profiling is also now available. +* Profiling was restructured and $wgProfiler now requires an 'output' parameter. See StartProfiler.sample for details. -* BREAKING CHANGE: $wgProfilePerHost, $wgUDPProfilerHost, $wgUDPProfilerPort - and $wgUDPProfilerFormatString have been removed in favor of similar parameters - to $wgProfiler. See StartProfiler.sample for details. -* $wgProfileOnly was removed, deprecated in 1.23 * $wgMangleFlashPolicy was added to make MediaWiki's mangling of anything that might be a flash policy directive configurable. * ApiOpenSearch now supports XML output. The OpenSearchXml extension should no diff --git a/StartProfiler.sample b/StartProfiler.sample index fad43b5699..d20c0e1bd9 100644 --- a/StartProfiler.sample +++ b/StartProfiler.sample @@ -19,11 +19,7 @@ * $wgProfiler['visible'] = true; * * The 'db' output expects a database table that can be created by applying - * maintenance/archives/patch-profiling.sql to your database. You can also - * set $wgProfiler['perHost'] to true to store this data on a per-host basis. - * - * 'udp' also has additional parameters of 'udphost', 'udpport' and 'udpformat' - * for the destination host, port and line format. + * maintenance/archives/patch-profiling.sql to your database. * * For a rudimentary sampling profiler: * $wgProfiler['class'] = 'ProfilerStandard'; diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 8a1aa47a12..e644e09884 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -5370,11 +5370,58 @@ $wgDeprecationReleaseLimit = false; */ $wgProfileLimit = 0.0; +/** + * Don't put non-profiling info into log file + * + * @deprecated since 1.23, set the log file in + * $wgDebugLogGroups['profileoutput'] instead. + */ +$wgProfileOnly = false; + /** * If true, print a raw call tree instead of per-function report */ $wgProfileCallTree = false; +/** + * Should application server host be put into profiling table + * + * @deprecated set $wgProfiler['perhost'] = true instead + */ +$wgProfilePerHost = null; + +/** + * Host for UDP profiler. + * + * The host should be running a daemon which can be obtained from MediaWiki + * Git at: + * http://git.wikimedia.org/tree/operations%2Fsoftware.git/master/udpprofile + * + * @deprecated set $wgProfiler['udphost'] instead + */ +$wgUDPProfilerHost = null; + +/** + * Port for UDP profiler. + * @see $wgUDPProfilerHost + * + * @deprecated set $wgProfiler['udpport'] instead + */ +$wgUDPProfilerPort = null; + +/** + * Format string for the UDP profiler. The UDP profiler invokes sprintf() with + * (profile id, count, cpu, cpu_sq, real, real_sq, entry name, memory) as + * arguments. You can use sprintf's argument numbering/swapping capability to + * repeat, re-order or omit fields. + * + * @see $wgStatsFormatString + * @since 1.22 + * + * @deprecated set $wgProfiler['udpformat'] instead + */ +$wgUDPProfilerFormatString = null; + /** * Output debug message on every wfProfileIn/wfProfileOut */ diff --git a/includes/Setup.php b/includes/Setup.php index 1777e43af5..f61de7eb6d 100644 --- a/includes/Setup.php +++ b/includes/Setup.php @@ -453,6 +453,11 @@ if ( $wgRateLimitLog && !array_key_exists( 'ratelimit', $wgDebugLogGroups ) ) { $wgDebugLogGroups['ratelimit'] = $wgRateLimitLog; } +if ( $wgProfileOnly ) { + $wgDebugLogGroups['profileoutput'] = $wgDebugLogFile; + $wgDebugLogFile = ''; +} + wfProfileOut( $fname . '-defaults' ); // Disable MWDebug for command line mode, this prevents MWDebug from eating up diff --git a/includes/profiler/Profiler.php b/includes/profiler/Profiler.php index e59b09e6e2..2be142fc6c 100644 --- a/includes/profiler/Profiler.php +++ b/includes/profiler/Profiler.php @@ -77,7 +77,6 @@ abstract class Profiler { if ( PHP_SAPI === 'cli' || mt_rand( 0, $factor - 1 ) != 0 ) { $class = 'ProfilerStub'; } - /** @var Profiler */ self::$__instance = new $class( $wgProfiler ); } else { self::$__instance = new ProfilerStub( array() ); diff --git a/includes/profiler/output/ProfilerOutputDb.php b/includes/profiler/output/ProfilerOutputDb.php index 5efb3ab241..ab428027e9 100644 --- a/includes/profiler/output/ProfilerOutputDb.php +++ b/includes/profiler/output/ProfilerOutputDb.php @@ -33,10 +33,13 @@ class ProfilerOutputDb extends ProfilerOutput { public function __construct( Profiler $collector, array $params ) { parent::__construct( $collector, $params ); + global $wgProfilePerHost; // Initialize per-host profiling from config, back-compat if available if ( isset( $this->params['perHost'] ) ) { $this->perHost = $this->params['perHost']; + } elseif( $wgProfilePerHost ) { + $this->perHost = $wgProfilePerHost; } } diff --git a/includes/profiler/output/ProfilerOutputUdp.php b/includes/profiler/output/ProfilerOutputUdp.php index e8a73e086a..d5c7e5c54f 100644 --- a/includes/profiler/output/ProfilerOutputUdp.php +++ b/includes/profiler/output/ProfilerOutputUdp.php @@ -40,18 +40,25 @@ class ProfilerOutputUdp extends ProfilerOutput { public function __construct( Profiler $collector, array $params ) { parent::__construct( $collector, $params ); + global $wgUDPProfilerPort, $wgUDPProfilerHost, $wgUDPProfilerFormatString; // Initialize port, host, and format from config, back-compat if available if ( isset( $this->params['udpport'] ) ) { $this->port = $this->params['udpport']; + } elseif( $wgUDPProfilerPort ) { + $this->port = $wgUDPProfilerPort; } if ( isset( $this->params['udphost'] ) ) { $this->host = $this->params['udphost']; + } elseif( $wgUDPProfilerHost ) { + $this->host = $wgUDPProfilerHost; } if ( isset( $this->params['udpformat'] ) ) { $this->format = $this->params['udpformat']; + } elseif( $wgUDPProfilerFormatString ) { + $this->format = $wgUDPProfilerFormatString; } } -- 2.20.1