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

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

Knowledge Base article:

Сводка

Состояние объекта меняется на неработоспособное, когда общее число событий производительности на стороне клиента для настроенной транзакции превышает пороговое значение монитора.

Причины

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

Время загрузки страницы может превышать пороговое значение:

Время отклика на вызовы AJAX может превышать пороговое значение:

Значительное время, потраченное на одну или несколько категорий, может указать на основную причину проблемы с производительностью. Например, время, затрачиваемое на обработку запросов и ответов сети, может указывать на медленное сетевое подключение. Длительное время ответа сервера может быть вызвано медленным серверным кодом; эту проблему можно устранить, исследуя связанные предупреждения о производительности сервера. Медленная загрузка DOM может быть связана со слишком сложной или большой страницей приложения и также может указывать на низкую производительность клиентского браузера. Длительное время выполнения события Window.OnLoad() или AJAX JavaScript указывает на неэффективный код на странице или может быть вызвано низкой производительностью клиентского браузера. Большое число перенаправлений страниц может быть вызвано сложным или неэффективным кодом приложения.

Решения

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

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

Element properties:

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

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SystemCenter.Apm.CsmWebPageTransaction.AlertPerformanceAspectRule" Enabled="false" ConfirmDelivery="false" Target="Microsoft.SystemCenter.Apm.CsmWebPageTransaction" Remotable="false">
<Category>Alert</Category>
<DataSources>
<DataSource ID="LOBProvider" TypeID="Microsoft.SystemCenter.Apm.Csm.CsmWebPageTransaction.LobDataProvider">
<Name>$Target/Host/Property[Type="AL!Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/ApplicationName$ (Client)</Name>
<AspectType>performance</AspectType>
<RootName>$Target/Property[Type="Microsoft.SystemCenter.Apm.CsmWebPageTransaction"]/PageName$</RootName>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="AlertWriteAction" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name='Microsoft.SystemCenter.Apm.CsmWebPageTransaction.AlertPerformanceAspectRule.AlertMessage']$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventData/log/properties/property[name="scomProblemDescription"]/value$</AlertParameter1>
<AlertParameter2>$Data/EventData/log/alertingThreshold$</AlertParameter2>
<AlertParameter3>$Target/Host/Property[Type="AL!Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/ApplicationName$</AlertParameter3>
<AlertParameter4>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</AlertParameter4>
<AlertParameter5>$Target/Property[Type="AL!Microsoft.SystemCenter.Apm.TransactionBase"]/TransactionName$</AlertParameter5>
<AlertParameter6>$Data/EventData/ViewDetail$</AlertParameter6>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventData/eventConsolidationHash$</SuppressionValue>
</Suppression>
<Custom1>Performance</Custom1>
</WriteAction>
</WriteActions>
</Rule>