層の命名規則機能を使用して、管理対象の Java プロセスの層名をカスタマイズできます。各層のルールは、特定のサーバータイプにマップされます。層の命名規則を使用すると、エージェントインストーラが層名を検出できるように Rego ポリシーを作成できます。これを行うには、階層の命名形式またはルール条件に有効な Rego 式が含まれている必要があります。Splunk AppDynamics では、階層の命名規則を使用して Rego ポリシーを再作成することを推奨しています。Rego のポリシー言語を参照してください。 

エージェントインストーラはメンテナンスモードです。エージェント管理 を使用します。

エージェントインストーラ API の詳細については、「Agent Installer Platform Service API」を参照してください。 

層の命名形式

フォーマット説明
tier-name-format形式には literals のみが含まれ、層名は形式と同じように表示されます。 

tier-name-format

tier-<AppServerType>-formatliteralsattributes の混在。層名は、属性を渡した後に評価され、属性の値を置き換えます。属性は、角括弧内で定義されます <AppServerType>。 
  • tier-tomcat-format for tomcat application server
  • tier-jboss-format for jboss application server
  • tier-glassfish-format for glassfish application server
  • tier-java-format for plain java application

`input.CmdlineArray[count(input.CmdlineArray) - 1]`

` ` の中に式が入ります。これは属性を持たず、式に変化はありません。 
"CmdlineArray": [ "/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/jre/bin/java", "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager", "-classpath", "/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/lib/tools.jar:/home/Ecommerce.jar", "EcommerceApplication" ]
CODE

コマンドラインが上記の値であると仮定すると、層名の形式は EcommerceApplication のようになります。

`<CmdlineArray>[count(<CmdlineArray>) - 1]`` ` の中に式が入ります。属性が解析されます。 
"CmdlineArray": [ "/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/jre/bin/java", "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager", "-classpath", "/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/lib/tools.jar:/home/Ecommerce.jar", "EcommerceApplication" ]
CODE

コマンドラインが上記の値であると仮定すると、層名の形式は EcommerceApplication のようになります。

フィルタ層の命名規則

  1. [Tier Naming Rules] タブに移動します。 
  2. Filter Panel をクリックします。

  3. 層の命名規則を除外する方法を選択します。オプション:Status EnabledDisabled。 
  4. Application Scope を選択するか入力します。

  5. Application Server Type を選択します。

  6. Apply をクリックします。  

形式:

POST /customNaming/rules/query

リクエストの例:

curl --location --request POST 'https://demo.saas.appdynamics.com/zero/v1beta/customNaming/rules/query' --header 'Authorization: Bearer {AuthToken}'
--header 'Content-Type: application/json' \
--data-raw
{
   "enabled": true,
   "appServerTypes": [
       "TOMCAT"
    ],
    "applicationNames": [
        "EcommerceApplication"
    ]
}
CODE

応答の例:

{
    "total": 2,
    "customConfigFocusedDtoList": [
        {
            "id": "56112e75-6308-4d04-b9fa-e336b967bc59",
            "ruleName": "TomcatRule1",
            "priority": 1,
            "version": 1,
            "enabled": true,
            "appServerTypes": [
                "TOMCAT"
            ],
            "applicationNames": [
                "EcommerceApplication"
            ]
        },
        {
            "id": "6b8701db-b7d3-4017-8001-ba9de952cd82",
            "ruleName": "TomcatRule2",
            "priority": 2,
            "version": 1,
            "enabled": true,
            "appServerTypes": [
                "TOMCAT"
            ],
            "applicationNames": [
                "EcommerceApplication"
            ]
        }
     ]
}
JSON

新しい層の命名規則の追加

  1. [Tier Naming Rules] タブに移動します。 
  2. + Add New Rule をクリックします。 

  3. 次を入力します。

    1. Rule Name

    2. Tier Naming Format: 任意の文字、単語、および変数を使用して、命名形式を定義します。

    3. Application Server Types 命名規則を適用するアプリケーション サーバー タイプを選択します。

    4. Conditions 層に追加する条件に一致する値を選択します。 

      すべての文字列の比較では、大文字と小文字が区別されます。

    5. Application Scope 選択したアプリケーションの層のみが条件に対して評価されます。

  4. Create rule をクリックします。 

    Scenario 1:既存の層名(Tier 1)が無効になっていて、新しい層名(New Tier 1)が層ルールによって検出された場合、新しい層(New Tier 1)はデフォルトで無効になります。

    Scenario 2:既存の層名(Tier 1)が無効になっていて、既存の層名(Tier 2)に変更された場合、層ルールの変更によって、層名(Tier 2)のステータスは変更されません。 

