Samla in .NET-statistik/prestandabrott i procent/sek

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

Samla in prestandaräknaren .NET-statistik/prestandabrott i procent/sek

Knowledge Base article:

Sammanfattning

Instansen övergår i feltillstånd om mängden prestandahändelser per angiven tidsperiod överskrider övervakarens tröskelvärde.

Orsaker

Aviseringar om transaktionsprestanda genereras när mängden prestandahändelser överskrider övervakarens angivna tröskelvärde.

Överdrivet långa databasanrop kan bero på problem med databasservern eller med databasfrågans struktur och uppbyggnad. Långa skriv- och lästider av en fil kan bero på problem med filservern. Problem med webbtjänstprestanda kan uppstå om webbtjänsten eller servern där den lagras är nere eller om det finns problem i webbtjänstkoden. Långa interna körningstider för program kan bero på komplex eller ineffektiv kod.

Lösningar

Försämring av programprestandan beror vanligtvis på ett långt databasanrop, ett långt webbtjänstanrop, ett långsamt .NET-fjärranrop, ett långsamt COM+-anrop eller en ineffektiv programkod.

Element properties:

TargetMicrosoft.SystemCenter.Apm.Transaction
Parent MonitorSystem.Health.PerformanceState
CategoryCustom
EnabledFalse
Instance Name.NET Statistic
Counter Name\% of Performance violations/sec
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableFalse
AccessibilityPublic
Alert Message
.NET-statistik/prestandabrott i procent/sek har överskridit tröskelvärdet
Prestandaräknaren .NET-statistik/prestandabrott i procent/sek har överskridit det angivna tröskelvärdet på {0}\%. Prestandaräknarens värde var {1}\%.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.Apm.Transaction.PerformanceRateMonitor" 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.PerformanceRateMonitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Microsoft.SystemCenter.Apm.TransactionBase"]/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/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>% of Performance violations/sec</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"]/PerformanceRateMonitorInterval$</Frequency>
<Threshold>$Target/Property[Type="Microsoft.SystemCenter.Apm.TransactionBase"]/PerformanceRateMonitorThreshold$</Threshold>
<Direction>greater</Direction>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>