You are here

class UltimateCronErrorsSensorPlugin in Monitoring 8

Monitors the ultimate cron errors.

Plugin annotation


@SensorPlugin(
  id = "ultimate_cron_errors",
  provider = "ultimate_cron",
  label = @Translation("Ultimate cron errors"),
  description = @Translation("Provides insight on the cron processes."),
  addable = FALSE
)

Hierarchy

Expanded class hierarchy of UltimateCronErrorsSensorPlugin

File

src/Plugin/monitoring/SensorPlugin/UltimateCronErrorsSensorPlugin.php, line 23

Namespace

Drupal\monitoring\Plugin\monitoring\SensorPlugin
View source
class UltimateCronErrorsSensorPlugin extends SensorPluginBase implements ExtendedInfoSensorPluginInterface {

  /**
   * The error log entries.
   *
   * @var array
   */
  protected $logEntries;

  /**
   * {@inheritdoc}
   */
  public function runSensor(SensorResultInterface $result) {
    $this->logEntries = $this
      ->getErrorLogEntries();
    $result
      ->setValue(count($this->logEntries));
  }

  /**
   * {@inheritdoc}
   */
  public function resultVerbose(SensorResultInterface $result) {
    $rows = [];
    foreach ($this->logEntries as $log_entry) {
      $rows[] = [
        'name' => $log_entry->job
          ->label() . ' (' . $log_entry->job
          ->getModuleName() . ')',
        'message' => strip_tags($log_entry->message),
        'logs' => Link::createFromRoute($this
          ->t('View logs'), 'entity.ultimate_cron_job.logs', [
          'ultimate_cron_job' => $log_entry->name,
        ]),
      ];
    }
    $header = [
      'name' => $this
        ->t('Cron job'),
      'message' => $this
        ->t('Message'),
      'logs' => $this
        ->t('Logs'),
    ];
    $output['log_entries'] = [
      '#type' => 'verbose_table_result',
      '#title' => $this
        ->t('Log entries'),
      '#header' => $header,
      '#rows' => $rows,
    ];
    return $output;
  }

  /**
   * Returns error log entries.
   *
   * @return array
   *   An array of log entries.
   */
  public function getErrorLogEntries() {

    // Loads active cron jobs.
    $job_ids = \Drupal::entityQuery('ultimate_cron_job')
      ->condition('status', TRUE)
      ->execute();
    $jobs = CronJob::loadMultiple($job_ids);
    $log_entries = [];

    /** @var \Drupal\ultimate_cron\Entity\CronJob $job */
    foreach ($jobs as $job) {
      $job_entries = $job
        ->getLogEntries(ULTIMATE_CRON_LOG_TYPE_ALL, 10);
      foreach ($job_entries as $job_entry) {
        if ($job_entry->severity == RfcLogLevel::ERROR) {
          $job_entry->job = $job;
          $log_entries[] = $job_entry;
        }
      }
    }
    return $log_entries;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
SensorPluginBase::$configurableValueType protected property Allows plugins to control if the value type can be configured. 6
SensorPluginBase::$pluginDefinition protected property The plugin implementation definition.
SensorPluginBase::$pluginId protected property The plugin_id.
SensorPluginBase::$sensorConfig protected property Current sensor config object.
SensorPluginBase::$services protected property
SensorPluginBase::addService public function Service setter. Overrides SensorPluginInterface::addService
SensorPluginBase::buildConfigurationForm public function Form constructor. Overrides PluginFormInterface::buildConfigurationForm 13
SensorPluginBase::calculateDependencies public function Calculates dependencies for the configured plugin. Overrides SensorPluginInterface::calculateDependencies 4
SensorPluginBase::create public static function Creates an instance of the sensor with config. Overrides SensorPluginInterface::create 7
SensorPluginBase::getConfigurableValueType public function Configurable value type. Overrides SensorPluginInterface::getConfigurableValueType
SensorPluginBase::getDefaultConfiguration public function Default configuration for a sensor. Overrides SensorPluginInterface::getDefaultConfiguration 8
SensorPluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition
SensorPluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
SensorPluginBase::getSensorId public function Gets sensor name (not the label). Overrides SensorPluginInterface::getSensorId
SensorPluginBase::getService public function @todo: Replace with injection Overrides SensorPluginInterface::getService
SensorPluginBase::isEnabled public function Determines if sensor is enabled. Overrides SensorPluginInterface::isEnabled
SensorPluginBase::submitConfigurationForm public function Form submission handler. Overrides PluginFormInterface::submitConfigurationForm 3
SensorPluginBase::validateConfigurationForm public function Form validation handler. Overrides PluginFormInterface::validateConfigurationForm 2
SensorPluginBase::__construct function Instantiates a sensor object. 8
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
UltimateCronErrorsSensorPlugin::$logEntries protected property The error log entries.
UltimateCronErrorsSensorPlugin::getErrorLogEntries public function Returns error log entries.
UltimateCronErrorsSensorPlugin::resultVerbose public function Provide additional info about sensor call. Overrides ExtendedInfoSensorPluginInterface::resultVerbose
UltimateCronErrorsSensorPlugin::runSensor public function Runs the sensor, updating $sensor_result. Overrides SensorPluginInterface::runSensor