このページでは、AppDynamics のポリシーの概要について説明します。
ポリシーは、1 つ以上のイベントを基準とするトリガーと、そのトリガーに直接応じるアクションとで構成されます。ポリシーは、モニタリング、アラート、問題の修復を自動化するために使用できます。
ポリシーの表示
ポリシーの表示や作成を行うには、Alert & Respond > Policies を選択してポリシーの UI に移動します。
ポリシーリストには、アプリケーションのために作成したすべてのポリシーが、そのトリガーと実行されるアクションとともに表示されます。ポリシーリストでポリシーをダブルクリックすると、そのポリシーを修正できます。
ポリシートリガー
ポリシートリガーは、ポリシーを発動させるイベントです。イベントには、正常性ルール違反のイベントをはじめ、トランザクションの遅延しきい値への到達や、リソースプール上限の超過といったさまざまなタイプがあります。「正常性ルール」、「正常性ルールの違反のトラブルシューティング」、および「イベントのモニタリング」を参照してください。
トリガーイベントは、アプリケーション内のあらゆるオブジェクトに影響する広範なものでも、特定のオブジェクトに影響する限定的なものでも構いません。たとえば、アプリケーション内の全オブジェクトを対象として、リソースプールの制限(EJB プール、接続プール、スレッドプールを 80% 以上使用など)に達すると必ず発動するよう広範囲で定義されたポリシーを設定できます。また、影響範囲を限定して定義したポリシーとしては、メモリ使用や JVM ガベージコレクション時間に対する既存の正常性ルールに違反した場合にのみ発動するポリシーが挙げられます。
ポリシーは、指定した1つ以上のオブジェクトで、指定した1つ以上のトリガーイベントが発生すると発動します。
ポリシーのアクション
メールやSMS通知など、ポリシーがトリガーされた際に実施するアクションを割り当てることができます。その他のタイプのアクションでは、通知以上のことが行えます。たとえば、リソースプール違反があった場合にプールサイズを増加させるスクリプトをトリガーさせることができます。
その他一般的なアクションとしては、アプリケーションサーバーのクラッシュ時に再起動することや、ブロックされているメッセージキューをパージすること、またはトランザクションスナップショットの収集をトリガーすることなどが挙げられます。また、サードパーティシステムを呼び出すカスタムアクションをトリガーすることもできます。
正常性ルールの定義はアクションの定義とは別個であるため、ティアでのしきい値超過とノードでのしきい値超過のように、状況の異なるイベントに別々のアクションを指定できます。
カスタムアクションについて詳しくは、「Build a Custom Action」を参照してください。各タイプのアクションについては、「アクション」を参照してください。
ポリシーの一括アクション
ポリシーによるアクションの実行は、以下のいずれかの方法で構成できます。
- トリガーイベントごとにただちに。
たとえば、あるポリシーで 2 秒間に 100 件のイベントが突き合わせられた場合、そのポリシーは各イベントの発生直後にそれらのアクションを 100 回分開始します。 - 過去 1 分間にトリガーされたすべてのイベントについて 1 分間に 1 回。これはバッチオプションです。[Execute actions in batch] チェックボックスは、デフォルトで選択されています。
たとえば、あるポリシーで 2 秒間に 100 件のイベントが突き合わせられた場合、次の 58 秒間にトリガーイベントが発生しないと、ポリシーは各アクションを 1 回だけ開始します。アクションのコンテキストは、100 件のイベントすべてになります。
選択内容は、主にアクションのタイプによります。通知アクションの場合、数秒間に 100 件のメールまたは SMS メッセージを送信することは意味がありません。この場合、最後の1分間で発生するイベントのサマリでアクションを一括して行う方が良いでしょう。イベントリスト全体に反復されるメールテンプレートを使用して、簡単に実行できます。定義済みのテンプレート変数 の例を参照してください。
ただし、アクションがスレッドダンプの場合、100 件のイベントすべてが同じノード上にあることを想定する理由はありません。これらは異なるノード上にある可能性があります。この種のアクションについては、スレッドダンプを各イベントに対して実行し、スレッドダンプを取得する前に 58 秒間待機しないようにすることが考えられます。