Я пытаюсь реализовать статистическую отчетность для внутренних компонентов веб-приложения OLTP. Например, я хочу отслеживать почти в реальном времени использование или производительность таких вещей, как: количество успешных/неудачных логинов, количество сеансов nhibernate, время для обслуживания HTTP-запроса, количество транзакций разных типов (заказы, обращения и т. Д.). Все эти данные отправляются через UDP на сервер statsd (https://github.com/etsy/statsd) и отображаются в виде графиков с графитом.Обработка сквозных проблем, таких как внутренняя статистика отчетов для компонентов веб-приложения
Приложение использует инъекцию зависимости для внутренних компонентов проводки. Я хочу централизовать статистическую отчетность по отношению к серверу statsd в собственном классе и скрыть его под интерфейсом. Тем не менее, мне хочется вводить экземпляр класса/интерфейса отчетности по статистике в каждом компоненте приложения, который сообщает об эффективности производительности или данных об использовании. Мне кажется, что отчеты о представлении отчетов должны быть чем-то вроде проблем с перекрестными ссылками, в значительной степени похожими на ведение журнала.
Как вы относитесь к внутреннему дизайну для такого запроса? Подходите ли вы к инсталляции конструктора, статическим методам (например, PerformanceCounters.Increment («name.of.counter»)), которые называются моими отслеживаемыми компонентами или как?
Если это какая-либо помощь для контекста, приложение выполняется на C# и использует ASP.NET и Castle Windsor в качестве IoC.
Спасибо, Роберт
Это сквозная проблема, как и регистрация. См. Этот ответ: http://stackoverflow.com/questions/7905110/logging-aspect-oriented-programming-and-dependency-injection-trying-to-make/7906547#7906547 –