Raccolta di Applicazioni .NET/Tempo medio richiesta (ms)

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

Raccolta di Applicazioni .NET/Tempo Contatore delle prestazioni tempo di richiesta (ms)

Knowledge Base article:

Riepilogo

Lo stato dell'istanza diventa non integro se il tempo medio della richiesta per ogni periodo di tempo definito supera la soglia di monitoraggio.

Cause

Quando il numero di eventi prestazioni supera la soglia di monitoraggio configurata, vengono generati avvisi sulle prestazioni dell'applicazione.

Le chiamate al database eccessivamente lunghe potrebbero essere dovute a un problema del server o relativo alla struttura e alla complessità della query. I tempi eccessivamente lunghi delle attività di I/O dei file possono essere causati da problemi del file server. I problemi di prestazioni dei servizi Web possono verificarsi se il servizio Web o il server in cui questo risiede non è disponibile o se si è verificato un problema nel codice del servizio Web. I tempi eccessivamente lunghi per l'esecuzione interna delle applicazioni potrebbero essere causati da codice complesso o inefficiente.

Soluzioni

Un calo delle prestazioni tipico può essere causato da una chiamata al database eccessivamente lunga, una chiamata a un servizio Web eccessivamente lunga, una chiamata ai servizi remoti .NET lenta, una chiamata COM+ lenta o codice inefficiente dell'applicazione.

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
Soglia superata per Applicazioni .NET/Tempo medio richiesta
Il contatore delle prestazioni Applicazioni .NET/Tempo medio richiesta ha superato la soglia configurata di {0} ms. Valore del contatore delle prestazioni: {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>