Собирать "Статистика .NET/среднее время выполнения (мс)"

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

Собирать данные счетчика производительности "Статистика .NET/среднее время выполнения (мс)"

Knowledge Base article:

Сводка

Экземпляр переходит в неработоспособное состояние, если среднее время запроса за заданный промежуток времени превышает пороговое значение монитора.

Причины

Предупреждения о производительности транзакций на стороне клиента создаются, когда частота возникновения событий производительности превышает пороговое значение монитора.

Слишком длительные вызовы базы данных могут быть обусловлены неполадкой сервера или структурой и сложностью запроса. Медленные операции ввода-вывода могут быть обусловлены неполадкой файлового сервера. Неполадки производительности веб-служб могут быть вызваны неисправностями сервера, на котором выполняются веб-службы, или неполадками в коде веб-служб. Медленное внутреннее выполнение приложений может быть вызвано излишне сложным или нерациональным кодом.

Решения

Снижение производительности приложений обычно может быть вызвано длительными вызовами базы данных, длительными вызовами веб-служб, медленными удаленными вызовами .NET, медленными вызовами COM+ или нерациональным кодом приложений.

Element properties:

TargetMicrosoft.SystemCenter.Apm.Transaction
Parent MonitorSystem.Health.PerformanceState
CategoryCustom
EnabledFalse
Instance Name.NET Statistic
Counter NameAvg execution time
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableFalse
AccessibilityPublic
Alert Message
Значение счетчика "Статистика .NET/среднее время выполнения" превышает пороговое значение
Значение "Статистика.NET/среднее время выполнения" превысило настроенное пороговое значение {0} мс. Значение счетчика производительности было равно {1} мс.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.Apm.Transaction.AvgRequestTimeMonitor" 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.AvgRequestTimeMonitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Microsoft.SystemCenter.Apm.TransactionBase"]/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/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Avg execution time</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"]/AvgRequestTimeMonitorInterval$</Frequency>
<Threshold>$Target/Property[Type="Microsoft.SystemCenter.Apm.TransactionBase"]/AvgRequestTimeMonitorThreshold$</Threshold>
<Direction>greater</Direction>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>