Generuj alerty dla zdarzenia APM wydajności transakcji

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

Knowledge Base article:

Podsumowanie

Stan wystąpienia staje się nieprawidłowy, jeśli łączna liczba zdarzeń wydajności w ustalonym okresie przekracza próg monitora.

Przyczyny

Alerty wydajności aplikacji są generowane, gdy czas wykonania przekracza skonfigurowany próg alertu. Szczegóły alertu pokazują czas wykonania w rozbiciu procentowym na poszczególne typy wywołań funkcji. Zbyt długie wywołania bazy danych mogą być spowodowane problemami z serwerem lub strukturą i złożonością kwerendy. Długie czasy trwania operacji we/wy mogą wynikać z problemów z serwerem plików. Problemy z wydajnością usług sieci Web mogą wynikać z niedziałania usługi bądź serwera, na którym jest uruchamiana, lub problemów z kodem usługi. Zbyt długie czasy wykonania aplikacji mogą być wynikiem złożonego lub mało wydajnego kodu.

Rozwiązania

Alerty wydajności aplikacji są generowane, jeśli czas wykonania przekracza skonfigurowany próg. Typowe przyczyny spadku wydajności aplikacji to długie wywołania bazy danych, długie wywołania usług sieci Web, powolne wywołania zdalnych obiektów .NET lub COM+ albo niewydajny 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.WcfTransaction
CategoryAlert
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Wyjątek wydajności transakcji
Transakcja {3} aplikacji {1} na serwerze {2} przekroczyła skonfigurowany próg wynoszący {0} ms. Więcej informacji zawiera następująca strona: $Url[Query='{4}']/APMEvent$

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SystemCenter.Apm.WcfTransaction.AlertPerformanceAspectRule" Enabled="false" ConfirmDelivery="true" Target="Microsoft.SystemCenter.Apm.WcfTransaction">
<Category>Alert</Category>
<DataSources>
<DataSource ID="LOBProvider" TypeID="Microsoft.SystemCenter.Apm.WcfTransaction.LobDataProvider">
<Name>$Target/Host/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/ApplicationName$</Name>
<AspectType>performance</AspectType>
<RootName>$Target/Property[Type="Microsoft.SystemCenter.Apm.WcfTransaction"]/ClassName$/$Target/Property[Type="Microsoft.SystemCenter.Apm.WcfTransaction"]/MethodName$</RootName>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="AlertWriteAction" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertName/>
<AlertDescription/>
<AlertMessageId>$MPElement[Name='Microsoft.SystemCenter.Apm.WcfTransaction.AlertPerformanceAspectRule.AlertMessage']$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Microsoft.SystemCenter.Apm.Transaction"]/PerformanceThreshold$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/ApplicationName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter3>
<AlertParameter4>$Target/Property[Type="Microsoft.SystemCenter.Apm.TransactionBase"]/TransactionName$</AlertParameter4>
<AlertParameter5>$Data/EventData/ViewDetail$</AlertParameter5>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventData/eventConsolidationHash$</SuppressionValue>
</Suppression>
<Custom1>Performance</Custom1>
</WriteAction>
</WriteActions>
</Rule>