惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Schneier on Security
The Last Watchdog
The Last Watchdog
Cyberwarzone
Cyberwarzone
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cyber Attacks, Cyber Crime and Cyber Security
L
Lohrmann on Cybersecurity
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
The Cloudflare Blog
V
V2EX
博客园_首页
博客园 - 聂微东
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
G
GRAHAM CLULEY
T
Tenable Blog
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
L
LINUX DO - 最新话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
SecWiki News
SecWiki News
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
N
News | PayPal Newsroom
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
T
Troy Hunt's Blog
博客园 - 【当耐特】
Forbes - Security
Forbes - Security
H
Hacker News: Front Page
A
About on SuperTechFans
B
Blog RSS Feed
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
D
DataBreaches.Net
P
Privacy & Cybersecurity Law Blog
Schneier on Security
Schneier on Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Jina AI
Jina AI
D
Docker
P
Proofpoint News Feed

博客园 - sinlight23

Web开发框架趋势 ASP.NET MVC - PageData的应用 .NET Xml序列化时会忽略值为"默认值"的Property或Field ASP.NET MVC 实现模式 - ModelBuilder Enumerable.Range和自定义的IntRange/DateRange HOWTO: Web Deploy时服务器报登录失败的解决方法 HOWTO: 为GitHub for Windows指定代理服务器 ASP.NET MVC - 在MVC 3项目中使用ASP.NET Bundling and Minification机制 脚印:关于错误编码的管理的一些思考 脚印:软件开发随想录 脚印:关于扩展方法的使用 脚印:一次重构讨论 脚印:记录一次重构,将规则生产和规则消费(执行委托)分离 HOWTO: IE8下处理iframe自适应高度 Microsoft ASP.NET 2.0 AJAX 相关信息备忘 MVC 模式在javascript中的应用 VS2010 "SQL Server 2005 Database Project" 使用笔记(二) VS2010 "SQL Server 2005 Database Project" 使用笔记 腳印: 初學者的心態
ASP.NET拾遗 - Health Monitoring
sinlight23 · 2013-04-05 · via 博客园 - sinlight23

缘起

上午计划为一个小站点,增加一个日志的Dashboard,找到了这篇文章:

Log Reporting Dashboard for ASP.NET MVC

文中讲解了如何用ASP.NET MVC实现一个Dashboard,为四种日志源提供检索和统计图表的功能。
ASP.NET MVC Log Reporting Dashboard

从图中也可以看出来,这四种日志源分别是:

  • Elmah
  • Health Monitoring
  • log4net
  • NLog

可以把它们归为三类工具:
1. Elmah,应用场景非常明确,用于搜集ASP.NET应用程序未捕获异常及大量上下文信息,并提供了不错的UI。
2. log4net和NLog都是通用的日志库,专注在记录上,而记录哪些内容,给查看者提供UI,并不是他们的目标。
3. Health Monitoring,也是站在ASP.NET应用程序的角度,基于一套事件模型,提供(Provider)记录(或通知)机制。

因此,这三类工具,虽然从记录这个角度看有些交集,但各自侧重点不同。

眼前这个小站点,只使用log4net作为单纯的记录工具。对于应用程序级别的监控,还一片空白,遂想着看这方面的需求,能否利用Health Monitoring来满足一部分。

Health Monitoring

对于Health Monitoring,以前几乎没有了解。甚至从来没有想过,为什么一个未捕获的异常,在ASP.NET应用程序中,会被记录到Windows EventLog中。

先是读了MSDN:

healthMonitoring Element (ASP.NET Settings Schema)

最吸引我的是:

  • healthMonitoringheartbeatInterval属性
  • bufferModes
  • Profile中的minInterval属性 从这里也可以看出,已经不是单纯的做记录了,而是侧重于Monitoring

%windir%\Microsoft.NET\Framework\v4.0.30319\Config\web.config中定义了四种bufferModes(应该也可以很容易定义自己的bufferModes):
1. Critical Notification
2. Notification
3. Analysis
4. Logging

<bufferModes>
    <add name="Critical Notification" maxBufferSize="100" maxFlushSize="20"
        urgentFlushThreshold="1" regularFlushInterval="Infinite" urgentFlushInterval="00:01:00"
        maxBufferThreads="1" />
    <add name="Notification" maxBufferSize="300" maxFlushSize="20"
        urgentFlushThreshold="1" regularFlushInterval="Infinite" urgentFlushInterval="00:01:00"
        maxBufferThreads="1" />
    <add name="Analysis" maxBufferSize="1000" maxFlushSize="100"
        urgentFlushThreshold="100" regularFlushInterval="00:05:00"
        urgentFlushInterval="00:01:00" maxBufferThreads="1" />
    <add name="Logging" maxBufferSize="1000" maxFlushSize="200" urgentFlushThreshold="800"
        regularFlushInterval="00:30:00" urgentFlushInterval="00:05:00"
        maxBufferThreads="1" />
</bufferModes>

由于这个机制最早是在ASP.NET 2.0中引入的,时隔多年,便有一点想去了解有没有变化的部分。找到的文章里,并没有发现这方面内容,但其中的示例,
很轻易的就实现了一个常见的需求:当某个特定异常发生时,发邮件通知干系人。

Health Monitoring in ASP.NET 3.5

另外,受该文启发,有另一篇入门文章,其中其中有一个非常好的关于Health Monitoringquick reference(见下图)

Re: Health Monitoring in ASP.NET 3.5

healthMonitoring

Health Monitoring的其它相关资料:

MSDN
ASP.NET Health Monitoring Overview

www.asp.net
Logging Error Details with ASP.NET Health Monitoring
(C#)

两篇2007年的园子里的翻译文章
[翻译] ASP.NET 2.0中的健康监测系统(Health Monitoring)(1) - 基本应用
[翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(2) - 通过Email发送监测信息