Вернулся к проекту, которым начал заниматься ещё во время учебы в КПИ. Большую часть переписал с нуля, оставил пару базовых абстракций, почистил и причесал код и наконец-то выложил на гитхаб.
Цель проекта — создать небольшой фреймворк, который позволит упростить мониторинг за информационной системой и ее модулями.
При этом без необходимости вносить какие-либо крупные изменения в архитектуру системы, за которой будет производиться наблюдение.
Базовые абстракциям:
— ISpectator
— IProbe
— IEvaluator
Экземпляр ISpectator производит наблюдение за системой. Генерирует события в момент изменения состояния системы для оповещения всех модулей, которые на эти состояния подписаны.
Экземпляры IProbe предоставляют по запросу экземпляра наблюдателя различные метрики системы, или конкретного модуля/сервиса.
Экземпляр IEvaluator вычисляет состояние системы по собранным метрикам.
Для каждого из интерфейсов существует базовая реализация, а также предусмотрены механизмы простого и удобного расширения.
Примеры использования есть в тестовом проекте, который находится в том же репозитории, где и основной проект.
Сам фреймворк доступен в виде nuget-пакета на сайте
nuget.orgЧуть позже планирую написать на Хабре статью с примерами использования.
Keep in touch!
https://github.com/ernado-x/X.Spectator