Shromáždit statistiku .NET/průměrný čas spuštění (ms)

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

Shromáždit čítač výkonu statistiky .NET/průměrného času spuštění (ms)

Knowledge Base article:

Souhrn

Stav instance se změní na Není v pořádku, pokud průměrná doba požadavku za definované časové období překročí prahovou hodnotu monitorování.

Příčiny

Výstrahy výkonu transakcí se vygenerují, pokud počet událostí výkonu překročí nakonfigurovanou prahovou hodnotu monitorování.

Nadměrně dlouhá volání databáze mohou být způsobena buď problémem se serverem, nebo se strukturou a složitostí dotazu. Dlouhé časy vstupu a výstupu mohou být způsobeny problémy se souborovým serverem. Problémy s výkonem webových služeb mohou být způsobeny tím, že webová služba nebo server, na němž je umístěna, jsou vypnuty nebo došlo k problému v kódu webové služby. Dlouhé časy interního provedení u aplikací mohou být způsobeny složitým nebo neefektivním kódem.

Řešení

Typické snížení výkonu aplikace mohlo nastat z důvodu dlouhého volání databáze, dlouhého volání webové služby, pomalého vzdáleného volání rozhraní .NET, pomalého volání modelu COM+ nebo neúčinného kódu aplikace.

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
Statistika .NET/průměrný čas spuštění překročila prahovou hodnotu.
Čítač výkonu statistiky .NET/průměrného času spuštění překročil nakonfigurovanou prahovou hodnotu {0} ms. Hodnota čítače výkonu byla {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>