From f4a07ea296fc9752f703723ef4bc2d2c6dcd54ab Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Wed, 16 Dec 2015 11:42:12 -0800 Subject: [PATCH] Make ApiStashEdit use statsd metrics Change-Id: Iffdeae7f867490e3c69c4b6d79a5f844cb7fce23 --- includes/api/ApiStashEdit.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/includes/api/ApiStashEdit.php b/includes/api/ApiStashEdit.php index 208e9ca880..701f0a9b81 100644 --- a/includes/api/ApiStashEdit.php +++ b/includes/api/ApiStashEdit.php @@ -252,6 +252,7 @@ class ApiStashEdit extends ApiBase { public static function checkCache( Title $title, Content $content, User $user ) { $cache = ObjectCache::getLocalClusterInstance(); $logger = LoggerFactory::getInstance( 'StashEdit' ); + $stats = RequestContext::getMain()->getStats(); $key = self::getStashKey( $title, $content, $user ); $editInfo = $cache->get( $key ); @@ -267,19 +268,20 @@ class ApiStashEdit extends ApiBase { $editInfo = $cache->get( $key ); $dbw->unlock( $key, __METHOD__ ); } - $sec = microtime( true ) - $start; - if ( $sec > .01 ) { - $logger->warning( "Waited $sec seconds on '$key'." ); - } + + $timeMs = 1000 * max( 0, microtime( true ) - $start ); + $stats->timing( 'editstash.lock-wait-time', $timeMs ); } if ( !is_object( $editInfo ) || !$editInfo->output ) { + $stats->increment( 'editstash.cache-misses' ); $logger->debug( "No cache value for key '$key'." ); return false; } $time = wfTimestamp( TS_UNIX, $editInfo->output->getTimestamp() ); if ( ( time() - $time ) <= 3 ) { + $stats->increment( 'editstash.cache-hits' ); $logger->debug( "Timestamp-based cache hit for key '$key'." ); return $editInfo; // assume nothing changed } @@ -308,6 +310,7 @@ class ApiStashEdit extends ApiBase { } if ( $changed || $res->numRows() != $templateUses ) { + $stats->increment( 'editstash.cache-misses' ); $logger->info( "Stale cache for key '$key'; template changed." ); return false; } @@ -331,11 +334,13 @@ class ApiStashEdit extends ApiBase { } if ( $changed || $res->numRows() != count( $files ) ) { + $stats->increment( 'editstash.cache-misses' ); $logger->info( "Stale cache for key '$key'; file changed." ); return false; } } + $stats->increment( 'editstash.cache-hits' ); $logger->debug( "Cache hit for key '$key'." ); return $editInfo; -- 2.20.1