diff --git a/src/EnvironmentCheckSuite.php b/src/EnvironmentCheckSuite.php index 3950126..2cf0afb 100644 --- a/src/EnvironmentCheckSuite.php +++ b/src/EnvironmentCheckSuite.php @@ -99,7 +99,7 @@ class EnvironmentCheckSuite } /** - * Run this test suite and return the result code of the worst result. + * Run this test suite and return the result code of the worst result and the time it took. * * @return EnvironmentCheckSuiteResult */ @@ -110,13 +110,15 @@ class EnvironmentCheckSuite foreach ($this->checkInstances() as $check) { list($checkClass, $checkTitle) = $check; try { + $startTime = microtime(true); list($status, $message) = $checkClass->check(); + $responseTime = number_format((microtime(true) - $startTime), 4, '.', '') . 's'; // If the check fails, register that as an error } catch (Exception $e) { $status = EnvironmentCheck::ERROR; $message = $e->getMessage(); } - $result->addResult($status, $message, $checkTitle); + $result->addResult($status, $message, $checkTitle, $responseTime); } return $result; diff --git a/src/EnvironmentCheckSuiteResult.php b/src/EnvironmentCheckSuiteResult.php index aa61dcc..8a023c8 100644 --- a/src/EnvironmentCheckSuiteResult.php +++ b/src/EnvironmentCheckSuiteResult.php @@ -35,12 +35,13 @@ class EnvironmentCheckSuiteResult extends ViewableData * @param string $message * @param string $checkIdentifier */ - public function addResult($status, $message, $checkIdentifier) + public function addResult($status, $message, $checkIdentifier, $responseTime) { $this->details->push(new ArrayData([ 'Check' => $checkIdentifier, 'Status' => $this->statusText($status), 'StatusCode' => $status, + 'ResponseTime' => $responseTime, 'Message' => $message, ])); diff --git a/templates/SilverStripe/EnvironmentCheck/EnvironmentChecker.ss b/templates/SilverStripe/EnvironmentCheck/EnvironmentChecker.ss index dc2bab7..8cb1ed0 100644 --- a/templates/SilverStripe/EnvironmentCheck/EnvironmentChecker.ss +++ b/templates/SilverStripe/EnvironmentCheck/EnvironmentChecker.ss @@ -66,9 +66,9 @@ <% if $IncludeDetails %> - + <% loop $Details %> - + <% end_loop %>
Check Status Message
Check Status Response Time Message
$Check $Status $Message.XML
$Check $Status $ResponseTime $Message.XML
<% end_if %>