class DrupalMonitorController in Drupalmonitor 8
Class DrupalmonitorController.
@package Drupal\drupalmonitor\Controller
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\drupalmonitor\Controller\DrupalMonitorController
Expanded class hierarchy of DrupalMonitorController
File
- src/
Controller/ DrupalMonitorController.php, line 18
Namespace
Drupal\drupalmonitor\ControllerView source
class DrupalMonitorController extends ControllerBase {
/**
* Drupal Monitor Settings.
*
* @var \Drupal\drupalmonitor\Settings
*/
protected $drupalMonitorSettings;
/**
* Metric Service.
*
* @var \Drupal\drupalmonitor\MetricService
*/
protected $metricService;
/**
* DrupalmonitorController constructor.
*
* @param \Drupal\drupalmonitor\Settings $drupal_monitor_settings
* Drupal Monitor Settings.
* @param \Drupal\drupalmonitor\MetricService $metric_service
* Metric Service.
*/
public function __construct(Settings $drupal_monitor_settings, MetricService $metric_service) {
$this->drupalMonitorSettings = $drupal_monitor_settings;
$this->metricService = $metric_service;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('drupalmonitor.settings'), $container
->get('drupalmonitor.metric_service'));
}
/**
* Callback for /drupalmonitor.
*
* @param \Symfony\Component\HttpFoundation\Request $request
*
* @return \Symfony\Component\HttpFoundation\JsonResponse
*/
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);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The entity manager. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The module handler. | 2 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity manager service. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
ControllerBase:: |
protected | function | Returns the state storage service. | |
DrupalMonitorController:: |
protected | property | Drupal Monitor Settings. | |
DrupalMonitorController:: |
protected | property | Metric Service. | |
DrupalMonitorController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
DrupalMonitorController:: |
public | function | Callback for /drupalmonitor. | |
DrupalMonitorController:: |
public | function | DrupalmonitorController constructor. | |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |