AppDynamics は、Java アプリケーションのサービスエンドポイントを自動検出します。Java または .NET のカスタム サービス エンドポイントを構成して、サービスのパフォーマンスをモニタできます。

エージェントが除外ルールに一致するメソッドのサービスエンドポイントを登録しないようにする、サービスエンドポイントの除外ルールを構成することもできます。マッチルール、除外ルール、および自動ルールの優先順位は次のとおりです。

  1. 除外ルール
  2. カスタムサービスエンドポイントルール
  3. 自動検出

権限

サービスエンドポイントを構成するには、ユーザーアカウントにビジネスアプリケーションの「サービスエンドポイントの構成」が許可されている必要があります。AppDynamics ロールベースのアクセス制御の詳細については、「アプリケーションの権限」を参照してください。

カスタムサービスエンドポイントの構成

カスタムサービスエンドポイントの構成は、ビジネストランザクションにカスタムマッチルールを構成するのと同様に行います。

  1. [Service Endpoints] ペインで [Configure] をクリックします。 
  2. [Custom Service Endpoint] タブをクリックします。
  3. サービスを実行するティアを選択し、プラスのアイコンをクリックしてサービスエンドポイントの構成を追加。構成設定はビジネストランザクションのエントリポイント構成設定と似ています。詳細については、カスタムマッチルールを参照してください。  

サービスエンドポイントのメソッドを選択する際には、以下のプログラミングパターン内で発生するメソッドは避けてください。

  • forループやwhileループなどの高頻度ループ。
  • 再帰的関数。

そのような構造の内部のサービスエンドポイントはパフォーマンスのオーバーヘッドを引き起こす場合があります。代わりに、コード内で高頻度のループまたは再帰的関数からアップストリームのポイントにサービスエンドポイントを追加することを検討してください。

サービスエンドポイント除外ルールの構成は、カスタム サービス エンドポイントと同じペインで行います。[New Service Endpoint Definition ] ペインで [Is Exclude Rule ] をクリックします。 

Javaの自動検出

Java エージェントは、サービスエンドポイントを自動検出します。サービスエンドポイントの自動検出設定を構成するには、[Service Endpoints] ペインの [Configure] をクリックします。次の設定値を設定できます。

  • 既存のサービスエンドポイント検出ルールの場合は、検出ルールを有効または無効にできます。
  • サーブレットサービスエンドポイントの場合は、サーブレットビジネストランザクションと同様に自動命名を変更できます。

POJO サービスエンドポイント

Java エージェント に POJO(Plain Old Java Object)サービスエンドポイントを検出させるには、次を行う必要があります。

  • POKOカスタムサービスエンドポイントの定義を少なくとも1つ作成し有効にする。エージェントは、有効なカスタムサービスエンドポイントの定義のPOJOサービスエンドポイントのみを検出。

  • POJOサービスエンドポイントの自動検出が有効になっていることを確認。デフォルトでは有効。

    POJOサービスエンドポイントの自動検出を無効にすると、エージェントはカスタムサービスエンドポイントを検出しません。

非同期ワーカー スレッド サービス エンドポイント

Java エージェントは、トランザクション内で生成された非同期ワーカースレッドをサービスエンドポイントとして自動検出します。エージェントは、クラス名(「worker1」など)に基づいてワーカー スレッド サービス エンドポイントを命名します。ワーカー スレッド サービス エンドポイントにエンドツーエンド遅延メトリックはありません。

ワーカースレッドサービスエンドポイントを無効にするには、非同期サービスエンドポイントの有効化(enable-async-service-endpoints)アプリケーションエージェントノードプロパティの値を「false」に設定します。「アプリケーション エージェントのノードプロパティ」を参照してください。

.NETのサービスエンドポイント構成

.NET エージェントは、サービスエンドポイントを自動検出しません。.NET のカスタム サービス エンドポイントを定義するには、[Configuration > Instrumentation > Service Endpoints > Custom Service Endpoints] に移動します。ビジネストランザクションに対するカスタムマッチルールと同様の方法で、サービスエンドポイントを定義します。サービスエンドポイントおよびトランザクション検出ルール」を参照してください

以下のエントリポイントタイプのサービスエンドポイントを作成できます。

  • ASP.NET
  • メッセージキュー
  • POCO
  • WCF
  • Webサービス

.NETエージェントは、MSMQ に対するサービスエンドポイントに対応していません。

デフォルトでは、POCO サービスエンドポイントの追加など、インストゥルメンテーションの変更を有効化するにはインストゥルメント化されたアプリケーションを再起動する必要があります。.NET エージェントのランタイム リインストゥルメンテーションを有効化すると、インストゥルメンテーションの変更後にアプリケーションと AppDynamics.Agent.Coordinator を再起動する必要がなくなります。

カスタムサービスエンドポイントを構成すると、サービスエンドポイントが実行される場所のKPIとトランザクションスナップショットがサービスエンドポイントダッシュボードに表示され、監視することができます。メトリックブラウザを使用して、サービスエンドポイントのパフォーマンスを分析することも可能です。詳細については、サービスエンドポイントを参照してください。

.NETサービスエンドポイントの定義について

ビジネストランザクションのエントリポイントとして機能するメソッドは、多くの場合、サービスエンドポイントとしても監視が必要なメソッドです。ビジネストランザクションの発生元エントリポイントにサービスエンドポイントを作成できます。 

  • ASP.NET サービスエンドポイントの場合は、URL を使用してサービスエンドポイントを定義できます。たとえば、上記の Travel Site ティアでは、URL マッチを「/Travel/Search」に設定します。
  • WCFとASP.NETウェブサービスのエントリーポイントについては、既存のトランザクションスナップショットを使用して、そのサービスのURLを見つける。
    1. ビジネストランザクションの完全なトランザクションスナップショットを開きます。
    2. アップストリームティアで、終了コールのリンク(WCF または Web Service)をクリック。
      イグジットコールウィンドウにウェブサービスのURLが表示される。
      Web Service URL
    3. ブラウザでサービスURLを開く。
    4. サービスページからURLを使用してWSDLファイルにアクセスする。
      Service URL
    5.  service name element shows the service name.

      <wsdl:service name="Service1">
      CODE
  • ビジネストランザクションに対するPOCOカスタムマッチルールと同様の方法で、サービスエンドポイントを定義する。