[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Profiler sending messages over UDP. 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License along 16 * with this program; if not, write to the Free Software Foundation, Inc., 17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 * http://www.gnu.org/copyleft/gpl.html 19 * 20 * @file 21 * @ingroup Profiler 22 */ 23 24 /** 25 * ProfilerSimpleUDP class, that sends out messages for 'udpprofile' daemon 26 * (the one from 27 * http://git.wikimedia.org/tree/operations%2Fsoftware.git/master/udpprofile) 28 * @ingroup Profiler 29 */ 30 class ProfilerSimpleUDP extends ProfilerStandard { 31 protected function collateOnly() { 32 return true; 33 } 34 35 public function isPersistent() { 36 return true; 37 } 38 39 public function logData() { 40 global $wgUDPProfilerHost, $wgUDPProfilerPort, $wgUDPProfilerFormatString; 41 42 $this->close(); 43 44 if ( !function_exists( 'socket_create' ) ) { 45 # Sockets are not enabled 46 return; 47 } 48 49 $sock = socket_create( AF_INET, SOCK_DGRAM, SOL_UDP ); 50 $plength = 0; 51 $packet = ""; 52 foreach ( $this->mCollated as $entry => $pfdata ) { 53 if ( !isset( $pfdata['count'] ) 54 || !isset( $pfdata['cpu'] ) 55 || !isset( $pfdata['cpu_sq'] ) 56 || !isset( $pfdata['real'] ) 57 || !isset( $pfdata['real_sq'] ) ) { 58 continue; 59 } 60 $pfline = sprintf( $wgUDPProfilerFormatString, $this->getProfileID(), $pfdata['count'], 61 $pfdata['cpu'], $pfdata['cpu_sq'], $pfdata['real'], $pfdata['real_sq'], $entry, 62 $pfdata['memory'] ); 63 $length = strlen( $pfline ); 64 /* printf("<!-- $pfline -->"); */ 65 if ( $length + $plength > 1400 ) { 66 socket_sendto( $sock, $packet, $plength, 0, $wgUDPProfilerHost, $wgUDPProfilerPort ); 67 $packet = ""; 68 $plength = 0; 69 } 70 $packet .= $pfline; 71 $plength += $length; 72 } 73 socket_sendto( $sock, $packet, $plength, 0x100, $wgUDPProfilerHost, $wgUDPProfilerPort ); 74 } 75 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 14:03:12 2014 | Cross-referenced by PHPXref 0.7.1 |