Deprecated $wgUDPProfilerHost, $wgUDPProfilerPort and $wgUDPProfilerFormatString
authorChad Horohoe <chadh@wikimedia.org>
Wed, 3 Dec 2014 18:49:48 +0000 (10:49 -0800)
committerChad Horohoe <chadh@wikimedia.org>
Wed, 3 Dec 2014 19:13:00 +0000 (11:13 -0800)
All can be passed as options to $wgProfiler now.

Change-Id: I49c0a83e0d386be0f66d6703fc358089e4b1f59f

includes/DefaultSettings.php
includes/profiler/output/ProfilerOutputUdp.php

index 7523193..7e23763 100644 (file)
@@ -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
index a938861..d5c7e5c 100644 (file)
  * @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 );
        }
 }