Javaエージェントは、システムプロパティとして指定された構成設定を受け入れることができます。これは、マシン上で複数のJVMが実行されており、ノードプロパティを動的に設定する必要がある場合に便利です。
AppDynamics モデルでは、JVM が同じティアにある場合と異なるティアにある場合があります。いずれの場合も、次のようになります。
- 共通の情報はすべて
controller-info.xml.
を使用して構成します。 - JVM に固有の情報はすべて、起動スクリプトのシステムプロパティ(
-D
オプション)を使用して構成します。 - 起動スクリプトの情報は常に
controller-info.xml
ファイルの情報をオーバーライドします。
Javaエージェント構成プロパティでは、Java エージェントで利用可能なシステムプロパティについて説明します。詳細については、Javaエージェントのインストールを参照してください。
システムプロパティの参照
コマンドラインまたはエージェント構成ファイルからシステムプロパティを参照し、ノード名、ティア名、他のエージェント構成プロパティを動的に指定できます。
たとえば、startserver.sh
という名のスクリプトで Java アプリケーションを起動するとします。このスクリプトは次のようにシステムプロパティを定義します。
プロパティ 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 エージェントのノード名には、お使いの環境で利用できる適切なシステムプロパティを使います。
ティア名を動的に割り当てるには、次のようにティア名プロパティに動的な値を指定します。
プロパティの組み合わせ
複数のシステムプロパティを組み合わせてノードやティアに名前を付けることができます。たとえば、controller-info.xml
で次のようにプロパティを組み合わせます。
${system_property_name_1}${system_property_name_2}
CODE
システムプロパティをリテラルと組み合わせることができます。以下の例では「_」と「inventory」がリテラルです。
${myhost.name}_${myserver.name}.inventory
CODE
コントローラホストおよびポート設定にも既存のシステムプロパティを使用できますが、ここにあるようなプロパティの組み合わせはこれらの設定では対応していません。