我可以从应用程序本身获取asp.net MVC 3应用程序的所有性能指标吗?

时间:2012-04-27 00:47:51

标签: performance asp.net-mvc-3 metrics appharbor

所以说我在某个地方有一个托管在云端的MVC应用程序,这意味着我无法访问IIS或任何基础设施。

我可以控制的只是应用程序代码本身,以及归结为客户端的内容。

我的目标

随着时间的推移收集MVC应用程序在响应时间方面表现如何的数据。

当前问题

我可以从Google Analyics和其他客户端技巧中获取大量数据,但这无法说明App Pool是否经常回收。

同样地,如果我在行动中加入秒表,那么就不会告诉我应用启动中的任何延迟(如果它必须再次启动)。

另外,如果我在Action中设置了秒表,则不会考虑重新查看视图的任何延迟。例如,即使这是不好的做法,也可能会从视图中调用数据库调用,而我的操作指标也不会考虑这一点。

我的问题

因此,如果我想获得有关多个客户端和用户需要多长时间请求的真实指标,那么除了应用程序中的Stopwatches之外,哪里是最佳位置。或者是否无法从应用程序本身获取真正的指标,我必须将计数器放在应用程序之外(如在IIS中)。

2 个答案:

答案 0 :(得分:1)

添加New Relic,它可作为AppHarbor服务的一部分免费提供 - https://appharbor.com/addons/newrelic

答案 1 :(得分:0)

既然你提到“在某个地方的云端”你是否使用Microsoft Azure进行托管?如果是这样,您可以使用DiagnosticsMonitorConfiguration将一些很棒的诊断信息记录到Azure存储中。

Here's有关如何向您的Web和辅助角色添加诊断的教程。您可以在MSDN

上找到完整的效果计数器列表

您可以从应用程序请求/秒,内存和CPU利用率,网络适配器统计信息,输出缓存命中/未命中,请求执行时间等等中获取所有内容。