healthMonitoring與運行情況監視

配置針對應用程序的運行情況監視的一個服務 app

   

配置節內容比以往的較爲複雜,以下 框架

<healthMonitoring 
Enabled="true|false"
heartbeatInterval="time interval">
<bufferModes>...</bufferModes>
<providers>...</providers>
<eventMappings>...</eventMappings>
<profiles>...</profiles>
<rules>...</rules>
</healthMonitoring>

 

   

實際上這是運行情況監視是一個事件定義與處理的模型,簡單來看整個運行情況監視基本點有如下三個 ide

1.在eventMappings定義事件 spa

2.在providers定義事件的處理 code

3.經過rules綁定事件給某個處理程序去處理。 blog

稍微豐富一點的話,還能夠包含下面這幾點 事件

1.事件能夠帶參數,參數則定義在profiles中,也是在綁定事件時經過rules指定 開發

2.處理程序能夠具有緩衝功能,緩衝功能在在bufferModes中定義,在providers中指定給對應的處理程序。 博客

   

   

配置中全部子節點都是一個集合,下面展現幾個關鍵個集合中元素的特性 it

eventMappings:件的友好名稱

name:事件友好的名稱(惟一標識)

type:事件的徹底限定類型名稱

startEventCode和endEventCode:指定事件代碼標識符的其實範圍

   

profiles:事件配置

name:指定配置文件名稱(惟一標識)

minimumInstances:激發事件以前至少出現的次數

maximumLimit:指定閾值,在達到該值後,將中止激發事件

minimumInterval:指定兩個事件之間的最小時間間隔,以 "hh:mm:ss" 的形式表示

   

providers:負責事件處理類型的集合

name:指定提供程序的友好名稱(惟一標識)

type:指定對某個類的徹底限定的程序集引用

buffer:指定提供程序是使用緩衝仍是當即將每一個事件發送給收件人,僅適用於type是 SqlWebEventProvider 類

bufferMode:指定提供程序使用的緩衝模式的名稱(若是提供程序處於緩衝模式)。此名稱必須引用 BufferModesCollection 集合中存在的現有緩衝模式之一;不然,將引起一個異常。若是打開了緩衝,則此屬性必須存在,僅適用於 SQLWebEventProvider 屬性。

   

rules:將事件映射到它的提供程序(給事件綁定處理類進行處理)

name:指定此規則的名稱

eventName、provider和profile:對其它配置節的關聯引用

minInstances:事件通知觸發前在給定應用程序內部的規則實例的最小數量

maxLimit:指定生成提供程序通知的規則實例的最大數量。

minInterval:指定兩個事件之間的最小時間間隔。

   

看profiles和rules中有類似的屬性存在,雖然一樣有最小次數、最大數量和最小時間間隔,而從文字上看,是先按照rules判斷,再按照providers進行判斷。

   

縱觀以前的描述和鄙人以前看的一篇博客(看上去感受在MSDN中抄了很多)。只要瞭解了事件處理模型,這個配置節的內容以及它的功能則會好理解。框架中定義了若干個事件,和若干個事件處理程序。博文後的附錄部分則是ASP.NET中定義的事件和處理程序。開發人員有須要的話能夠本身對其進行擴展,不過無論怎麼去改,也須要去添加一個新的rule。

另外,從博文或者從MSDN中也得知,如須要本身觸發事件,可調用WebBaseEvent的Raise()方法。

   

<eventMappings>
<add name="All Events" type="System.Web.Management.WebBaseEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
<add name="Heartbeats" type="System.Web.Management.WebHeartbeatEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
<add name="Application Lifetime Events" type="System.Web.Management.WebApplicationLifetimeEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
<add name="Request Processing Events" type="System.Web.Management.WebRequestEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
<add name="All Errors" type="System.Web.Management.WebBaseErrorEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
<add name="Infrastructure Errors" type="System.Web.Management.WebErrorEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"                                                                                                                                                                                                                                                                                                                                                                                 startEventCode="0" endEventCode="2147483647"/>
<add name="Request Processing Errors" type="System.Web.Management.WebRequestErrorEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
<add name="All Audits" type="System.Web.Management.WebAuditEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
<add name="Failure Audits" type="System.Web.Management.WebFailureAuditEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     startEventCode="0" endEventCode="2147483647"/>
<add name="Success Audits" type="System.Web.Management.WebSuccessAuditEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 startEventCode="0" endEventCode="2147483647"/>
</eventMappings>
事件
<add name="EventLogProvider" type="System.Web.Management.EventLogWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"/>
<add connectionStringName="LocalSqlServer" maxEventDetailsLength="1073741823" buffer="false" bufferMode="Notification" name="SqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"/>
<add name="WmiWebEventProvider" type="System.Web.Management.WmiWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"/>
事件處理程序
相關文章
相關標籤/搜索