From 10f0683134e1b23fea30f76ccc401e66f50e068a Mon Sep 17 00:00:00 2001 From: Chad Horohoe Date: Wed, 3 Dec 2014 10:49:48 -0800 Subject: [PATCH] Deprecated $wgUDPProfilerHost, $wgUDPProfilerPort and $wgUDPProfilerFormatString All can be passed as options to $wgProfiler now. Change-Id: I49c0a83e0d386be0f66d6703fc358089e4b1f59f --- includes/DefaultSettings.php | 12 ++++-- .../profiler/output/ProfilerOutputUdp.php | 41 ++++++++++++++++--- 2 files changed, 45 insertions(+), 8 deletions(-) diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 7523193f29..7e237636f5 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -5387,14 +5387,18 @@ $wgProfilePerHost = false; * 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 = '127.0.0.1'; +$wgUDPProfilerHost = null; /** * Port for UDP profiler. * @see $wgUDPProfilerHost + * + * @deprecated set $wgProfiler['udpport'] instead */ -$wgUDPProfilerPort = '3811'; +$wgUDPProfilerPort = null; /** * Format string for the UDP profiler. The UDP profiler invokes sprintf() with @@ -5404,8 +5408,10 @@ $wgUDPProfilerPort = '3811'; * * @see $wgStatsFormatString * @since 1.22 + * + * @deprecated set $wgProfiler['udpformat'] instead */ -$wgUDPProfilerFormatString = "%s - %d %f %f %f %f %s\n"; +$wgUDPProfilerFormatString = null; /** * Output debug message on every wfProfileIn/wfProfileOut diff --git a/includes/profiler/output/ProfilerOutputUdp.php b/includes/profiler/output/ProfilerOutputUdp.php index a938861f79..d5c7e5c54f 100644 --- a/includes/profiler/output/ProfilerOutputUdp.php +++ b/includes/profiler/output/ProfilerOutputUdp.php @@ -29,19 +29,50 @@ * @since 1.25 */ class ProfilerOutputUdp extends ProfilerOutput { + /** @var int port to send profiling data to */ + private $port = 3811; + + /** @var string host to send profiling data to */ + private $host = '127.0.0.1'; + + /** @var string format string for profiling data */ + private $format = "%s - %d %f %f %f %f %s\n"; + + 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; + } + } + public function canUse() { # Sockets are not enabled return function_exists( 'socket_create' ); } public function log( array $stats ) { - global $wgUDPProfilerHost, $wgUDPProfilerPort, $wgUDPProfilerFormatString; - $sock = socket_create( AF_INET, SOCK_DGRAM, SOL_UDP ); $plength = 0; $packet = ""; foreach ( $stats as $pfdata ) { - $pfline = sprintf( $wgUDPProfilerFormatString, + $pfline = sprintf( $this->format, $this->collector->getProfileID(), $pfdata['calls'], $pfdata['cpu'] / 1000, // ms => sec @@ -53,13 +84,13 @@ class ProfilerOutputUdp extends ProfilerOutput { ); $length = strlen( $pfline ); if ( $length + $plength > 1400 ) { - socket_sendto( $sock, $packet, $plength, 0, $wgUDPProfilerHost, $wgUDPProfilerPort ); + socket_sendto( $sock, $packet, $plength, 0, $this->host, $this->port ); $packet = ""; $plength = 0; } $packet .= $pfline; $plength += $length; } - socket_sendto( $sock, $packet, $plength, 0x100, $wgUDPProfilerHost, $wgUDPProfilerPort ); + socket_sendto( $sock, $packet, $plength, 0x100, $this->host, $this->port ); } } -- 2.20.1