gpt4 book ai didi

c# - 处理横切关注点,例如 Web 应用程序组件的内部统计报告

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:47 25 4
gpt4 key购买 nike

我正在尝试为 OLTP 网络应用程序的内部组件实现统计报告。例如,我想近乎实时地跟踪以下事物的使用情况或性能:成功/失败登录的数量、nhibernate session 的数量、服务 HTTP 请求的时间、不同类型(订单、访问等)的交易数量。所有这些统计数据都通过 UDP 发送到 statsd 服务器 (https://github.com/etsy/statsd),并使用 Graphite 绘制成图表。

应用程序正在使用依赖注入(inject)来连接内部组件。我想集中向 statsd 服务器报告统计信息,并将其隐藏在一个界面下。但是,我觉得在报告性能或使用数据的应用程序的每个组件中注入(inject)一个统计报告类/接口(interface)的实例是一种气味。在我看来,性能报告事件应该类似于横切关注点,非常类似于日志记录。

您如何处理此类请求的内部设计?您会使用构造函数注入(inject)、静态方法(例如 PerformanceCounters.Increment("name.of.counter"))来处理这些被称为我的受监视组件的方法吗?

如果对上下文有任何帮助,该应用程序是用 C# 完成的,并且使用 ASP.NET 和 CaSTLe Windsor 作为 IoC。

谢谢,罗伯特

最佳答案

我使用 Spring.Net 来做类似的事情。据我所知,Spring 非常类似于 IoC 的 CaSTLe Windsor,并且 Spring 使用 CaSTLeWindsor 来创建动态代理。这些可以用于 Spring 支持的 AOP。学习曲线很短,框架有很好的文档记录。配置性能方面后,将其应用于您的方法应该非常容易。如果您想要一个小样本,请告诉我。

关于c# - 处理横切关注点,例如 Web 应用程序组件的内部统计报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9392738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com