Gerar Alerta para Evento CSM de Desempenho de Transação

Microsoft.SystemCenter.Apm.CsmWebPageTransaction.AlertPerformanceAspectRule (Rule)

Knowledge Base article:

Resumo

O estado do objeto é alterado para não íntegro quando o número total de eventos de desempenho no cliente para uma transação configurada excede o limite do monitor.

Causas

Os alertas de desempenho no cliente são gerados quando o tempo de carregamento da página do aplicativo Web excede o limite configurado. O intervalo total é medido no navegador Web, é correlacionado ao tempo de processamento do servidor e é separado nas seguintes categorias, disponíveis nos detalhes do evento:

Quando o tempo de carregamento da página exceder o limite:

Quando o tempo de resposta às chamadas AJAX exceder o limite:

A quantidade significante de tempo gasto em uma ou algumas categorias pode apontar para a causa raiz do problema de desempenho. Por exemplo, o tempo gasto no processamento de solicitações e respostas de rede pode sugerir uma conectividade de rede lenta. O longo tempo de resposta do servidor pode ser causado por código de servidor com execução lenta e pode ser solucionado por meio da investigação de alertas de desempenho associados no servidor. O carregamento demorado de DOM pode estar ligado à complexidade excessiva ou ao tamanho da página do aplicativo. Além disso, talvez ele aponte para baixo desempenho do navegador do cliente. O longo tempo de execução do evento Window.OnLoad() ou o lento AJAX JavaScript indica um código ineficiente na página, ou está ligado ao baixo desempenho do navegador do cliente. Um grande número de redirecionamentos de página pode ser resultado de um código de aplicativo complexo ou ineficiente.

Resoluções

Os alertas de desempenho no cliente são gerados quando o tempo de execução excede o limite configurado. As causas típicas de degradação do desempenho do aplicativo podem estar relacionadas ao baixo desempenho do servidor Web, à rede lenta ou ao código de aplicativo ineficiente.

Você pode obter mais detalhes sobre esse alerta através do link para os detalhes do evento, disponível na guia Descrição do Alerta ou Contexto do Alerta. O link abre o evento no console do Application Diagnostics. O console de diagnósticos de aplicativo contém informações específicas desse evento e, também, de eventos relacionados ou semelhantes que foram detectados.

Element properties:

TargetMicrosoft.SystemCenter.Apm.CsmWebPageTransaction
CategoryAlert
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableFalse
Alert Message
Exceção de Desempenho de Página do Cliente
{0}. O limite configurado {1} ms para {2} em {3} para a transação {4} foi excedido. Para obter detalhes adicionais, use o link a seguir: $Url[Query='{5}']/APMEvent$

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SystemCenter.Apm.CsmWebPageTransaction.AlertPerformanceAspectRule" Enabled="false" ConfirmDelivery="false" Target="Microsoft.SystemCenter.Apm.CsmWebPageTransaction" Remotable="false">
<Category>Alert</Category>
<DataSources>
<DataSource ID="LOBProvider" TypeID="Microsoft.SystemCenter.Apm.Csm.CsmWebPageTransaction.LobDataProvider">
<Name>$Target/Host/Property[Type="AL!Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/ApplicationName$ (Client)</Name>
<AspectType>performance</AspectType>
<RootName>$Target/Property[Type="Microsoft.SystemCenter.Apm.CsmWebPageTransaction"]/PageName$</RootName>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="AlertWriteAction" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name='Microsoft.SystemCenter.Apm.CsmWebPageTransaction.AlertPerformanceAspectRule.AlertMessage']$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventData/log/properties/property[name="scomProblemDescription"]/value$</AlertParameter1>
<AlertParameter2>$Data/EventData/log/alertingThreshold$</AlertParameter2>
<AlertParameter3>$Target/Host/Property[Type="AL!Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/ApplicationName$</AlertParameter3>
<AlertParameter4>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</AlertParameter4>
<AlertParameter5>$Target/Property[Type="AL!Microsoft.SystemCenter.Apm.TransactionBase"]/TransactionName$</AlertParameter5>
<AlertParameter6>$Data/EventData/ViewDetail$</AlertParameter6>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventData/eventConsolidationHash$</SuppressionValue>
</Suppression>
<Custom1>Performance</Custom1>
</WriteAction>
</WriteActions>
</Rule>