Zbieranie wartości licznika Statystyka .NET/średni czas wykonania (ms)

Microsoft.SystemCenter.Apm.Transaction.AvgRequestTimeMonitor (UnitMonitor)

Zbiera dane licznika wydajności Statystyka .NET/średni czas wykonania (ms)

Knowledge Base article:

Podsumowanie

Stan wystąpienia staje się nieprawidłowy, jeśli średni czas żądania w ustalonym okresie przekracza próg monitora.

Przyczyny

Alerty wydajności transakcji są generowane, jeśli liczba zdarzeń wydajności przekracza skonfigurowany próg monitora.

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

Typowy spadek wydajności aplikacji może być spowodowany długim wywołaniem bazy danych, długim wywołaniem usługi sieci Web, powolnym wywołaniem funkcji zdalnych .NET, powolnym wywołaniem modelu COM+ lub nieefektywnością kodu aplikacji.

Element properties:

TargetMicrosoft.SystemCenter.Apm.Transaction
Parent MonitorSystem.Health.PerformanceState
CategoryCustom
EnabledFalse
Instance Name.NET Statistic
Counter NameAvg execution time
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableFalse
AccessibilityPublic
Alert Message
Licznik Statystyka .NET/średni czas wykonania (ms) przekroczył próg
Licznik wydajności Statystyka .NET/średni czas wykonania (ms) przekroczył skonfigurowany próg wynoszący {0} ms. Wartość licznika wynosiła {1} ms.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.Apm.Transaction.AvgRequestTimeMonitor" Accessibility="Public" Enabled="false" Target="Microsoft.SystemCenter.Apm.Transaction" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="false" Priority="Normal" TypeID="Performance!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.Apm.Transaction.AvgRequestTimeMonitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Microsoft.SystemCenter.Apm.TransactionBase"]/AvgRequestTimeMonitorThreshold$</AlertParameter1>
<AlertParameter2>$Data/Context/SampleValue$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="ConditionTrue" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Avg execution time</CounterName>
<ObjectName>.NET Statistic</ObjectName>
<InstanceName>$Target/Property[Type="Microsoft.SystemCenter.Apm.Transaction"]/CounterInstance$</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>$Target/Property[Type="Microsoft.SystemCenter.Apm.TransactionBase"]/AvgRequestTimeMonitorInterval$</Frequency>
<Threshold>$Target/Property[Type="Microsoft.SystemCenter.Apm.TransactionBase"]/AvgRequestTimeMonitorThreshold$</Threshold>
<Direction>greater</Direction>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>