形式:

POST /customNaming/rules

リクエストの例:

curl --location --request POST 'https://demo.saas.appdynamics.com/zero/v1beta/customNaming/rules' --header 'Authorization: Bearer {AuthToken}' \
--header 'Content-Type: application/json' \
--data-raw
{
  "ruleName": "TomcatRule",
  "tierNamingFormat": "tomcat-tier-prod",
  "processType": "JAVA",
  "appServerTypes": [
      "tomcat"
  ],
  "priority": 1,
  "ruleConditions": [
    {
      "keyName": "<cmdlineArray[_]>",
      "conditionType": "contains",
      "value": "-Dcatalina.home=/staging/apache-tomcat-9.0.6"
    }
  ],
  "applicationNames": [
    "ALL"
  ]
}
CODE

応答の例:

{
    "id": "9a7dfb82-480f-4beb-b72c-a3692b54fdec",
    "ruleName": "TomcatRule",
    "tierNamingFormat": "tomcat-tier-prod",
    "processType": "JAVA",
    "version": 1,
    "appServerTypes": [
        "tomcat"
    ],
    "priority": 1,
    "enabled": true,
    "ruleConditions": [
        {
            "keyName": "<cmdlineArray[_]>",
            "conditionType": "CONTAINS",
            "value": "-Dcatalina.home=/staging/apache-tomcat-9.0.6",
            "sequence": 0
        }
    ],
    "applicationNames": [
        "ALL"
    ]
}
JSON

層の命名規則の詳細を取得する

形式:

GET /customNaming/rules/{Id}/details

リクエストの例:

curl --location --request GET 'https://demo.saas.appdynamics.com/zero/v1beta/customNaming/rules/0c328c2e-d6ab-4343-bcff-792a77c45413/details' \
--header 'Authorization: Bearer {AuthToken}'
CODE

応答の例:

{
    "id": "56112e75-6308-4d04-b9fa-e336b967bc59",
    "ruleName": "TomcatRule1",
    "tierNamingFormat": "tomcat-tier-prod",
    "processType": "JAVA",
    "version": 1,
    "appServerTypes": [
        "TOMCAT"
    ],
    "priority": 1,
    "enabled": true,
    "ruleConditions": [
        {
            "keyName": "<CmdlineArrya[_]>",
            "conditionType": "CONTAINS",
            "value": "-Dcatalina.home",
            "sequence": 1
        },
        {
            "keyName": "<envVarMap.HOSTNAME>",
            "conditionType": "EQUAL",
            "value": "localhost",
            "sequence": 2
        }
    ],
    "applicationNames": [
        "EcommerceApplication"
    ]
}
CODE

層の命名規則を編集する

  1. [Tier Naming Rules] タブに移動します。 
  2. 編集する [Rule Name] を選択します。 

  3. Edit rule をクリックします。 
  4. 次を編集します。
    1. Tier Naming Format
    2. Application Server Types

    3. Conditions

      すべての文字列の比較では、大文字と小文字が区別されます。

    4. Application Scope

  5. Update rule をクリックします。 

形式:

PUT /customNaming/rules/{Id}

リクエストの例:

curl --location --request PUT 'https://demo.saas.appdynamics.com/zero/v1beta/customNaming/rules/9a7dfb82-480f-4beb-b72c-a3692b54fdec' --header 'Authorization: Bearer {AuthToken}' \
--header 'Content-Type: application/json' \
--data-raw
{
    "id": "9a7dfb82-480f-4beb-b72c-a3692b54fdec",
    "ruleName": "TomcatRule",
    "tierNamingFormat": "tomcat-tier-prod",
    "processType": "JAVA",
    "version": 1,
    "appServerTypes": [
        "tomcat"
    ],
    "priority": 1,
    "enabled": true,
    "ruleConditions": [
        {
            "keyName": "<cmdlineArray[_]>",
            "conditionType": "CONTAINS",
            "value": "-Dcatalina.home=/staging/apache-tomcat-9.0.6",
            "sequence": 0
        },
        {
            "keyName": "<envVarMap.HOSTNAME>",
            "conditionType": "EQUAL",
            "value": "localhost",
            "sequence": 0
        }
    ],
    "applicationNames": [
        "ALL"
    ]
}
CODE

応答の例:

