Recopilar datos de tiempo medio de solicitud (s) de estadísticas .NET

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

Recopila estadística de .NET/promedio Contador de rendimiento de tiempo de solicitud (s)

Knowledge Base article:

Resumen

Esta regla recopila datos del contador de rendimiento de tiempo medio de ejecución de estadísticas .NET para transacciones.

El contador registra el tiempo medio (en segundos) que una transacción tarda en procesar una solicitud. El control del tiempo de cada solicitud comienza cuando la solicitud llega a la aplicación y se detiene cuando la solicitud se completa correctamente o se produce un error en algún punto del código. Se calcula el promedio de estos tiempos con respecto al número total de solicitudes supervisadas. Si este tiempo supera constantemente los 10.000 ms, indica que hay que investigar un cuello de botella.

Este contador sólo está disponible si la supervisión de rendimiento de aplicaciones está habilitada.

Las llamadas de base de datos excesivamente largas pueden deberse a un problema en el servidor o a la estructura y la complejidad de la consulta. Los tiempos largos de E/S de archivos pueden deberse a problemas en el servidor de archivos. Pueden producirse problemas de rendimiento de servicio web porque el servicio web o el servidor en el que reside se encuentran inactivos, o porque hay un problema en el código del servicio web. Los tiempos largos de ejecución interna de las aplicaciones pueden deberse a un código complejo o ineficiente.

Element properties:

TargetMicrosoft.SystemCenter.Apm.Transaction
CategoryPerformanceCollection
EnabledTrue
Instance Name.NET Statistic
Counter NameAvg execution 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.Transaction.CollectAvgDurationTimeSeconds" Enabled="true" Target="Microsoft.SystemCenter.Apm.Transaction" ConfirmDelivery="false" Remotable="false" Priority="Normal" DiscardLevel="100">
<Category>PerformanceCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Performance!System.Performance.DataProvider">
<ComputerName>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Avg execution time</CounterName>
<ObjectName>.NET Statistic</ObjectName>
<InstanceName>$Target/Property[Type="Microsoft.SystemCenter.Apm.Transaction"]/CounterInstance$</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>300</Frequency>
<ScaleBy>1000</ScaleBy>
</DataSource>
</DataSources>
<ConditionDetection TypeID="Performance!System.Performance.DataGenericMapper" ID="Mapper">
<ObjectName>.NET Statistic</ObjectName>
<CounterName>Avg execution time (seconds)</CounterName>
<InstanceName>$Target/Property[Type="Microsoft.SystemCenter.Apm.Transaction"]/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>