.NET-Anwendungen/Durchschn. Anforderungszeit (ms) erfassen

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

.NET-Anwendungen/Durchschn. "Anforderungszeit (ms)" erfasst.

Knowledge Base article:

Zusammenfassung

Fehler im Instanzstatus treten dann auf, wenn die durchschnittliche Anforderungszeit pro definiertem Zeitraum den Monitorschwellenwert überschreitet.

Ursachen

Leistungswarnungen für Anwendungen werden erzeugt, wenn die Anzahl der Leistungsereignisse den konfigurierten Monitorschwellenwert überschreitet.

Übermäßig lange Datenbankaufrufe können entweder an einem Problem mit dem Server oder an der Struktur und Komplexität der Anfrage liegen. Lange Datei-E/A-Zeiten können an Problemen mit dem Dateiserver liegen. 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.ApplicationInstance
Parent MonitorSystem.Health.PerformanceState
CategoryCustom
EnabledFalse
Instance Name.NET Apps
Counter NameAvg. Request Time
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableFalse
AccessibilityPublic
Alert Message
.NET-Anwendungen/Durchschn. Anforderungszeit hat den Schwellenwert überschritten
Der Indikator ".NET-Anwendungen/Durchschn. Von dem Leistungsindikator "Anforderungszeit" wurde der konfigurierte Schwellenwert von {0} ms überschritten. Der Leistungsindikatorwert lag bei {1} ms.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.Apm.ApplicationInstance.AvgRequestTimeMonitor" 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.AvgRequestTimeMonitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/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/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Avg. Request Time</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"]/AvgRequestTimeMonitorInterval$</Frequency>
<Threshold>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/AvgRequestTimeMonitorThreshold$</Threshold>
<Direction>greater</Direction>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>