Stan obiektu jest zmieniany na nieprawidłowy, gdy łączna liczba zdarzeń wydajności po stronie klienta dla skonfigurowanej transakcji przekroczy próg monitora.
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:
Czas żądania sieciowego i odpowiedzi z sieci
Przekierowania na stronie
Czas odpowiedzi serwera
Czas ładowania modelu DOM (Document Object Model)
Ładowanie peryferyjne — ilość czasu poświęcana na ładowanie zewnętrznych zasobów strony, takich jak obrazy czy skrypty
Czas działania obsługi zdarzeń Window.OnLoad() po stronie klienta
Gdy czas reakcji wywołań AJAX przekroczy próg:
Czas żądania sieciowego i odpowiedzi z sieci
Czas odpowiedzi serwera
Wykonywanie skryptów JavaScript
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.
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.
Target | Microsoft.SystemCenter.Apm.CsmWebPageTransaction | ||
Category | Alert | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | False | ||
Alert Message |
|
ID | Module Type | TypeId | RunAs |
---|---|---|---|
LOBProvider | DataSource | Microsoft.SystemCenter.Apm.Csm.CsmWebPageTransaction.LobDataProvider | Default |
AlertWriteAction | WriteAction | System.Health.GenerateAlert | Default |
<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>