Coletar Estatística do .NET/\% de Violações de Desempenho/s

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

Coletar o contador de desempenho Estatística do .NET/\% de Violações de Desempenho/s

Knowledge Base article:

Resumo

O estado da instância se tornará não íntegro se a taxa de eventos de desempenho por período de tempo definido exceder o limite do monitor.

Causas

Alertas de desempenho de transação são gerados quando a taxa de eventos de desempenho excede o limite do monitor configurado.

Chamadas de banco de dados excessivamente longas podem ser causadas por um problema com o servidor de banco de dados ou com a estrutura e a complexidade da consulta de banco de dados. Tempos longos de E/S de arquivo podem estar relacionados a problemas com o servidor de arquivos. Problemas de desempenho de serviços Web podem ocorrer porque o serviço Web ou o servidor no qual ele reside está inoperante ou porque há um problema no código desse serviço Web. Tempos longos de execução interna para aplicativos podem ser o resultado de um código complexo ou ineficiente.

Resoluções

A típica degradação do desempenho do aplicativo pode ser causada por uma chamada longa de banco de dados, uma chamada longa de serviço Web, uma chamada lenta de comunicação remota do .NET, uma chamada COM+ lenta ou um código de aplicativo 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
Estatística do .NET/\% de Violações de Desempenho/s excedeu o limite
O contador de desempenho Estatística do .NET/\% de Violações de Desempenho/s excedeu o limite configurado de {0}\%. O valor do contador de desempenho era de {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>