Javaエージェントは、システムプロパティとして指定された構成設定を受け入れることができます。これは、マシン上で複数のJVMが実行されており、ノードプロパティを動的に設定する必要がある場合に便利です。

AppDynamics モデルでは、JVM が同じティアにある場合と異なるティアにある場合があります。いずれの場合も、次のようになります。

  • 共通の情報はすべて controller-info.xml. を使用して構成します。
  • JVM に固有の情報はすべて、起動スクリプトのシステムプロパティ(-D オプション)を使用して構成します。
  • 起動スクリプトの情報は常に controller-info.xml ファイルの情報をオーバーライドします。

Javaエージェント構成プロパティでは、Java エージェントで利用可能なシステムプロパティについて説明します。詳細については、Javaエージェントのインストールを参照してください。

システムプロパティの参照

コマンドラインまたはエージェント構成ファイルからシステムプロパティを参照し、ノード名、ティア名、他のエージェント構成プロパティを動的に指定できます。 

たとえば、startserver.sh という名のスクリプトで Java アプリケーションを起動するとします。このスクリプトは次のようにシステムプロパティを定義します。

-Dserver.name=$1
CODE

プロパティ server.name は、スクリプトの開始時に渡された最初の引数の値を受け取ります。たとえば、JVM を起動する次のコマンドは、server.name プロパティを値 ecommerce01 にバインドします。

startserver.sh ecommerce01
CODE

-Dappdynamics.agent.nodeName プロパティを起動時に次のように設定することで、この値をエージェント構成に使用できます。

-Dappdynamics.agent.nodeName=$server.name
CODE

または、次の形式を使用して、controller-info.xml ファイル内の値を使用できます。

${system_property_name}
CODE

例:

<controller-info>
    ...
    <node-name>${server.name}</node-name>
</controller-info>
CODE

server.name は、ノードを識別するためにここで使用されるシステムプロパティのサンプル名です。Java エージェントのノード名には、お使いの環境で利用できる適切なシステムプロパティを使います。 

ティア名を動的に割り当てるには、次のようにティア名プロパティに動的な値を指定します。

java -javaagent:<agent_home>/javaagent.jar -Dappdynamics.agent.tierName=$tierName -Dappdynamics.agent.nodeName=$nodeName

プロパティの組み合わせ

複数のシステムプロパティを組み合わせてノードやティアに名前を付けることができます。たとえば、controller-info.xml で次のようにプロパティを組み合わせます。

${system_property_name_1}${system_property_name_2}
CODE

システムプロパティをリテラルと組み合わせることができます。以下の例では「_」と「inventory」がリテラルです。

${myhost.name}_${myserver.name}.inventory
CODE

コントローラホストおよびポート設定にも既存のシステムプロパティを使用できますが、ここにあるようなプロパティの組み合わせはこれらの設定では対応していません。