Recolher Aplicações .NET/Méd. Tempo do Pedido (ms)

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

Recolher Aplicações .NET/Méd. Contador de desempenho de Tempo do Pedido (ms)

Knowledge Base article:

Resumo

O estado da instância fica danificado se o tempo médio pedido por período de tempo definido exceder o limiar de monitorização.

Causas

São gerados alertas de desempenho de aplicações quando o número de eventos de desempenho ultrapassa o limiar de monitorização configurado.

Chamadas de base de dados excessivamente longas podem dever-se a problemas com o servidor ou com a estrutura e complexidade da consulta. Tempos E/S de ficheiro longos podem dever-se a problemas com o servidor de ficheiros. Podem ocorrer problemas de desempenho com os Serviços Web, porque o Serviço Web, ou o servidor onde reside, está em baixo ou há um problema com o código do Serviço Web. Os tempos de execução interna longos para aplicações podem dever-se a um código complexo ou ineficaz.

Resoluções

A degradação típica no desempenho da aplicação pode ser causada por uma chamada de base de dados longa, uma chamada de serviço web longa, uma chamada Remota de .NET lenta, uma chamada COM+ lenta, ou um código de aplicação 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
Aplicações .NET/Méd. Tempo do Pedido excedeu o limiar.
Aplicações .NET/Méd. O contador de desempenho do Tempo de Pedido excedeu o limiar configurado de {0} ms. O valor do contador de desempenho era {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>