public function DrupalMonitorController::drupalmonitor in Drupalmonitor 8
Callback for /drupalmonitor.
Parameters
\Symfony\Component\HttpFoundation\Request $request:
Return value
\Symfony\Component\HttpFoundation\JsonResponse
1 string reference to 'DrupalMonitorController::drupalmonitor'
File
- src/
Controller/ DrupalMonitorController.php, line 68
Class
- DrupalMonitorController
- Class DrupalmonitorController.
Namespace
Drupal\drupalmonitor\ControllerCode
public function drupalmonitor(Request $request) {
Timer::start('drupalmonitor');
// Check whether Hash is set.
if (!$request->query
->has('hash')) {
return new JsonResponse([
'note' => 'no hash set',
], 400);
}
// Check whether Hash is empty.
$hash_request = $request->query
->get('hash');
if (!$hash_request) {
return new JsonResponse([
'note' => 'hash is empty',
], 400);
}
// Get saved Hash.
$hash_site = $this->drupalMonitorSettings
->getHash();
// Check whether the saved Hash is exists and has a value.
if (empty($hash_site)) {
return new JsonResponse([
'note' => 'You have not set a drupalmonitor hash yet on your Drupal site.',
], 400);
}
// Compare Hashes.
if ($hash_site != $hash_request) {
return new JsonResponse([
'note' => 'Wrong hash',
], 400);
}
// Output versions.
$info['drupalmonitor_version'] = DRUPALMONITOR_VERSION;
$info['drupalversion'] = \Drupal::VERSION;
// Add allowed Monitorings.
$check_allowed = [
'files' => $this->drupalMonitorSettings
->isFilesMonitoringEnabled(),
'server' => $this->drupalMonitorSettings
->isServerMonitoringEnabled(),
'user' => $this->drupalMonitorSettings
->isUserMonitoringEnabled(),
'node' => $this->drupalMonitorSettings
->isNodeMonitoringEnabled(),
'modules' => $this->drupalMonitorSettings
->isModulesMonitoringEnabled(),
'variables' => $this->drupalMonitorSettings
->isVariablesMonitoringEnabled(),
];
$filtered_allowed = array_filter($check_allowed, function ($value, $key) {
return $value;
}, ARRAY_FILTER_USE_BOTH);
$info['drupalmonitor_allowed'] = 'data=' . implode(',', array_keys($filtered_allowed));
// If specific data is being requested.
if ($request->query
->has('data')) {
$requested_data = explode(',', $request->query
->get('data'));
// Server metrics.
if (in_array('server', $requested_data) && $this->drupalMonitorSettings
->isServerMonitoringEnabled()) {
$info['server'] = $this->metricService
->getServerData();
}
// User user count data.
if (in_array('user', $requested_data) && $this->drupalMonitorSettings
->isUserMonitoringEnabled()) {
$info['user']['user_usercount'] = $this->metricService
->getUserCount();
$info['user']['user_activesessioncount_300s'] = $this->metricService
->getActiveSessionsCount();
$info['user']['user_loggedinsessioncount_300s'] = $this->metricService
->getLoggedInSessionsCount();
}
// Files files count data.
if (in_array('files', $requested_data) && $this->drupalMonitorSettings
->isFilesMonitoringEnabled()) {
$info['files']['files_filescount'] = $this->metricService
->getFilesCount();
$info['files']['files_filesfoldersize'] = $this->metricService
->getTotalFilesSize();
}
// Node content types data.
if (in_array('node', $requested_data) && $this->drupalMonitorSettings
->isNodeMonitoringEnabled()) {
$info['nodes']['drupalmonitor_node_contenttypes'] = $this->metricService
->getNodeContentTypes();
}
// Module metrics.
if (in_array('modules', $requested_data) && $this->drupalMonitorSettings
->isModulesMonitoringEnabled()) {
$info['tbl_system'] = $this->metricService
->getModuleList();
}
// Variables metrics.
if (in_array('variables', $requested_data) && $this->drupalMonitorSettings
->isVariablesMonitoringEnabled()) {
$info['config'] = $this->metricService
->getConfigList();
}
}
// Drupalmonitor infos.
$info['drupalmonitor_executiontime'] = Timer::read('drupalmonitor');
$info['drupalmonitor_status'] = "OK";
return new JsonResponse($info);
}