Versions Compared

    Key

    • This line was added.
    • This line was removed.
    • Formatting was changed.
    Comment: Published by Scroll Versions from this space and version 20.8
    Sv translation
    languageen

    The Java Agent supports Jersey 1.x and 2.x by default.

    Business transaction entry points are named using the following app agent node properties:

    Business Transaction Naming Scheme

    By default, the Java Agent makes a best-effort basis to name JAX-RS-based transactions using the class annotation, method annotation, and HTTP method of the detected entry point, in the following form:

    No Format
    {class-annotation}/{method-annotation}.{http-method}

    In some situations where the annotation values are not available, the agent may name the transaction as follows:

    No Format
    {fully qualified class name}.{method}

    For example, when the JAX RS service endpoints don't have the class and method names in them explicitly, but the annotations are inferred in some other way.

    For annotation inheritance cases, the agent attempts to fetch the annotations from the superclasses and interfaces as described by the JAX RS specification. The specification makes the following recommendation:

    For consistency with other Java EE specifications, it is recommended to always repeat annotations instead of relying on annotation inheritance.

    Repeating annotations on the endpoint methods enables the Java Agent to name business transaction according to the default scheme.

    rest-transaction-naming Variables

    The rest-transaction-naming node agent property enables you to control naming for JAX-RS-based business transactions. You can use variables to have the transactions named with runtime values, for example, based on the method name, class name, parameter values, and more. For a full list of variables, see App Agent Node Properties Reference.

    You can add a getter chain after any of the parameters to operate on the parameter values. To do so, add ':' followed by the getter chain. Standard getter chain escape requirements and rules apply.

    Naming Examples

    The following example shows naming based on a part of the value of the sixth parameter:

    No Format
    rest-transaction-naming={param-5:toString().toLowerCase().subString(5,20)}

    The characters '{' and '}' are reserved. If used in getter chains or as text in the name the characters must be escaped with '\'. E.g. {{class-name}} would display as {com.singularity.RestObject}. 

    You can use characters in addition to parameters. For example, in the following example, the class name and method name are separated by a slash:

    No Format
    rest-transaction-naming={class-name}/{method-name}

    Based on this example, when the Java Agent sees a REST resource with a class name of com.company.rest.resources.Employees with a CreateNewEmployee method, it names the business transaction com.company.rest.resources.Employees/CreateNewEmployee.

    Sv translation
    languageja
    Appd tocbox
    Width340px

    On this page:

    Table of Contents
    maxLevel2
    minLevel2

    Javaエージェントは、デフォルトでJersey 1.xおよび2.xをサポートします。

    ビジネストランザクションエントリポイントは、以下のアプリケーションエージェントノードプロパティを使って名前を付けられます。

    ビジネストランザクション命名スキーム

    デフォルトで、Javaエージェントはベストエフォートに基づいて、 検出されたエントリポイントのクラス注釈、メソッド注釈、およびHTTPメソッドを使って以下の形式でJAX-RSベーストランザクションに名前を付けます。

    No Format
    {class-annotation}/{method-annotation}.{http-method}

    注釈値が利用できない場合、エージェントは次のようにトランザクションを命名できます。

    No Format
    {fully qualified class name}.{method}

    たとえば、JAX RSサービスエンドポイントにクラスおよびメソッド名が明示的には含まれていないが、他の何らかの方法で注釈が暗示されている場合があります。

    注釈の継承の場合、エージェントは、「JAX RS 仕様」で説明しているように、スーパークラスおよびインターフェイスから注釈を取得しようとします。この仕様では次の点を推奨しています。

    他のJava EE仕様との一貫性のため、注釈の継承に依存するのではなく、常に注釈を繰り返すことを推奨しています。

    エンドポイントメソッドで注釈を繰り返すと、Javaエージェントが、デフォルトのスキームに従ってビジネストランザクションを命名できるようになります。

    rest-transaction-naming変数

    rest-transaction-naming ノード エージェント プロパティでは、JAX-RS ベースのビジネストランザクションの命名を管理できます。変数を使って、例えば、メソッド名、クラス名、パラメータ値などに基づくランタイム値でトランザクションに名前を付けることができます。変数の完全なリストについては、「アプリケーション エージェント ノード プロパティ参照資料」を参照してください。

    任意のパラメータの後ろにgetterチェーンを追加して、パラメータ値で操作することができます。この場合は、「:」を入力し、その後に getter チェーンを追加します。標準的なgetterチェーンエスケープの要件とルールが適用されます。

    命名例

    以下の例では、6番目のパラメータの値の一部に基づいて名前を付けています。

    No Format
    rest-transaction-naming={param-5:toString().toLowerCase().subString(5,20)}

    文字「{」と「}」は予約されています。getter チェーンで、または名前のテキストとして使用する場合、この文字は「\」を使用してエスケープする必要があります。例:{{class-name}} は {com.singularity.RestObject} と表示されます。 

    パラメータに加えて文字を使うことができます。例えば、以下の例では、クラス名とメソッド名がスラッシュで区切られています。

    No Format
    rest-transaction-naming={class-name}/{method-name}

    この例に従えば、Java エージェントがクラス名が com.company.rest.resources.Employees でメソッドが CreateNewEmployee の REST リソースを検出した場合、ビジネストランザクションには com.company.rest.resources.Employees/CreateNewEmployee という名前が付けられます。