Coletar Aplicativos .NET/Tempo Médio de Solicitações (ms)

Microsoft.SystemCenter.Apm.ApplicationInstance.AvgRequestTimeMonitor (UnitMonitor)

Coletar Aplicativos .NET/Tempo Médio de Solicitações (ms) - Contador de desempenho

Knowledge Base article:

Resumo

O estado da instância se tornará não íntegro se o tempo médio de solicitações por período de tempo definido exceder o limite do monitor.

Causas

Alertas de desempenho de aplicativo são gerados quando o número de eventos de desempenho excede o limite do monitor configurado.

Chamadas de banco de dados excessivamente longas podem estar relacionadas a um problema com o servidor ou com a estrutura e a complexidade da consulta. 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 devido a 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.ApplicationInstance
Parent MonitorSystem.Health.PerformanceState
CategoryCustom
EnabledFalse
Instance Name.NET Apps
Counter NameAvg. Request Time
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableFalse
AccessibilityPublic
Alert Message
Aplicativos .NET/Tempo Médio de Solicitações excedeu o limite
O contador de desempenho Aplicativos .NET/Tempo Médio de Solicitações excedeu o limite configurado de {0} ms. O valor do contador de desempenho era de {1} ms.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.Apm.ApplicationInstance.AvgRequestTimeMonitor" Accessibility="Public" Enabled="false" Target="Microsoft.SystemCenter.Apm.ApplicationInstance" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="false" Priority="Normal" TypeID="Performance!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.Apm.ApplicationInstance.AvgRequestTimeMonitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/AvgRequestTimeMonitorThreshold$</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/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>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/AvgRequestTimeMonitorInterval$</Frequency>
<Threshold>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/AvgRequestTimeMonitorThreshold$</Threshold>
<Direction>greater</Direction>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>