From 2043b3e14f5cd3ce6f51234d95505e10e7b644fb Mon Sep 17 00:00:00 2001 From: Max Semenik Date: Thu, 27 Jul 2017 14:31:42 -0700 Subject: [PATCH] Record user login timing Not using existing Timing class because it makes sense only if request start time is needed, otherwise it just introduces unneeded complexity and dependency. Bug: T171882 Change-Id: I984c9223a4481685a7bcb659a68002c8ec4d122a --- includes/specialpage/LoginSignupSpecialPage.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/includes/specialpage/LoginSignupSpecialPage.php b/includes/specialpage/LoginSignupSpecialPage.php index 0600642476..9d6fd5bad0 100644 --- a/includes/specialpage/LoginSignupSpecialPage.php +++ b/includes/specialpage/LoginSignupSpecialPage.php @@ -26,7 +26,9 @@ use MediaWiki\Auth\AuthenticationResponse; use MediaWiki\Auth\AuthManager; use MediaWiki\Auth\Throttler; use MediaWiki\Logger\LoggerFactory; +use MediaWiki\MediaWikiServices; use MediaWiki\Session\SessionManager; +use Wikimedia\ScopedCallback; /** * Holds shared logic for login and account creation pages. @@ -212,6 +214,15 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage { * @param string|null $subPage */ public function execute( $subPage ) { + if ( $this->mPosted ) { + $time = microtime( true ); + $profilingScope = new ScopedCallback( function () use ( $time ) { + $time = microtime( true ) - $time; + $statsd = MediaWikiServices::getInstance()->getStatsdDataFactory(); + $statsd->timing( "timing.login.ui.{$this->authAction}", $time * 1000 ); + } ); + } + $authManager = AuthManager::singleton(); $session = SessionManager::getGlobalSession(); -- 2.20.1