Gerar Alerta para Eventos APM de Falha de Aplicação da Transação

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

Knowledge Base article:

Resumo

O estado da instância fica em mau estado de funcionamento se o número total de eventos de falha da aplicação por período de tempo definido exceder o limiar do monitor.

Causas

Os alertas de exceção da aplicação resultam de exceções não processadas e de nível superior que impedem a aplicação de concluir uma tarefa. Os detalhes do alerta apresentam o tipo de exceção acionada e a pilha de chamadas resultante. As exceções da aplicação devem-se a erros no código de aplicação e requerem a análise dos valores de dados e de rastreio de pilha utilizados nas funções.

Resoluções

Os alertas de falha da aplicação resultam de exceções não processadas na aplicação. Para resolver estas exceções, verifique o tipo de exceção e a função a partir da qual a exceção foi acionada. A resolução deste tipo de problemas requer, normalmente, acesso ao código de origem da aplicação.

Pode aceder a mais informações sobre este alerta, utilizando a hiperligação para os detalhes do evento disponibilizada na Descrição do Alerta e no separador Contexto do Alerta. A hiperligação abre o evento na consola do Application Diagnostics. A consola do Application Diagnostics contém informações específicas a este evento, bem como a eventos relacionados e semelhantes que foram detetados.

Element properties:

TargetMicrosoft.SystemCenter.Apm.MvcTransaction
CategoryAlert
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableFalse
Alert Message
Exceção de Aplicação da Transação
Ocorreu uma falha na aplicação da transação {5} para a aplicação {0} em {1}. Foi acionada uma exceção de tipo '{2}' com uma mensagem de '{3}' em '{4}'. Para mais informações, utilize a seguinte hiperligação: $Url[Query='{6}']/APMEvent$

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SystemCenter.Apm.MvcTransaction.AlertAppFailureAspectRule" Enabled="false" ConfirmDelivery="false" Target="Microsoft.SystemCenter.Apm.MvcTransaction" Remotable="false">
<Category>Alert</Category>
<DataSources>
<DataSource ID="LOBProvider" TypeID="Microsoft.SystemCenter.Apm.MvcTransaction.LobDataProvider.ExceptionAspect">
<Name>$Target/Host/Property[Type="AL!Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/ApplicationName$</Name>
<AspectType>applicationfailure</AspectType>
<ControllerName>$Target/Property[Type="Microsoft.SystemCenter.Apm.MvcTransaction"]/ControllerName$</ControllerName>
<ActionName>$Target/Property[Type="Microsoft.SystemCenter.Apm.MvcTransaction"]/ActionName$</ActionName>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="AlertWriteAction" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name='Microsoft.SystemCenter.Apm.MvcTransaction.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>