Создать предупреждение для события производительности транзакций APM

Microsoft.SystemCenter.Apm.FunctionTransaction.AlertPerformanceAspectRule (Rule)

Knowledge Base article:

Сводка

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

Причины

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

Решения

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

Для получения дополнительных сведений об этом предупреждении используйте ссылку на сведения о событии в описании предупреждения или на вкладке "Контекст предупреждения". Ссылка откроет событие в консоли диагностики приложения. Консоль диагностики приложения содержит информацию, связанную с этим событием, а также с другими схожими событиями, которые были обнаружены.

Element properties:

TargetMicrosoft.SystemCenter.Apm.FunctionTransaction
CategoryAlert
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Исключение производительности транзакции
Транзакция {3} приложения {1} в {2} превысила настроенное пороговое значение {0} мс. Для получения дополнительной информации используйте следующую ссылку: $Url[Query='{4}']/APMEvent$

Member Modules:

ID Module Type TypeId RunAs 
LOBProvider DataSource Microsoft.SystemCenter.Apm.FunctionTransaction.LobDataProvider Default
AlertWriteAction WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SystemCenter.Apm.FunctionTransaction.AlertPerformanceAspectRule" Enabled="false" ConfirmDelivery="true" Target="Microsoft.SystemCenter.Apm.FunctionTransaction">
<Category>Alert</Category>
<DataSources>
<DataSource ID="LOBProvider" TypeID="Microsoft.SystemCenter.Apm.FunctionTransaction.LobDataProvider">
<Name>$Target/Host/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/ApplicationName$</Name>
<AspectType>performance</AspectType>
<RootName>$Target/Property[Type="Microsoft.SystemCenter.Apm.FunctionTransaction"]/FunctionName$</RootName>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="AlertWriteAction" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertName/>
<AlertDescription/>
<AlertMessageId>$MPElement[Name='Microsoft.SystemCenter.Apm.FunctionTransaction.AlertPerformanceAspectRule.AlertMessage']$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Microsoft.SystemCenter.Apm.Transaction"]/PerformanceThreshold$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/ApplicationName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter3>
<AlertParameter4>$Target/Property[Type="Microsoft.SystemCenter.Apm.TransactionBase"]/TransactionName$</AlertParameter4>
<AlertParameter5>$Data/EventData/ViewDetail$</AlertParameter5>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventData/eventConsolidationHash$</SuppressionValue>
</Suppression>
<Custom1>Performance</Custom1>
</WriteAction>
</WriteActions>
</Rule>