Generuj alerty dla zdarzenia wydajności CSM

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

Knowledge Base article:

Podsumowanie

Stan obiektu jest zmieniany na nieprawidłowy, gdy łączna liczba zdarzeń wydajności po stronie klienta w określonym interwale przekroczy próg monitora.

Przyczyny

Alerty wydajności po stronie klienta są generowane, gdy czas ładowania strony lub odpowiedzi AJAX dla aplikacji sieci Web przekracza 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 wyświetlane 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 diagnostyki aplikacji. 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.CsmApplicationInstance
CategoryAlert
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableFalse
Alert Message
Wyjątek wydajności klienta
{0}. Skonfigurowany próg {1} ms dla {2} na {3} został przekroczony. Więcej informacji zawiera następująca strona: $Url[Query='{4}']/APMEvent$

Member Modules:

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

Source Code:

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