X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=maintenance%2FgetLagTimes.php;h=ad2fdf88fc383a94fd2e08412229931ea6b875a7;hp=677bfa223fa84f25d5706911152b9134428e2146;hb=ffba23d177d5eee876bdc59cdf1b945281b18041;hpb=dcdb8e463e3b2be121c61c91df13ea36d270a602 diff --git a/maintenance/getLagTimes.php b/maintenance/getLagTimes.php index 677bfa223f..ad2fdf88fc 100644 --- a/maintenance/getLagTimes.php +++ b/maintenance/getLagTimes.php @@ -38,30 +38,37 @@ class GetLagTimes extends Maintenance { } public function execute() { - $lbFactory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory(); - $stats = MediaWikiServices::getInstance()->getStatsdDataFactory(); + $services = MediaWikiServices::getInstance(); + $lbFactory = $services->getDBLoadBalancerFactory(); + $stats = $services->getStatsdDataFactory(); + $lbsByType = [ + 'main' => $lbFactory->getAllMainLBs(), + 'external' => $lbFactory->getAllExternalLBs() + ]; - $lbs = $lbFactory->getAllMainLBs() + $lbFactory->getAllExternalLBs(); - foreach ( $lbs as $cluster => $lb ) { - if ( $lb->getServerCount() <= 1 ) { - continue; - } - $lags = $lb->getLagTimes(); - foreach ( $lags as $serverIndex => $lag ) { - $host = $lb->getServerName( $serverIndex ); - if ( IP::isValid( $host ) ) { - $ip = $host; - $host = gethostbyaddr( $host ); - } else { - $ip = gethostbyname( $host ); + foreach ( $lbsByType as $type => $lbs ) { + foreach ( $lbs as $cluster => $lb ) { + if ( $lb->getServerCount() <= 1 ) { + continue; } + $lags = $lb->getLagTimes(); + foreach ( $lags as $serverIndex => $lag ) { + $host = $lb->getServerName( $serverIndex ); + if ( IP::isValid( $host ) ) { + $ip = $host; + $host = gethostbyaddr( $host ); + } else { + $ip = gethostbyname( $host ); + } - $starLen = min( intval( $lag ), 40 ); - $stars = str_repeat( '*', $starLen ); - $this->output( sprintf( "%10s %20s %3d %s\n", $ip, $host, $lag, $stars ) ); + $starLen = min( intval( $lag ), 40 ); + $stars = str_repeat( '*', $starLen ); + $this->output( sprintf( "%10s %20s %3d %s\n", $ip, $host, $lag, $stars ) ); - if ( $this->hasOption( 'report' ) ) { - $stats->gauge( "loadbalancer.lag.$cluster.$host", $lag ); + if ( $this->hasOption( 'report' ) ) { + $group = ( $type === 'external' ) ? 'external' : $cluster; + $stats->gauge( "loadbalancer.lag.$group.$host", intval( $lag * 1e3 ) ); + } } } }