{
    "id": "9a7dfb82-480f-4beb-b72c-a3692b54fdec",
    "ruleName": "TomcatRule",
    "tierNamingFormat": "tomcat-tier-prod",
    "processType": "JAVA",
    "version": 2,
    "appServerTypes": [
        "tomcat"
    ],
    "priority": 1,
    "enabled": true,
    "ruleConditions": [
        {
            "keyName": "<cmdlineArray[_]>",
            "conditionType": "CONTAINS",
            "value": "-Dcatalina.home=/staging/apache-tomcat-9.0.6",
            "sequence": 0
        },
        {
            "keyName": "<envVarMap.HOSTNAME>",
            "conditionType": "EQUAL",
            "value": "localhost",
            "sequence": 0
        }
    ],
    "applicationNames": [
        "ALL"
    ]
}
JSON

層の命名規則を削除する

  1. [Tier Naming Rules] タブに移動します。 
  2. 削除する [Rule Name] を選択します。 
  3. [Delete Confirmation] をクリックします。 

形式:

DELETE /customNaming/rules/{Id}

リクエストの例:

curl --location --request DELETE 'https://demo.saas.appdynamics.com/zero/v1beta/customNaming/rules/9a7dfb82-480f-4beb-b72c-a3692b54fdec' --header 'Authorization: Bearer {AuthToken}'
CODE

応答の例:

No response
CODE

層の命名規則を有効にする

  1. [Tier Naming Rules] タブに移動します。 
  2. 有効にする [Rule Name] を選択します。 
  3. Enable rule をクリックします。 

形式:

POST /customNaming/rules/{Id}/enable

リクエストの例:

curl --location --request POST 'https://demo.saas.appdynamics.com/zero/v1beta/customNaming/rules/9a7dfb82-480f-4beb-b72c-a3692b54fdec/enable' --header 'Authorization: Bearer {AuthToken}'
CODE

応答の例:

No response
CODE

層の命名規則を無効にする

  1. [Tier Naming Rules] タブに移動します。 
  2. 無効にする [Rule Name] を選択します。 
  3. Disable rule をクリックします。 

形式:

POST /customNaming/rules/{Id}/disable

リクエストの例:

curl --location --request POST 'https://demo.saas.appdynamics.com/zero/v1beta/customNaming/rules/9a7dfb82-480f-4beb-b72c-a3692b54fdec/disable' --header 'Authorization: Bearer {AuthToken}'
CODE

応答の例:

No response
CODE

層の命名規則の優先度を編集する

  1. [Tier Naming Rules] タブに移動します。 
  2. Priority をクリックします。 
  3. 行をドラッグアンドドロップして、層の命名規則の優先順位を再配置します。
  4. Save priority order をクリックします。 

    層名の評価は、定義された構成ルールの優先順位に従います。一致するルールがない場合、デフォルトの層名がエージェントインストーラによって設定されます。 

形式:

PATCH /customNaming/rules/bulk

リクエストの例:

curl --location --request PATCH 'https://demo.saas.appdynamics.com/zero/v1beta/customNaming/rules/bulk' --header 'Authorization: Bearer {AuthToken}'
--header 'Content-Type: application/json' \
--data-raw
{
    "total": 1,
    "items": [
        {
            "id": "79962b2d-9afb-40e8-9529-428c5077e702",
            "priority": 1,
            "version": 1
        },
        {
            "id": "9a7dfb82-480f-4beb-b72c-a3692b54fdec",
            "priority": 2,
            "version": 1
        }
    ]
}
CODE

応答の例:

{
    "total": 2,
    "items": [
        {
            "ruleName": "TomcatRule1",
            "status": "SUCCESS",
            "description": null
        },
        {
            "ruleName": "TomcatRule2",
            "status": "SUCCESS",
            "description": null
        }
    ]
}
JSON

層の命名規則をインポートする

  1. [Tier Naming Rules] タブに移動します。 
  2. Import をクリックします。 

  3. インポートする JSON ファイルを選択します。 

  4. Upload をクリックします。 

  5. ファイルが正常にアップロードされたら、[ Done ] をクリックします。 

形式:

POST /customNaming/templates/import

リクエストの例:

curl --location --request POST 'https://demo.saas.appdynamics.com/zero/v1beta/customNaming/templates/import' --header 'Authorization: Bearer {AuthToken}' --header 'Content-Type: application/json' --form 'file=@"<filePath>"
CODE

応答の例:

{
    "total": 2,
    "items": [
        {
            "ruleName": "TomcatRule3",
            "status": "SUCCESS",
            "description": null
        },
        {
            "ruleName": "TomcatRule4",
            "status": "SUCCESS",
            "description": null
        }
    ]
}
JSON

