class SensorInfo in Monitoring 7
Represents a sensor info as defined in hook_monitoring_sensor_info().
@todo more
Hierarchy
- class \Drupal\monitoring\Sensor\SensorInfo
Expanded class hierarchy of SensorInfo
9 files declare their use of SensorInfo
- monitoring.admin.inc in ./
monitoring.admin.inc - Admin page/form callbacks.
- monitoring.module in ./
monitoring.module - Monitoring bootstrap file.
- monitoring.services.test in test/
tests/ monitoring.services.test - Contains \MonitoringServicesTest.
- monitoring_icinga.module in modules/
monitoring_icinga/ monitoring_icinga.module - Monitoring Nagios module bootstrap file.
- monitoring_munin.install in modules/
monitoring_munin/ monitoring_munin.install - Monitoring munin install file.
File
- lib/
Drupal/ monitoring/ Sensor/ SensorInfo.php, line 14 - Contains \Drupal\monitoring\Sensor\SensorInfo.
Namespace
Drupal\monitoring\SensorView source
class SensorInfo {
/**
* The sensor name.
*
* @var string
*/
protected $sensorName;
/**
* The sensor info array.
*
* @var array
*/
protected $sensorInfo;
/**
* Instantiates sensor info object.
*
* Note that sensor_info is unchecked and needs to be well defined.
*
* @see hook_monitoring_sensor_info().
*
* @param string $sensor_name
* Sensor name.
* @param array $sensor_info
* Sensor info.
*/
function __construct($sensor_name, array $sensor_info) {
$this->sensorName = $sensor_name;
$this->sensorInfo = $sensor_info;
}
/**
* Gets sensor name.
*
* @return string
* Sensor name.
*/
public function getName() {
return $this->sensorName;
}
/**
* Gets sensor label.
*
* The sensor label might not be self-explaining enough or unique without
* the category, the category should always be present when the label is
* displayed.
*
* @return string
* Sensor label.
*/
public function getLabel() {
return $this->sensorInfo['label'];
}
/**
* Gets sensor description.
*
* @return string
* Sensor description.
*/
public function getDescription() {
return $this->sensorInfo['description'];
}
/**
* Gets sensor class.
*
* @return string
* Sensor class
*/
public function getSensorClass() {
return $this->sensorInfo['sensor_class'];
}
/**
* Gets sensor result class.
*
* @return string
* Result class.
*/
public function getResultClass() {
return $this->sensorInfo['result_class'];
}
/**
* Gets sensor categories.
*
* @return string
* Categories.
*/
public function getCategory() {
return $this
->getSetting('category');
}
/**
* Gets sensor value label.
*
* In case the sensor defines value_type, it will use the label provided for
* that type by monitoring_value_types().
*
* Next it searches for the label within the sensor definition value_label.
*
* If nothing is defined, it returns NULL.
*
* @return string|null
* Sensor value label.
*/
public function getValueLabel() {
if (isset($this->sensorInfo['value_label'])) {
return $this->sensorInfo['value_label'];
}
if ($value_type = $this
->getValueType()) {
$value_types = monitoring_value_types();
return $value_types[$value_type]['label'];
}
}
/**
* Gets sensor value type.
*
* @return string|null
* Sensor value type.
*
* @see monitoring_value_types().
*/
public function getValueType() {
return isset($this->sensorInfo['value_type']) ? $this->sensorInfo['value_type'] : NULL;
}
/**
* Determines if the sensor value is numeric.
*
* @return bool
* TRUE if the sensor value is numeric.
*/
public function isNumeric() {
return isset($this->sensorInfo['numeric']) ? $this->sensorInfo['numeric'] : TRUE;
}
/**
* Gets sensor caching time.
*
* @return int
* Caching time in seconds.
*/
public function getCachingTime() {
return $this
->getSetting('caching_time');
}
/**
* Gets threshold type.
*
* @return string|null
* Threshold type.
*/
public function getThresholdsType() {
$thresholds = $this
->getSetting('thresholds');
if (!empty($thresholds['type'])) {
return $thresholds['type'];
}
// We assume the default threshold type.
return 'exceeds';
}
/**
* Returns a given threshold if one is configured.
*
* @param $key
* Name of the threshold, for example warning or critical.
*
* @return int|null
* The threshold value or NULL if not-configured.
*/
public function getThresholdValue($key) {
$thresholds = $this
->getSetting('thresholds');
if (isset($thresholds[$key]) && $thresholds[$key] !== '') {
return $thresholds[$key];
}
}
/**
* Returns all settings.
*
* @return array
* Settings as an array.
*/
public function getSettings() {
return $this->sensorInfo['settings'];
}
/**
* Gets time interval value.
*
* @return int
* Number of seconds of the time interval.
* NULL in case the sensor does not define the time interval.
*/
public function getTimeIntervalValue() {
return $this
->getSetting('time_interval_value', NULL);
}
/**
* Gets setting.
*
* @param string $key
* Setting key.
* @param mixed $default
* Default value if the setting does not exist.
*
* @return mixed
* Setting value.
*/
public function getSetting($key, $default = NULL) {
return isset($this->sensorInfo['settings'][$key]) ? $this->sensorInfo['settings'][$key] : $default;
}
/**
* Checks if sensor is enabled.
*
* @return bool
*/
public function isEnabled() {
return (bool) $this
->getSetting('enabled');
}
/**
* Checks if sensor is configurable.
*
* @return bool
*/
public function isConfigurable() {
return in_array('Drupal\\monitoring\\Sensor\\SensorConfigurableInterface', class_implements($this
->getSensorClass()));
}
/**
* Checks if sensor provides extended info.
*
* @return bool
*/
public function isExtendedInfo() {
return in_array('Drupal\\monitoring\\Sensor\\SensorExtendedInfoInterface', class_implements($this
->getSensorClass()));
}
/**
* Checks if sensor defines thresholds.
*
* @return bool
*/
public function isDefiningThresholds() {
return in_array('Drupal\\monitoring\\Sensor\\SensorThresholdsInterface', class_implements($this
->getSensorClass()));
}
/**
* Compiles sensor info values to an associative array.
*
* @return array
* Sensor info associative array.
*/
public function toArray() {
$info_array = array(
'sensor' => $this
->getName(),
'label' => $this
->getLabel(),
'category' => $this
->getCategory(),
'description' => $this
->getDescription(),
'numeric' => $this
->isNumeric(),
'value_label' => $this
->getValueLabel(),
'caching_time' => $this
->getCachingTime(),
'time_interval' => $this
->getTimeIntervalValue(),
'enabled' => $this
->isEnabled(),
);
if ($this
->isDefiningThresholds()) {
$info_array['thresholds'] = $this
->getSetting('thresholds');
}
return $info_array;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
SensorInfo:: |
protected | property | The sensor info array. | |
SensorInfo:: |
protected | property | The sensor name. | |
SensorInfo:: |
public | function | Gets sensor caching time. | |
SensorInfo:: |
public | function | Gets sensor categories. | |
SensorInfo:: |
public | function | Gets sensor description. | |
SensorInfo:: |
public | function | Gets sensor label. | |
SensorInfo:: |
public | function | Gets sensor name. | |
SensorInfo:: |
public | function | Gets sensor result class. | |
SensorInfo:: |
public | function | Gets sensor class. | |
SensorInfo:: |
public | function | Gets setting. | |
SensorInfo:: |
public | function | Returns all settings. | |
SensorInfo:: |
public | function | Gets threshold type. | |
SensorInfo:: |
public | function | Returns a given threshold if one is configured. | |
SensorInfo:: |
public | function | Gets time interval value. | |
SensorInfo:: |
public | function | Gets sensor value label. | |
SensorInfo:: |
public | function | Gets sensor value type. | |
SensorInfo:: |
public | function | Checks if sensor is configurable. | |
SensorInfo:: |
public | function | Checks if sensor defines thresholds. | |
SensorInfo:: |
public | function | Checks if sensor is enabled. | |
SensorInfo:: |
public | function | Checks if sensor provides extended info. | |
SensorInfo:: |
public | function | Determines if the sensor value is numeric. | |
SensorInfo:: |
public | function | Compiles sensor info values to an associative array. | |
SensorInfo:: |
function | Instantiates sensor info object. |