1

我想创建某种类型的 ASP.NET (C# 2.0) Metrics 类来帮助监控生产 Web 应用程序的性能。我对 2.0 Health Monitoring 有点熟悉,这不是我想要的(我不这么认为)。我宁愿有一个仪表板,它给我一个快照,而不是一个日志或事件列表。我将不胜感激来自社区的任何反馈。因此,即使您没有具体的答案,也可以随意将您的输入添加到任何部分,并且不要觉得您必须就整个事情提供输入。提前致谢!

以下是我想监控的一些事情。值应该特定于应用程序而不是 IIS。

  1. 打开的会话数
  2. 每小时点击次数
  3. 最早的会话
  4. 分配的内存量和使用量
  5. **每个(或给定)函数花费的平均运行时间。
  6. 最后一个异常(已处理或未处理)
  7. 带宽利用率(在应用程序级别甚至可能吗?)

**对于 5 号,我正在考虑使用某种类型的秒表类。我要监控的每个函数都会在开始和结束执行时调用 start/stop。然而,这对我来说似乎非常丑陋。有没有办法在没有秒表课程的情况下做到这一点?Reflections 课程中的某些内容可以对此有所帮助吗?

这样的东西已经存在了吗?我已经做了相当多的谷歌搜索,但找不到我正在寻找的确切内容。

你能推荐我应该看的任何其他指标吗?

4

3 回答 3

1

您应该能够读取 Windows 性能计数器以获取大部分信息。在应用程序级别很难使用带宽。我最终在我的应用程序中构建了一种计数器来跟踪带宽。我确信可以通过在堆栈中下降来更有效地完成它,但无论如何我只需要一些快速而肮脏的东西。

于 2010-01-04T20:30:27.527 回答
1

听起来您正在寻找的大部分内容都可以使用 Windows 性能计数器捕获。您可以从仪表板页面读取它们,并以 HTML 格式显示它们。

您还可以为任何特定于应用程序的数据创建自定义计数器。我最喜欢的方法之一是测量进程外调用需要多长时间,并计算它们超过某个预定阈值的次数,以查找性能问题或回归。

于 2010-01-04T20:31:49.037 回答
1

Try a product (service?) called NewRelic. I am not affiliated with them in any way, but their service is really great and has a free tier you can use to get started.

于 2011-01-24T22:08:55.830 回答