]> scripts.mit.edu Git - autoinstalls/mediawiki.git/blob - maintenance/lag.php
MediaWiki 1.17.1-scripts
[autoinstalls/mediawiki.git] / maintenance / lag.php
1 <?php
2
3 /**
4  * Shows database lag
5  *
6  * @ingroup Maintenance
7  */
8
9 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
10
11 class DatabaseLag extends Maintenance {
12         public function __construct() {
13                 parent::__construct();
14                 $this->mDescription = "Shows database lag";
15                 $this->addOption( 'r', "Don't exit immediately, but show the lag every 5 seconds" );
16         }
17
18         public function execute() {
19                 if ( $this->hasOption( 'r' ) ) {
20                         $lb = wfGetLB();
21                         echo 'time     ';
22                         for ( $i = 1; $i < $lb->getServerCount(); $i++ ) {
23                                 $hostname = $lb->getServerName( $i );
24                                 printf( "%-12s ", $hostname );
25                         }
26                         echo "\n";
27
28                         while ( 1 ) {
29                                 $lb->clearLagTimeCache();
30                                 $lags = $lb->getLagTimes();
31                                 unset( $lags[0] );
32                                 echo gmdate( 'H:i:s' ) . ' ';
33                                 foreach ( $lags as $lag ) {
34                                         printf( "%-12s " , $lag === false ? 'false' : $lag );
35                                 }
36                                 echo "\n";
37                                 sleep( 5 );
38                         }
39                 } else {
40                         $lb = wfGetLB();
41                         $lags = $lb->getLagTimes();
42                         foreach ( $lags as $i => $lag ) {
43                                 $name = $lb->getServerName( $i );
44                                 $this->output( sprintf( "%-20s %s\n" , $name, $lag === false ? 'false' : $lag ) );
45                         }
46                 }
47         }
48 }
49
50 $maintClass = "DatabaseLag";
51 require_once( RUN_MAINTENANCE_IF_MAIN );