Добавление драйвера мониторинга серверов
Ход
Для того, чтобы реализовать механизм мониторинга, отличный от стандартного вам необходимо:
Создать класс и имплементировать интерфейс
App\Services\Monitoring\Drivers\Driver
.Написать реализацию метода
retrieve()
. Этот метод принимает объект сервера (App\Entity\Server
), для которого необходимо произвести получение данных об онлайне и возвращает объект передачи данных типаApp\Services\Monitoring\Drivers\DTO
.
Установить только что созданный класс в качестве основного драйвера мониторинга:
Перейдите в файл
/config/monitoring.php
.Установите полное имя класса нового драйвера с элемент driver:
Сбросьте кэш приложения, дабы новая конфигурация закэшировалась.
Спецификация
Ключевые слова "ДОЛЖЕН”, “НЕ ДОЛЖЕН”, “ ТРЕБУЕТСЯ”, “СЛЕДУЕТ”, “НЕ СЛЕДУЕТ”, “РЕКОМЕНДУЕТСЯ”, “МОЖЕТ” должны интерпретироваться так же, как описано в RFC 2119.
Класс драйвера ДОЛЖЕН реализовывать интерфейс
App\Services\Monitoring\Drivers\Driver
.РЕКОМЕНДУЕТСЯ добавлять к имени класса суффикс Driver, дабы класс драйвера можно было идентифицировать по названию.
РЕКОМЕНДУЕТСЯ помещать драйверы мониторинга в неймспейс
App\Services\Monitoring\Drivers
.Реализация метода
retrieve()
ДОЛЖНА содержать логику получения данных об онлайне заданного сервера.Реализация метода
retrieve()
НЕ ДОЛЖНА содержать логику кэширования полученных данных. Кэширование выполняется в другом слое приложения и не входит в зону ответственности драйвера.При невозможности соединиться с сервером, реализация ДОЛЖНА сообщать об этом приложению по средствам передачи соответствующего параметра в возвращаемый из метода объект.
При возникновении ошибки получения/парсинга данных, реализация ДОЛЖНА сообщать об этом приложению по средствам передачи соответствующего параметра в возвращаемый из метода объект.
При возникновении ошибки, которую драйвер не в состоянии обработать ДОЛЖНО бросаться исключение типа
App\Services\Monitoring\MonitoringException
. Приложение самостоятельно обработает эту исключительную ситуацию.
Last updated