为事务应用程序故障 APM 事件生成警报

Microsoft.SystemCenter.Apm.WebServiceTransaction.AlertAppFailureAspectRule (Rule)

Knowledge Base article:

摘要

如果每个指定时段内的应用程序失败事件总数超过监视器阈值,则实例状态将变为不正常。

原因

阻止应用程序完成任务的未处理的顶层异常会导致应用程序异常警报。 警报详细信息显示引发的异常的类型和调用堆栈结果。 应用程序异常由应用程序代码中的错误引起,而且需要分析堆栈跟踪和函数中使用的数据值。

解决方法

应用程序失败警报起源于应用程序中未处理的异常。 要解决这些异常,请查看异常类型和引发异常的函数。 解决这些类型的问题通常需要访问应用程序源代码。

通过使用“警报描述”中和“警报上下文”选项卡上提供的指向事件详细信息的链接,你可以访问有关此警报的其他详细信息。 该链接会在 Application Diagnostics 控制台中打开事件。 Application Diagnostics 控制台包含特定于此事件的信息,以及特定于检测到的相关事件和类似事件的信息。

Element properties:

TargetMicrosoft.SystemCenter.Apm.WebServiceTransaction
CategoryAlert
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableFalse
Alert Message
事务应用程序异常
{1} 上应用程序 {0} 的事务 {5} 发生应用程序故障。 在“{4}”中引发了“{2}”类型的异常,而且显示消息“{3}”。 有关其他详细信息,请使用以下链接: $Url[Query='{6}']/APMEvent$

Member Modules:

ID Module Type TypeId RunAs 
LOBProvider DataSource Microsoft.SystemCenter.Apm.WebServiceTransaction.LobDataProvider Default
AlertWriteAction WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SystemCenter.Apm.WebServiceTransaction.AlertAppFailureAspectRule" Enabled="false" ConfirmDelivery="false" Target="Microsoft.SystemCenter.Apm.WebServiceTransaction" Remotable="false">
<Category>Alert</Category>
<DataSources>
<DataSource ID="LOBProvider" TypeID="Microsoft.SystemCenter.Apm.WebServiceTransaction.LobDataProvider">
<Name>$Target/Host/Property[Type="AL!Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/ApplicationName$</Name>
<AspectType>applicationfailure</AspectType>
<RootName>$Target/Property[Type="Microsoft.SystemCenter.Apm.WebServiceTransaction"]/WebServiceName$/$Target/Property[Type="Microsoft.SystemCenter.Apm.WebServiceTransaction"]/WebServiceMethod$</RootName>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="AlertWriteAction" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name='Microsoft.SystemCenter.Apm.WebServiceTransaction.AlertAppFailureAspectRule.AlertMessage']$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="AL!Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/ApplicationName$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter2>
<AlertParameter3>$Data/EventData/exceptionclass$</AlertParameter3>
<AlertParameter4>$Data/EventData/message$</AlertParameter4>
<AlertParameter5>$Data/EventData/name$</AlertParameter5>
<AlertParameter6>$Target/Property[Type="AL!Microsoft.SystemCenter.Apm.TransactionBase"]/TransactionName$</AlertParameter6>
<AlertParameter7>$Data/EventData/ViewDetail$</AlertParameter7>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventData/eventConsolidationHash$</SuppressionValue>
</Suppression>
<Custom1>ApplicationFailure</Custom1>
</WriteAction>
</WriteActions>
</Rule>