Recopilar datos de porcentaje de infracciones de rendimiento por seg. de estadísticas .NET

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

Recopilar datos del contador de rendimiento de porcentaje de infracciones de rendimiento por seg. de estadísticas .NET

Knowledge Base article:

Resumen

El estado de la instancia pasa a ser incorrecto si la tasa de eventos de rendimiento por período de tiempo definido supera el umbral del monitor.

Causas

Se generan alertas de rendimiento de transacción cuando la tasa de eventos de rendimiento supera el umbral de monitor configurado.

Las llamadas de base de datos excesivamente largas pueden deberse a un problema en el servidor de base de datos o a la estructura y la complejidad de la consulta de base de datos. 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.

Soluciones

El deterioro típico del rendimiento de una aplicación puede deberse a una llamada larga de base de datos o de servicio web, a una llamada lenta de comunicación remota .NET o de COM+, o a un código de aplicación ineficiente.

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
El porcentaje de infracciones de rendimiento por seg. de estadísticas .NET superó el umbral
El contador de rendimiento de porcentaje de infracciones de rendimiento por seg. de estadísticas .NET superó el umbral configurado de {0}\%. El valor del contador de rendimiento es {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>