Generuj alerty dla zdarzenia wydajności transakcji CSM

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

Knowledge Base article:

Podsumowanie

Stan obiektu jest zmieniany na nieprawidłowy, gdy łączna liczba zdarzeń wydajności po stronie klienta dla skonfigurowanej transakcji przekroczy próg monitora.

Przyczyny

Alerty wydajności po stronie klienta są generowane, gdy czas ładowania strony dla aplikacji sieci Web przekroczy skonfigurowany próg. Całkowity czas jest mierzony w przeglądarce sieci Web i jest korelowany z czasem przetwarzania na serwerze, następnie jest dzielony na następujące kategorie dostępne w szczegółach zdarzenia:

Gdy czas ładowania strony przekroczy próg:

Gdy czas reakcji wywołań AJAX przekroczy próg:

Znacząca ilość czasu w jednej lub kilku kategoriach może wskazywać na główną przyczynę problemu z wydajnością. Przykładowo czas poświęcony na przetwarzanie żądań sieciowych i odpowiedzi z sieci może sugerować wolno działające połączenie z sieciowe. Długi czas odpowiedzi serwera może być spowodowany przez powoli działający kod serwera. Rozwiązywanie tego problemu polega badaniu powiązanych alertów wydajności po stronie serwera. Powolne ładowanie modelu DOM może być związane z nadmierną złożonością lub zbyt dużym rozmiarem strony aplikacji, może też wskazywać na niską wydajność przeglądarki na kliencie. Długie czasy uruchamiania dla zdarzenia Window.OnLoad() lub powolne działanie skryptów AJAX JavaScript wskazują na niewydajny kod na stronie lub niską wydajność przeglądarki na kliencie. Duża liczba przekierowań na stronie może wynikać ze zbyt złożonego lub niewydajnego kodu aplikacji.

Rozwiązania

Alerty wydajności po stronie klienta są generowane, gdy czas wykonania przekroczy skonfigurowany próg. Typowe przyczyny degradacji wydajności aplikacji obejmują niską wydajność serwera sieci Web, wolno działającą sieć lub nieefektywny kod aplikacji.

Więcej szczegółów alertu można uzyskać, korzystając z łącza do szczegółów zdarzenia dostępnego w opisie alertu i na karcie Kontekst alertu. To łącze powoduje otwarcie zdarzenia w konsoli programu Application Diagnostics. Konsola diagnostyki aplikacji zawiera informacje dotyczące danego zdarzenia oraz powiązanych i podobnych zdarzeń, które zostały wykryte.

Element properties:

TargetMicrosoft.SystemCenter.Apm.CsmWebPageTransaction
CategoryAlert
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableFalse
Alert Message
Wyjątek wydajności strony klienta
{0}. Skonfigurowany próg {1} ms dla {2} na {3} dla transakcji {4} został przekroczony. Więcej informacji zawiera następująca strona: $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>