トランザクション パフォーマンスの APM イベントのアラートを生成します。

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

Knowledge Base article:

概要

定義された期間のパフォーマンス イベントの合計発生数がモニターのしきい値を超えると、インスタンスの状態が異常になります。

原因

アプリケーションのパフォーマンス アラートは、アプリケーションの実行時間が、構成されたアラートのしきい値を超えた場合に生成されます。アラートの詳細には、実行時間中にさまざまな関数の呼び出しにかかった時間の割合 (%) が示されます。データベースの呼び出しに長時間かかる場合は、サーバーの問題や、クエリの構造と複雑さが原因の可能性があります。ファイル I/O 時間が長い場合は、ファイル サーバーに問題があることが考えられます。Web サービスのパフォーマンスの問題は、Web サービス、またはそのサービスが常駐しているサーバーがダウンしているか、Web サービスのコードの問題が原因で発生することがあります。アプリケーションの内部実行時間が長い場合は、コードが複雑なことや効率がよくないことが考えられます。

解決方法

アプリケーションのパフォーマンス アラートは、アプリケーションの実行時間が、構成されたしきい値を超えた場合に生成されます。通常、アプリケーション パフォーマンスの劣化の原因には、データベースの呼び出しや Web サービスの呼び出しに長時間かかること、.NET リモート処理の呼び出しや COM+ の呼び出しが遅いこと、アプリケーション コードの効率がよくないことが考えられます。

このアラートの詳細については、[アラートの説明] および [アラートのコンテキスト] タブに表示されるイベント詳細へのリンクを使用してご確認ください。リンクをクリックすると、Application Diagnostics コンソールで該当するイベントが開きます。Application Diagnostics コンソールには、そのイベントに固有の情報と、検出された関連イベントおよび類似イベントの情報が表示されます。

Element properties:

TargetMicrosoft.SystemCenter.Apm.FunctionTransaction
CategoryAlert
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
トランザクション パフォーマンス例外
{2} のアプリケーション {1} のトランザクション {3} が、構成されているしきい値 ({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>