diff options
Diffstat (limited to 'maintenance/stats.php')
-rw-r--r-- | maintenance/stats.php | 127 |
1 files changed, 79 insertions, 48 deletions
diff --git a/maintenance/stats.php b/maintenance/stats.php index 00f79ded..e20c345a 100644 --- a/maintenance/stats.php +++ b/maintenance/stats.php @@ -1,58 +1,89 @@ <?php /** - * Show statistics from memcached + * Show statistics from the cache + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * http://www.gnu.org/copyleft/gpl.html * - * @file * @ingroup Maintenance */ -require_once('commandLine.inc'); +require_once( dirname(__FILE__) . '/Maintenance.php' ); -if( get_class( $wgMemc ) == 'FakeMemCachedClient' ) { - die("You are running FakeMemCachedClient, I can not provide any statistics.\n"); -} -$session = intval($wgMemc->get(wfMemcKey('stats','request_with_session'))); -$noSession = intval($wgMemc->get(wfMemcKey('stats','request_without_session'))); -$total = $session + $noSession; -if ( $total == 0 ) { - die("You either have no stats or memcached isn't running. Aborting.\n"); +class CacheStats extends Maintenance { + + public function __construct() { + $this->mDescription = "Show statistics from the cache"; + } + + public function execute() { + global $wgMemc; + + // Can't do stats if + if( get_class( $wgMemc ) == 'FakeMemCachedClient' ) { + $this->error( "You are running FakeMemCachedClient, I can not provide any statistics.", true ); + } + $session = intval($wgMemc->get(wfMemcKey('stats','request_with_session'))); + $noSession = intval($wgMemc->get(wfMemcKey('stats','request_without_session'))); + $total = $session + $noSession; + if ( $total == 0 ) { + $this->error( "You either have no stats or the cache isn't running. Aborting.", true ); + } + $this->output( "Requests\n" ); + $this->output( sprintf( "with session: %-10d %6.2f%%\n", $session, $session/$total*100 ) ); + $this->output( sprintf( "without session: %-10d %6.2f%%\n", $noSession, $noSession/$total*100 ) ); + $this->output( sprintf( "total: %-10d %6.2f%%\n", $total, 100 ) ); + + + $this->output( "\nParser cache\n" ); + $hits = intval($wgMemc->get(wfMemcKey('stats','pcache_hit'))); + $invalid = intval($wgMemc->get(wfMemcKey('stats','pcache_miss_invalid'))); + $expired = intval($wgMemc->get(wfMemcKey('stats','pcache_miss_expired'))); + $absent = intval($wgMemc->get(wfMemcKey('stats','pcache_miss_absent'))); + $stub = intval($wgMemc->get(wfMemcKey('stats','pcache_miss_stub'))); + $total = $hits + $invalid + $expired + $absent + $stub; + $this->output( sprintf( "hits: %-10d %6.2f%%\n", $hits, $hits/$total*100 ) ); + $this->output( sprintf( "invalid: %-10d %6.2f%%\n", $invalid, $invalid/$total*100 ) ); + $this->output( sprintf( "expired: %-10d %6.2f%%\n", $expired, $expired/$total*100 ) ); + $this->output( sprintf( "absent: %-10d %6.2f%%\n", $absent, $absent/$total*100 ) ); + $this->output( sprintf( "stub threshold: %-10d %6.2f%%\n", $stub, $stub/$total*100 ) ); + $this->output( sprintf( "total: %-10d %6.2f%%\n", $total, 100 ) ); + + $hits = intval($wgMemc->get(wfMemcKey('stats','image_cache_hit'))); + $misses = intval($wgMemc->get(wfMemcKey('stats','image_cache_miss'))); + $updates = intval($wgMemc->get(wfMemcKey('stats','image_cache_update'))); + $total = $hits + $misses; + $this->output("\nImage cache\n"); + $this->output( sprintf( "hits: %-10d %6.2f%%\n", $hits, $hits/$total*100 ) ); + $this->output( sprintf( "misses: %-10d %6.2f%%\n", $misses, $misses/$total*100 ) ); + $this->output( sprintf( "updates: %-10d\n", $updates ) ); + + $hits = intval($wgMemc->get(wfMemcKey('stats','diff_cache_hit'))); + $misses = intval($wgMemc->get(wfMemcKey('stats','diff_cache_miss'))); + $uncacheable = intval($wgMemc->get(wfMemcKey('stats','diff_uncacheable'))); + $total = $hits + $misses + $uncacheable; + $this->output("\nDiff cache\n"); + $this->output( sprintf( "hits: %-10d %6.2f%%\n", $hits, $hits/$total*100 ) ); + $this->output( sprintf( "misses: %-10d %6.2f%%\n", $misses, $misses/$total*100 ) ); + $this->output( sprintf( "uncacheable: %-10d %6.2f%%\n", $uncacheable, $uncacheable/$total*100 ) ); + } } -print "Requests\n"; -printf( "with session: %-10d %6.2f%%\n", $session, $session/$total*100 ); -printf( "without session: %-10d %6.2f%%\n", $noSession, $noSession/$total*100 ); -printf( "total: %-10d %6.2f%%\n", $total, 100 ); - - -print "\nParser cache\n"; -$hits = intval($wgMemc->get(wfMemcKey('stats','pcache_hit'))); -$invalid = intval($wgMemc->get(wfMemcKey('stats','pcache_miss_invalid'))); -$expired = intval($wgMemc->get(wfMemcKey('stats','pcache_miss_expired'))); -$absent = intval($wgMemc->get(wfMemcKey('stats','pcache_miss_absent'))); -$stub = intval($wgMemc->get(wfMemcKey('stats','pcache_miss_stub'))); -$total = $hits + $invalid + $expired + $absent + $stub; -printf( "hits: %-10d %6.2f%%\n", $hits, $hits/$total*100 ); -printf( "invalid: %-10d %6.2f%%\n", $invalid, $invalid/$total*100 ); -printf( "expired: %-10d %6.2f%%\n", $expired, $expired/$total*100 ); -printf( "absent: %-10d %6.2f%%\n", $absent, $absent/$total*100 ); -printf( "stub threshold: %-10d %6.2f%%\n", $stub, $stub/$total*100 ); -printf( "total: %-10d %6.2f%%\n", $total, 100 ); - -$hits = intval($wgMemc->get(wfMemcKey('stats','image_cache_hit'))); -$misses = intval($wgMemc->get(wfMemcKey('stats','image_cache_miss'))); -$updates = intval($wgMemc->get(wfMemcKey('stats','image_cache_update'))); -$total = $hits + $misses; -print("\nImage cache\n"); -printf( "hits: %-10d %6.2f%%\n", $hits, $hits/$total*100 ); -printf( "misses: %-10d %6.2f%%\n", $misses, $misses/$total*100 ); -printf( "updates: %-10d\n", $updates ); - -$hits = intval($wgMemc->get(wfMemcKey('stats','diff_cache_hit'))); -$misses = intval($wgMemc->get(wfMemcKey('stats','diff_cache_miss'))); -$uncacheable = intval($wgMemc->get(wfMemcKey('stats','diff_uncacheable'))); -$total = $hits + $misses + $uncacheable; -print("\nDiff cache\n"); -printf( "hits: %-10d %6.2f%%\n", $hits, $hits/$total*100 ); -printf( "misses: %-10d %6.2f%%\n", $misses, $misses/$total*100 ); -printf( "uncacheable: %-10d %6.2f%%\n", $uncacheable, $uncacheable/$total*100 ); + +$maintClass = "CacheStats"; +require_once( DO_MAINTENANCE ); + + |