Shromažďovat aplikace .NET/\% událostí výkonu/s

Microsoft.SystemCenter.Apm.ApplicationInstance.PerformanceRateMonitor (UnitMonitor)

Shromažďovat čítač výkonu aplikace .NET/\% událostí výkonu/s

Knowledge Base article:

Souhrn

Stav instance se změní na Není v pořádku, pokud frekvence událostí výkonu za definované časové období překročí prahovou hodnotu monitorování.

Příčiny

Výstrahy výkonu aplikací se vygenerují, pokud frekvence 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 s databázovým serverem, nebo se strukturou a složitostí databázového 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 být způsobeno dlouhým voláním databáze, dlouhým voláním webové služby, pomalým vzdáleným voláním rozhraní .NET, pomalým voláním modelu COM+ nebo neúčinným kódem aplikace.

Element properties:

TargetMicrosoft.SystemCenter.Apm.ApplicationInstance
Parent MonitorSystem.Health.PerformanceState
CategoryCustom
EnabledFalse
Instance Name.NET Apps
Counter Name\% Performance Events/sec
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableFalse
AccessibilityPublic
Alert Message
Čítač aplikace .NET/\% událostí výkonu/s překročil prahovou hodnotu
Čítač výkonu aplikace .NET/\% událostí výkonu/s překročil nakonfigurovanou prahovou hodnotu {0} \%. Hodnota čítače výkonu byla {1}\%.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.Apm.ApplicationInstance.PerformanceRateMonitor" Accessibility="Public" Enabled="false" Target="Microsoft.SystemCenter.Apm.ApplicationInstance" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="false" Priority="Normal" TypeID="Performance!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.Apm.ApplicationInstance.PerformanceRateMonitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/PerformanceRateMonitorThreshold$</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/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>% Performance Events/sec</CounterName>
<ObjectName>.NET Apps</ObjectName>
<InstanceName>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstance"]/CounterInstance$</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/PerformanceRateMonitorInterval$</Frequency>
<Threshold>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/PerformanceRateMonitorThreshold$</Threshold>
<Direction>greater</Direction>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>