M

Monq.Plugins.Abstractions

Monq.Plugins.Abstractions

Это .NET библиотека с набором методов, классов и интерфейсов для реализации пользовательских плагинов Monq Agent. Здесь вы можете узнать основную информацию о составе этой библиотеки. За подробной информацией по созданию пользовательских плагинов обратитесь к wiki. Также вы можете ознакомиться с примерами готовых плагинов в нашем репозитории.

Состав библиотеки

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

Класс предназначен для внутреннего использования.