.NET-Statistik/\% der Leistungsverletzungen/s erfassen

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

Leistungsindikator ".NET-Statistik/\% der Leistungsverletzungen/s erfassen"

Knowledge Base article:

Zusammenfassung

Fehler im Instanzstatus treten dann auf, wenn die Rate der Leistungsereignisse pro definiertem Zeitraum den Monitorschwellenwert überschreitet.

Ursachen

Leistungswarnungen für Transaktionen werden generiert, wenn die Rate der Leistungsereignisse den konfigurierten Monitorschwellenwert überschreitet.

Übermäßig lange Datenbankaufrufe können entweder von einem Problem des Datenbankservers oder von der Struktur und Komplexität der Datenbankabfrage verursacht werden. Lange Datei-E/A-Zeiten können durch Dateiserverprobleme verursacht werden. Leistungsprobleme mit Webdiensten treten möglicherweise auf, weil der Webdienst oder der Server, auf dem er sich befindet, nicht zur Verfügung steht oder ein Problem im Webdienstcode vorliegt. Lange interne Ausführungszeiten bei Anwendungen können an einem komplexen oder ineffizienten Code liegen.

Lösungen

Die typischen Ursachen für eine beeinträchtigte Anwendungsleistung können ein langer Datenbankaufruf, ein langer Webdienstaufruf, ein langsamer .NET-Remoting-Aufruf, ein langsamer COM+-Aufruf oder ein ineffizienter Anwendungscode sein.

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
Von ".NET-Statistik/\% der Leistungsverletzungen/s" wurde der Schwellenwert überschritten.
Vom Leistungsindikator ".NET-Statistik/\% der Leistungsverletzungen/s" wurde der konfigurierte Schwellenwert von {0} \% überschritten. Der Leistungsindikatorwert lag bei {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>