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

Microsoft.SystemCenter.Apm.ApplicationInstance.CollectAvgDurationTimeSeconds (Rule)

Il contatore delle prestazioni Applicazioni .NET/Tempo medio richiesta (sec) fornisce il tempo medio necessario all'applicazione per rispondere alle richieste

Knowledge Base article:

Riepilogo

Questa regola raccoglie il contatore delle prestazioni Applicazioni .NET/Tempo medio richiesta per le applicazioni.

Il contatore registra il tempo medio (in secondi) necessario per l'elaborazione di una richiesta da parte di un'applicazione. Il conteggio del tempo per ogni richiesta inizia quando la richiesta raggiunge l'applicazione e si interrompe quando la richiesta viene eseguita correttamente o risulta non riuscita in una certa area del codice. Viene quindi calcolata la media della somma di questi tempi per il numero totale di richieste monitorate. Se questo tempo supera in modo costante i 10000 ms, è presente un collo di bottiglia che dovrà essere esaminato.

Questo contatore è disponibile solo quando è abilitato il monitoraggio delle 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 potrebbero essere causati da problemi del file server. I problemi di prestazioni dei servizi Web potrebbero 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.

Element properties:

TargetMicrosoft.SystemCenter.Apm.ApplicationInstance
CategoryPerformanceCollection
EnabledTrue
Instance Name.NET Apps
Counter NameAvg. Request Time
Frequency300
Alert GenerateFalse
RemotableFalse

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource System.Performance.DataProvider Default
Mapper ConditionDetection System.Performance.DataGenericMapper Default
WriteToDB WriteAction Microsoft.SystemCenter.CollectPerformanceData Default
WriteToDW WriteAction Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData Default

Source Code:

<Rule ID="Microsoft.SystemCenter.Apm.ApplicationInstance.CollectAvgDurationTimeSeconds" Enabled="true" Target="Microsoft.SystemCenter.Apm.ApplicationInstance" ConfirmDelivery="false" Remotable="false" Priority="Normal" DiscardLevel="100">
<Category>PerformanceCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Performance!System.Performance.DataProvider">
<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>300</Frequency>
<ScaleBy>1000</ScaleBy>
</DataSource>
</DataSources>
<ConditionDetection TypeID="Performance!System.Performance.DataGenericMapper" ID="Mapper">
<ObjectName>.NET Apps</ObjectName>
<CounterName>Avg. Request Time (seconds)</CounterName>
<InstanceName>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstance"]/CounterInstance$</InstanceName>
<Value>$Data/Value$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="WriteToDB" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData"/>
<WriteAction ID="WriteToDW" TypeID="SCDW!Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData"/>
</WriteActions>
</Rule>