Monq.Plugins.Abstractions
Это .NET библиотека с набором методов, классов и интерфейсов для реализации пользовательских плагинов Monq Agent. Здесь вы можете узнать основную информацию о составе этой библиотеки. За подробной информацией по созданию пользовательских плагинов обратитесь к wiki. Также вы можете ознакомиться с примерами готовых плагинов в нашем репозитории.
Состав библиотеки
-
namespace Monq.Plugins.Abstractions
- interface IPluginTaskStrategy
- interface IPluginTaskPostProcessor
- interface IPluginTaskBootstrap
-
namespace Monq.Plugins.Abstractions.Converters
- class DictionaryConverter
-
namespace Monq.Plugins.Abstractions.Extensions
- class ObjectExtensions
-
namespace Monq.Plugins.Abstractions.Exceptions
- class PluginNotConfiguredException
-
namespace Monq.Plugins.Abstractions.Models
- class PluginTask
namespace Monq.Plugins.Abstractions
interface IPluginTaskBootstrap
Этот интерфейс предназначен для регистрации сущностей необходимых для работы плагина:
- Cвойство
PluginTask
регистрирует стратегию выполнения задачи; - Метод
RegisterServiceProvider
регистрирует зависимости в DI контейнере агента.
Примеры реализации интерфейса: SystemInfoPlugin, SystemMetricsPlugin.
interface IPluginTaskPostProcessor
Этот интерфейс содержит только метод Process
предназначенный для обработки результата задания после его выполнения.
interface IPluginTaskStrategy
Этот интерфейс содержит только определение метода Run
который вызывается Monq Agent'ом при получении соответствующего задания. Здесь должна выполняться ETL логика плагина для работы с конкретным источником данных, а именно:
- Извлечение данных из источника;
- Преобразование, очистка и обогащение данных, чтобы они соответствовали потребностям дальнейшей обработки в Monq;
- Загрузка преобразованных данных в Monq с помощью API потоков данных для дальнейшей обработки.
Примеры реализации интерфейса: SystemInfoPlugin, SystemMetricsPlugin.
namespace Monq.Plugins.Abstractions.Models
class PluginTask
Это модель задания плагина. Используется агентом для поиска необходимой стратегии выполнения задания. Содержит следующие свойства:
-
Name
Публичное название команды. Показывается в логах. -
Command
Идентификатор команды. Должен быть уникальным для всех команд всех плагинов используемых в агенте. За подробной информацией об именовании команд обратитесь к разделу именование команд плагинов. -
ProcessorStrategyType
Тип стратегии выполнения задания. Экземпляр этого класса создается агентом при выполнении задания. -
PostProcessorStrategyType
Опциональное свойство. Тип стратегии обработки результатов задания. Экземпляр этого класса создается агентом после выполнения основного задания для обработки результатов.
Примеры использования класса: SystemInfoPlugin, SystemMetricsPlugin.
namespace Monq.Plugins.Abstractions.Extensions
class ObjectExtensions
Класс расширения предназначенный для двусторонней конвертации моделей в словарь содержащий названия свойств и их значения. Применение этого метода описано в разделе конвертация variables в модель конфигурации задания.
Примеры использования метода: SystemInfoPlugin, SystemMetricsPlugin.
namespace Monq.Plugins.Abstractions.Exceptions
class PluginNotConfiguredException
Исключение предназначенное для информирования о некорректной конфигурации плагина.
Примеры использования исключения: SystemInfoPlugin, SystemMetricsPlugin.
namespace Monq.Plugins.Abstractions.Converters
class DictionaryConverter
Класс предназначен для внутреннего использования.