Generar alerta para los eventos de error de aplicación en transacciones de APM

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

Knowledge Base article:

Resumen

El estado de la instancia pasa a ser incorrecto si el número total de eventos de error de aplicación por período de tiempo definido supera el umbral del monitor.

Causas

Las alertas de excepción de aplicación se deben a excepciones no controladas y de nivel superior que impiden que la aplicación realice una tarea. Los detalles de la alerta muestran el tipo de excepción y la pila de llamadas resultante. Las excepciones de aplicación se deben a errores en el código de la aplicación y requieren un análisis de seguimiento de la pila y de los valores de datos que se usan en las funciones.

Soluciones

Las alertas de error de aplicación surgen de excepciones no controladas en la aplicación. Para resolver estas excepciones, compruebe el tipo de excepción y la función en la que se produjo la excepción. Para solucionar problemas de este tipo suele ser necesario tener acceso al código fuente de la aplicación.

Para tener acceso a información adicional acerca de esta alerta, use el vínculo a los detalles del evento disponible en la Descripción de alerta y en la pestaña Contexto de alerta. El vínculo abre el evento en la consola de Application Diagnostics. La consola de diagnóstico de aplicaciones incluye información específica para este evento, así como los eventos relacionados y similares que se hayan detectado.

Element properties:

TargetMicrosoft.SystemCenter.Apm.MvcTransaction
CategoryAlert
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableFalse
Alert Message
Excepción de aplicación de transacción
Se ha producido un error en la transacción {5} para la aplicación {0} en {1}. Se produjo una excepción de tipo '{2}' con el mensaje '{3}' en '{4}'. Para obtener más información, utilice el siguiente vínculo: $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>