層の命名規則をエクスポートする

  1. [Tier Naming Rules ] タブに移動します。
  2. Export をクリックします。 
  3. [Allow] をクリックして、ローカルシステムにファイルをダウンロードします。 

形式:

POST /customNaming/rules/export

リクエストの例:

curl --location --request POST 'https://demo.saas.appdynamics.com/zero/v1beta/customNaming/rules/export' --header 'Authorization: Bearer {AuthToken}' --header 'Content-Type: application/json'
CODE

応答の例:

The response is a file in JSON format
CODE

層の命名規則のステータスをプレビューする

  1. [Tier Naming Rules] タブに移動します。
  2. Naming Rules Preview をクリックします。 
  3. 各ルールのステータスをプレビューします:Impacted processes In progress、および No changes。 

  4. Done をクリックします。 

形式:

POST /customNaming/preview

リクエストの例:

curl --location --request POST 'https://demo.saas.appdynamics.com/zero/v1beta/customNaming/preview' --header 'Authorization: Bearer {AuthToken}'
--header 'Content-Type: application/json' \
--data-raw
{
  "applicationNames" : [
      "ECommerceApp"
  ],
  "curTierInformation": [
      {
      "tierName": "tier1",
      "ruleName": "rul1e1"
      }
  ],
  "expectedTierInformation": [
      {
      "tierName": "tier1",
      "ruleName": "rul1e1"
      }
  ],
  "previewStatus" : false
}
CODE

応答例 1:

{
    "total": 1,
    "items": [
        {
            "nodeName": "Node1",
            "applicationName": "EcommerceApp",
            "curTierInformation": {
                "tierName": "Tier1",
                "ruleName": "Rule1"
            },
            "expectedTierInformation": {
                "tierName": "NewTier1",
                "ruleName": "NewRule1"
            },
            "previewStatus": true,
            "previewMessage": "Restart to Apply"  
        }
    ]
}
JSON

応答例 2:

{
    “total”: 2,
    “items”: [
        {
            “nodeName”: “Node1",
            “applicationName”: “EcommerceApp”,
            “curTierInformation”: {
                “tierName”: “Tier1”,
                “ruleName”: “Rule1”
            },
            “expectedTierInformation”: {
                “tierName”: “NewTier1",
                “ruleName”: “NewRule1"
            },
            “previewStatus”: true,
            “previewMessage”: “Restart to Apply”
        },
        {
            “nodeName”: “Node2”,
            “applicationName”: “EcommerceApp”,
            “curTierInformation”: {
                “tierName”: “Tier1",
                “ruleName”: “Rule1"
            },
            “previewStatus”: true,
            “previewMessage”: “No Change”
        }
    ]
}
JSON

構成が変更されたら、Java プロセスを再起動する前に、プレビュー API を使用して既存の層名の影響を特定できます。プレビューステータスは、バージョン 22.4 以降でのみサポートされます。エージェントの古いバージョンは、サポートされていないので、Failure ステータスで表示されます。 

デフォルトルール

以下の表は、層の命名規則のデフォルト値を示しています。 

AppServerTypeサブ カテゴリデフォルト名(Default Name)
tomcat

tomcat

tomcat,<JavaUniquePath>tomcat,/staging/apache*.*

tomEE

tomee,<JavaUniquePath>

tomee,/staging/apache*.*

jboss

standalone

jboss,standalone,<JavaUniquePath>jboss,standalone,/staging/jboss*.*

domain

jboss,domain,<JBossServerGroupName>,<JavaUniquePath>jboss,domain,defaultServer,/staging/jboss*.*
glassfish

glassfish

glassfish,<GlassfishDomainName>,<GlassfishInstanceName>,<JavaUniquePath>glassfish,domain1,domain1,/staging/glassfish*.*
weblogicweblogicweblogic,<WeblogicDomainName>,<WeblogicInstanceName>,<JavaUniquePath>weblogic,domain,weblogic1,/staging/weblogic*.*
websphere

WebSphereWAS

webspherewas,<WebSphereCellName>, <WebSphereServerName>,<JavaUniquePath>webspherewas,wascell,wasServer,/staging/websphere*.*

Liberty

websphereliberty,<WebSphereLibertyServerName>, <JavaUniquePath>websphereliberty,liberty,/staging/websphere*.*
java

using jar file

java,<JavaMainJar>java,ECommerceApp.jar

using java class name

java,<JavaMainClass>,<JavaUniquePath>java,EcommerceApplicaton,/staging/EcommerceApplicaton/**