Collecter les statistiques .NET/\% de violations de performances/s

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

Compteur de performances Collecter les statistiques .NET/\% de violations de performances/s

Knowledge Base article:

Résumé

L'état d'instance devient non intègre si le taux d'événements de performances par période définie dépasse le seuil d'analyse.

Causes

Les alertes de performances des transactions sont générées lorsque le taux d'événements de performances dépasse le seuil d'analyse configuré.

Un problème de serveur de la base de données ou de structure et complexité de la demande de la base de données peut être à l'origine des appels excessivement longs de la base de données. Des problèmes de serveur de fichiers peuvent être à l'origine des temps d'E/S longs. Des problèmes de performances des services Web peuvent survenir en cas d'arrêt du service Web ou du serveur hébergeant le service ou en cas de problème dans le code du service Web. Des temps longs d'exécution interne des applications peuvent venir d'un code complexe ou inefficace.

Résolutions

Un appel de base de données long, un appel de service Web long, un appel distant .NET lent, un appel COM+ lent ou du code d'application inefficace peuvent être autant de causes habituelles de la dégradation des performances des applications.

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
Les statistiques .NET/\% de violations de performances/s a dépassé le seuil
Le compteur de performances de statistiques .NET/\% de violations de performances/s a dépassé le seuil configuré de {0} \%. La valeur du compteur de performances était {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>