You are here

public function PendingSensorPlugin::runSensor in Simplenews 8.2

Same name and namespace in other branches
  1. 8 src/Plugin/monitoring/SensorPlugin/PendingSensorPlugin.php \Drupal\simplenews\Plugin\monitoring\SensorPlugin\PendingSensorPlugin::runSensor()
  2. 3.x src/Plugin/monitoring/SensorPlugin/PendingSensorPlugin.php \Drupal\simplenews\Plugin\monitoring\SensorPlugin\PendingSensorPlugin::runSensor()

Runs the sensor, updating $sensor_result.

An implementation must provide any checks necessary to be able to populate the provides sensor result instance with a combination of the following possibilities:

  • Set the sensor status to critical, warning, ok, info or unknown with SensorResultInterface::setStatus(). Defaults to unknown.
  • Set the sensor value with SensorResultInterface::setValue(). This can be a number or a string. Note that value_type defaults to numeric. If a sensor does not return a numeric result, it must be defined accordingly.
  • Set the expected sensor value with SensorResultInterface::setExpectedValue(). When doing so, it is not necessary to set the sensor status explicitly, as that will happen implicitly. See below.
  • Set the sensor message with SensorResultInterface::setMessage(), which will then be used as is. The message must include all relevant information.
  • Add any number of status messages which will then be added to the final sensor message.

Based on the provided information, the sensor result will then be compiled. It will attempt to set the sensor status if not already done explicitly by the sensor and will build a default message, unless a message was already set with SensorResultInterface::setMessage().

Sensors with unknown status can either be set based on an expected value or thresholds. If the value does not match the expected value, the status is set to critical. All numeric sensors have support for thresholds.

The default sensor message will include information about the sensor value, expected value, thresholds, the configured time interval and additional status messages defined. Provided value labels and value types will be considered for displaying the sensor value. If neither value nor status messages are provided, the message will default to "No value".

Compiled message examples:

  • $90.00 in 1 day, expected $100.00. This is the message for a sensor with a commerce_currency value type, a configured time interval of one day and a value of 90 and expected value of 100.
  • 53 login attempts in 6 hours, exceeds 20, 10 for user administrator. This the message for a failed login sensor with value 53 with a threshold configuration of exceeds 20 and a status message "10 for user administrator".

Parameters

\Drupal\monitoring\Result\SensorResultInterface $sensor_result: Sensor result object.

Throws

\Exception Can throw any exception. Must be caught and handled by the caller.

Overrides SensorPluginInterface::runSensor

See also

\Drupal\monitoring\Result\SensorResultInterface::setValue()

\Drupal\monitoring\Result\SensorResultInterface::setExpectedValue()

\Drupal\monitoring\Result\SensorResultInterface::compile()

\Drupal\monitoring\Result\SensorResultInterface::setMessage()

\Drupal\monitoring\Result\SensorResultInterface::addStatusMessage()

File

src/Plugin/monitoring/SensorPlugin/PendingSensorPlugin.php, line 29

Class

PendingSensorPlugin
Monitors pending items in the simplenews mail spool.

Namespace

Drupal\simplenews\Plugin\monitoring\SensorPlugin

Code

public function runSensor(SensorResultInterface $result) {
  $result
    ->setValue(\Drupal::service('simplenews.spool_storage')
    ->countMails([
    'status' => SpoolStorageInterface::STATUS_PENDING,
  ]));
}