EPAgent のプロパティ

apmdevops98jp
 
このページでは、Environment Performance Agent をカスタマイズする際に使用するプロパティ ファイルおよび設定について説明します。 プロパティ ファイルのデフォルトの場所は <EPAgent_Home>/epagent/IntroscopeEPAgent.properties です。 プロパティ設定を変更するには、プロパティ ファイルをテキスト エディタで開き、必要に応じて変更してファイルを保存します。
注:
以下に説明するファイルを Windows マシンで開いてパスを追加する場合、各円記号(\)にもう 1 つ円記号を付加して(すべての円記号を二重にして)エスケープ処理する必要があります。たとえば、「C:\\Introscope\\lib\\EPAgent.jar」のようにします。
エージェント名およびプロセス名の設定
2 つのプロパティ
introscope.agent.agentName、および introscope.agent.customProcessName
は EPAgent の名前とそのプロセスの名前を定義します。両方とも、完全修飾エージェント名(
ドメイン | ホスト | プロセス | エージェント名
)の一部として使用され、複数のエージェント セッションにまたがる単一の EPAgent の情報を追跡するために使用されます。
これらのプロパティはオプションです。 エージェント名が定義されていない場合は、「UnknownAgent」という名前になります。
プロセス名
CA Introscope は、以下の基準で EPAgent の命名を行います。この名前付けの優先度は以下に示されている順序です。
  • プロパティ introscope.agent.customProcessName によって定義される名前。
  • アプリケーションのメイン クラスの名前から類推される名前。
  • introscope.agent.defaultProcessName によって設定される名前。
エージェント名
introscope.agent.agentName プロパティは、EPAgent の名前を定義します。
CA Introscope&lt;reg&gt; は、以下の基準で Environment Performance Agent の命名を行います。この名前付けの優先度は以下に示されている順序です。
  • プロパティ EPAgent のプロパティ によって定義される名前です。
  • introscope.agent.agentName で一意の名前が定義されていない場合、Environment Performance Agent は「UnknownAgent」と名付けられます。
エージェント メトリック エージング プロパティ
エージェント メトリック エイジングは、エージェントのメモリ キャッシュから定期的にデッド メトリックを削除します。 デッド メトリックとは、設定された時間内に新しいデータをレポートしていないメトリックを表します。 古いメトリックを削除することで、エージェントのパフォーマンスを改善し、急増メトリックの危険性を回避することができます。
注:
急増メトリックは、不注意から、システムの処理能力を超える量のメトリックをレポートするようにエージェントが設定されている場合に発生します。 非常に多くのメトリックがレポートされると、エージェントがアプリケーション サーバの性能に影響を与える可能性があり、極端な場合では、サーバがまったく機能しなくなる可能性があります。
同一のグループに存在するメトリックは、グループ内のすべてのメトリックが削除の対象であると判断される場合にのみ削除されます。 現在、
BlamePointTracer
および
MetricRecordingAdministrator
メトリックのみがグループとして削除されます。 その他のメトリックは個別に削除されます。
MetricRecordingAdministrator
には、メトリック グループを作成、取得、または削除するための以下のインターフェースがあります。
  • getAgent().IAgent_getMetricRecordingAdministrator.addMetricGroup
    文字列のコンポーネント、コレクション メトリックです。 コンポーネント名は、メトリック グループのメトリック リソース名です。 複数のメトリックがグループであるとみなされるためには、同じメトリック ノード下にある必要があります。 メトリックは、
    com.wily.introscope.spec.metric.AgentMetric
    データ構造体のコレクションです。 このコレクションには
    AgentMetric
    データ構造体のみ追加することができます。
  • getAgent().IAgent_getMetricRecordingAdministrator.getMetricGroup
    文字列のコンポーネントです。 メトリック リソース名であるコンポーネント名に基づいて、メトリックのコレクションを取得することができます。
  • getAgent().IAgent_getMetricRecordingAdministrator.removeMetricGroup
    文字列のコンポーネントです。 メトリック グループは、メトリック リソース名であるコンポーネントに基づいて削除されます。
  • getAgent().IAgent_getDataAccumulatorFactory.isRemoved
    メトリックが削除されたかどうかを確認します。 このインターフェースは、拡張機能にアキュムレータのインスタンスを保持する場合に使用します。 メトリック エイジングによってアキュムレータが削除された場合、このインターフェースを使用して無効な参照を保持することを防ぎます。
重要:
MetricRecordingAdministrator
インターフェースを使用する拡張機能を作成する場合は(たとえば、他のCA Technologies 製品で使用するため)、必ずアキュムレータの独自のインスタンスを削除してください。 メトリックが長い間呼び出されなかったためにエイジアウトし、その後データがそのメトリックで使用できるようになった場合、古いアキュムレータ インスタンスは新しいメトリック データ ポイントを作成しません。 このような状況を回避するには、アキュムレータの独自のインスタンスを削除せず、
getDataAccumulatorFactory
インターフェースを代わりに使用してください。
エージェント メトリック エイジングの設定
エージェント メトリック エイジングは、デフォルトでオンになっています。 プロパティ EPAgent のプロパティ を使用して、この機能をオフにするよう選択することもできます。
IntroscopeAgent.profile
からこのプロパティを削除すると、エージェント メトリック エージングはデフォルトでオフになります。
エージェント メトリック エイジングは、エージェントのハートビートで実行されます。 ハートビートは、プロパティ EPAgent のプロパティ を使用して設定します。 ハートビートの頻度は低く設定するようにしてください。 ハートビートの頻度が高いと、エージェントおよび CA Introscope のパフォーマンスに影響を与えます。
各ハートビートの間に、メトリックの特定のセットがチェックされます。 これはプロパティ EPAgent のプロパティ を使用して設定可能です。 また、高い値はパフォーマンスに影響を与えるため、この値を低くすることも重要なことです。 ハートビートごとにチェックされるメトリック数のデフォルト値は 500 です。 削除の対象となるメトリックがないかどうか、500 メトリックのそれぞれがチェックされます。 たとえば、このプロパティを 1 回のハートビートにつき 500 メトリックずつチェックするよう設定し、エージェント メモリには合計で 10,000 のメトリックがある場合、10,000 メトリックすべてをチェックするのに時間はかかりますが、パフォーマンスへの影響は小さくなります。 しかし、このプロパティを大きな数字に設定すると、10,000 メトリックすべてをチェックする時間は短くなりますが、オーバーヘッドが大きくなってしまう可能性があります。
メトリックが一定期間新しいデータを受信していないと、そのメトリックは削除の候補になります。 この期間はプロパティ EPAgent のプロパティ を使用して設定できます。 このプロパティは、デフォルトで 180000 に設定されます。 メトリックが削除の条件と一致すると、グループ内のすべてのメトリックがメトリック削除の候補になっているかどうかのチェックが実行されます。 この要件も満たした場合、メトリックは削除されます。
introscope.agent.metricAging.turnOn
エージェント メトリック エイジングをオンまたはオフにします。
値:
true または false
デフォルト:
true
例:
introscope.agent.metricAging.turnOn=true
注:
このプロパティの変更はただちに有効になり、管理対象アプリケーションを再起動する必要はありません。
introscope.agent.metricAging.heartbeatInterval
メトリックを削除するかどうかをチェックする間隔(秒単位)を指定します。
デフォルト:
1800
例:
introscope.agent.metricAging.heartbeatInterval=1800
注:
このプロパティの変更を有効にするには、管理対象アプリケーションを再起動する必要があります。
introscope.agent.metricAging.dataChunk
間隔ごとにチェックされるメトリックの数を指定します。
デフォルト:
500
例:
introscope.agent.metricAging.dataChunk=500
注:
このプロパティの変更はただちに有効になり、管理対象アプリケーションを再起動する必要はありません。
introscope.agent.metricAging.numberTimeslices
削除の候補にする前に、新しいデータを受信しなかったかどうかをチェックする間隔を指定します。
デフォルト:
180000
例:
introscope.agent.metricAging.numberTimeslices=180000
注:
このプロパティへの変更はただちに有効になります。管理対象アプリケーションを再起動する必要はありません。
introscope.agent.metricAging.metricExclude.ignore.0
指定したメトリックを削除対象から除外します。 エイジングから 1 つ以上のメトリックを除外するには、メトリック名またはメトリック フィルタをリストへ追加します。
値:
カンマ区切りのメトリックのリスト。 メトリック名には、アスタリスク(*)をワイルド カードとして使用できます。
デフォルト:
「Threads」で始まるメトリック名(
Threads*
)。
例:
introscope.agent.metricAging.metricExclude.ignore.0=Threads*
注:
このプロパティの変更はただちに有効になり、管理対象アプリケーションを再起動する必要はありません。
大文字と小文字を区別するメトリック
以下のプロパティは、大文字と小文字を区別するかどうかを設定します。
introscope.epagent.metricscasesensitive
メトリック名の大文字と小文字の区別を有効にします。
プロパティ設定
True または False
デフォルト
true
introscope.epagent.metricscasesensitive=true
  • デフォルトでは、コメント化されます。
  • このプロパティを true に設定すると、メトリックでの大文字と小文字の区別が有効になります。
  • プロパティを false に設定すると、大文字と小文字の区別がオフになります。
ChangeDetector の設定
以下のプロパティで、EPAgent と ChangeDetector とのやり取りを設定します。
introscope.changeDetector.enable
ChangeDetector を有効または無効に指定します。 ChangeDetector を有効にするには、プロパティを true に設定します。 デフォルトではコメント化され、false に設定されます。 ChangeDetector を有効にする場合、追加の ChangeDetector 関連プロパティを設定する必要があります。
プロパティ設定
True または False
デフォルト
False
introscope.changeDetector.enable=false
このプロパティの変更を有効にするには、管理対象アプリケーションを再起動する必要があります。
introscope.changeDetector.rootDir
ChangeDetector ファイルのルート ディレクトリを指定します。 ルート ディレクトリは、ChangeDetector がローカル キャッシュ ファイルを作成するフォルダです。
プロパティ設定
ChangeDetector ファイルのルート ディレクトリへのフル パス(テキスト文字列)。
デフォルト
デフォルト パスは c:\\sw\\AppServer\\wily\\change_detector です。
introscope.changeDetector.rootDir=c:\\sw\\AppServer\\wily\\change_detector
円記号をエスケープするには、この例のように円記号を使用します。
introscope.changeDetector.isengardStartupWaitTimeInSec
エージェントが起動してから ChangeDetector が Enterprise Manager への接続を試行するまでの待機する秒数を設定します。 このプロパティは、デフォルトでコメント化されています。
デフォルト
デフォルトは 15 秒です。
introscope.changeDetector.isengardStartupWaitTimeInSec=15
introscope.changeDetector.waitTimeBetweenReconnectInSec
Enterprise Manager への接続を再試行する前に、ChangeDetector が待機する秒数を指定します。 このプロパティは、デフォルトでコメント化されています。
デフォルト
デフォルトは 10 秒です。
introscope.changeDetector.waitTimeBetweenReconnectInSec=10
introscope.changeDetector.enableEPA
ChangeDetector EPAgent が有効な場合、EPAgent プラグインは XML 形式のデータ変更のデータソースとして使用できます。
プロパティ設定
True または False
デフォルト
true
introscope.changeDetector.enableEPA=true
デフォルトでは、コメント化されます。
introscope.changeDetector.agentID
ChangeDetector で EPAgent の識別に使用されるテキスト文字列を設定します。
introscope.changeDetector.agentID=SampleApplicationName
デフォルトでは、コメント化されます。
introscope.changeDetector.profile
ChangeDetector データソース設定ファイルへの絶対パスまたは相対パスを設定します。 このプロパティは、デフォルトでコメント化されています。
デフォルト
デフォルトは ChangeDetector-config.xml です。
introscope.changeDetector.profile=CDConfig\\ChangeDetector-config.xml
円記号をエスケープするには、この例のように円記号を使用します。
introscope.changeDetector.profileDir
データ ソース設定ファイルを含むディレクトリへの絶対パスまたは相対パスを指定します。 このプロパティが設定される場合、このディレクトリ内のデータ ソース設定ファイルはすべて
introscope.changeDetector.profile
プロパティによって指定された任意のファイルに加えて使用されます。 このプロパティは、デフォルトでコメント化されています。
デフォルト
デフォルトは changeDetector_profiles です。
introscope.changeDetector.profileDir=c:\\CDconfig\\changeDetector_profiles
円記号をエスケープするには円記号を使用します。
Enterprise Manager 接続
以下のプロパティは、Enterprise Manager への接続を設定します。
introscope.agent.enterprisemanager.connectionorder
EPAgent がプライマリの Enterprise Manager から切断された場合に、エージェントが使用するバックアップ Enterprise Manager の接続順序を設定します。 コンマ区切りのリストの形式で値を指定する必要があります。
デフォルト
DEFAULT
introscope.agent.enterprisemanager.connectionorder=DEFAULT
introscope.agent.enterprisemanager.transport.tcp.host.DEFAULT
デフォルトでエージェントが接続する Enterprise Manager を実行するコンピュータのホスト名を指定します。
デフォルト:
localhost
例:
introscope.agent.enterprisemanager.transport.tcp.host.DEFAULT=localhost
注:
このプロパティの変更を有効にするには、管理対象アプリケーションを再起動する必要があります。
EPAgent の設定
以下のプロパティは、EPAgent 自体を設定します。
introscope.epagent.config.networkDataPort
XML データを受信するために、EPAgent がネットワーク接続でリスンするポートを指定します。
デフォルト
8000
introscope.epagent.config.networkDataPort=8000
このプロパティは、デフォルトでコメント化されています。
introscope.epagent.config.httpServerPort
EPAgentが HTTP GET コマンドをリスンするポートを指定します。
デフォルト
8080
introscope.epagent.config.httpServerPort=8080
このプロパティは、デフォルトでコメント化されています。
拡張ディレクトリ
以下のメトリックは、拡張ディレクトリを指定します。
introscope.agent.extensions.directory
エージェントによってロードされるすべての拡張機能がある場所を指定します。 ディレクトリへの絶対パスまたは相対パスを指定できます。 絶対パスを指定しない場合、指定する値が
IntroscopeAgent.profiles
ファイルの場所を起点とする相対パスに解決されます。
デフォルト
デフォルトの場所は <
EPAgent_Home
>/epagent
/
ext ディレクトリの
ext
ディレクトリです。
introscope.agent.extensions.directory=../ext
このプロパティの変更を有効にするには、管理対象アプリケーションを再起動する必要があります。
Logging
ログは以下のプロパティで設定します。
log4j.logger.EPAgent
 
EPAgent ログの詳細度、およびログ ファイルの出力場所を指定します。
デフォルト
INFO、console
log4j.logger.EPAgent=INFO, console
  • INFO
    VERBOSE#com.wily.util.feedback.Log4JSeverityLevel
    で置き換え、ログの詳細レベルを上げます。
  • console
    logfile
    で置き換え、コンソールの代わりに、ログ ファイルへ出力を送信します。
log4j.appender.logfile.File
このプロパティは、エージェントのログに記録するログ レベルと出力場所の両方を制御します。
デフォルト
IntroscopeEPA.log
log4j.appender.logfile.File=IntroscopeEPA.log
ログファイルの場所と名前の完全パス名を使用することができます。
Processes
プロセスは以下のプロパティで設定します。
introscope.agent.customProcessName
監視対象のプロセスの名前を指定します。
デフォルト
EPAgentProcess
introscope.agent.customProcessName=EPAgentProcess
アプリケーション サーバ固有のインストーラの場合、アプリケーション サーバ名に設定します。
introscope.agent.defaultProcessName
introscope.Agent.customProcessName
が設定されておらず、かつアプリケーションのメイン クラスから名前を類推できない場合に、デフォルトで エージェントに対応付ける名前を指定します。
デフォルト
UnknownProcess
introscope.agent.defaultProcessName=UnknownProcess
デフォルトはインストーラによって異なることがあります。
introscope.agent.agentName
Enterprise Manager および Workstation 内に表示される EPAgent の名前を指定します。
デフォルト
EPAgent
introscope.agent.agentName=EPAgent
アプリケーション固有のインストーラの場合、UnknownAgent または<appservername>Agent のように、アプリケーション サーバの名前に設定します。
リモート設定
以下のプロパティを使用すると、リモートで EPAgent を設定することができます。
introscope.agent.remoteagentconfiguration.enabled
EPAgent のリモート設定を有効または無効にします。
プロパティ設定
True または False
デフォルト
False
introscope.agent.remoteagentconfiguration.enabled=false
このプロパティへの変更はただちに有効となり、管理対象アプリケーションを再起動する必要はありません。
ステートフル プラグイン
以下のプロパティは、ステートフル プラグインを構成します。
introscope.epagent.plugins.stateful.names
実行するステートフル プラグインの名前を指定します。 このプロパティは EPAgent プラグインを有効にする場合に必須です。
プロパティ設定
プラグイン名のカンマ区切りリスト。
デフォルト
APACHE,WEBLOGIC,WEBSPHERE,IIS
introscope.epagent.plugins.stateful.names=APACHE,WEBLOGIC,WEBSPHERE,IIS
  • このプロパティは、デフォルトでコメント化されています。
  • これらの名前はユーザ定義が可能ですが、以下の
    introscope.epagent.plugins.stateful.<pluginname>.command
    プロパティで使用される名前と一致させます。
introscope.epagent.stateful.<pluginname>.command
introscope.epagent.plugins.stateful.names
プロパティで指定されたプラグインを実行するコマンドを指定します。指定されたプラグイン名ごとにプロパティの行が 1 行必要です。
introscope.epagent.stateful.APACHE.command=perl apacheLogReader.pl introscope.epagent.stateful.WEBLOGIC.command=perl weblogicLogReader.pl
このプロパティは、デフォルトでコメント化されています。
introscope.epagent.stateful.<pluginname>.class
プラグインは、「ステートレス」または「ステートフル」のいずれかです。 ステートレス プラグインは、cron ライクのスケジュールまたは遅延のいずれかに基づいて EPAgent によって定期的に実行されます。 ステートフル プラグインは、一度 EPAgent によって起動され、永久に実行することを意図されています。 ステートフル プラグインが終了した場合は、再起動されます。
プラグインは、「コマンド」サブキーを使って指定される外部プロセスであるか、または EPAgent 仮想マシン内で実行される java クラスであるかのいずれであってもかまいません。 Java クラス プラグインは「クラス」サブキーを使って指定され、完全修飾クラス名の後に任意のオプションの引数を指定します。 たとえば、
my.package.path.Class arg1 arg2 arg3
などです。
introscope.epagent.stateful.myplugin.class=my.package.path.Class arg1 arg2 arg3
このプロパティは、デフォルトでコメント化されています。
ステートレス プラグイン
以下のプロパティは、ステートフレス プラグインを設定します。
introscope.epagent.plugins.stateless.names
実行するステートレス プラグインの名前を指定します。
デフォルト
DISK、ORACLE、HTTP、KSTAT
introscope.epagent.plugins.stateless.names=DISK,ORACLE,HTTP,KSTAT
  • このプロパティは、デフォルトでコメント化されています。
  • これらの名前はユーザ定義が可能ですが、以下の
    introscope.epagent.plugins.stateless.<pluginname>.command
    プロパティで使用される名前と一致させます。
introscope.epagent.stateless.<pluginname>.command
introscope.epagent.plugins.stateless.names
プロパティで指定されたプラグインを実行するコマンドを指定します。指定されたプラグイン名ごとにプロパティの行が 1 行必要です。
introscope.epagent.stateless.DISK.command=perl diskStats.pl
このプロパティは、デフォルトでコメント化されています。
introscope.epagent.stateless.<pluginname>.class
EPAgent VM 内でステートレス プラグインとして実行されるクラスを指定します。
このプロパティは、デフォルトでコメント化されています。
introscope.epagent.stateless.<pluginname>.delayInSeconds
EPAgent が指定のプラグインを実行する頻度(秒単位)を指定します。指定されたプラグイン名ごとにプロパティの行が 1 行必要です。
デフォルト
900
introscope.epagent.stateless.DISK.delayInSeconds=900
このプロパティは、デフォルトでコメント化されています。
introscope.epagent.stateless.<pluginname>.schedule
introscope.epagent.stateless.<pluginname>.command
プロパティで指定されたプラグインを実行するスケジュールを指定します。 入力は、CronTab スケジュール構文(UNIX システムで「man 5 crontab」を参照)になります。
  • このプロパティは、デフォルトでコメント化されています。
  • このプロパティは、
    introscope.epagent.stateless.<pluginname>.delayInSeconds
    プロパティの代わりに使用します。 両方のプロパティが存在する場合、EPAgent は終了します。
introscope.epagent.config.stalledStatelessPluginTimeoutInSeconds
ストールしたステートレス プラグインを終了する前に待機する時間の長さを指定します。
デフォルト
60 秒
#introscope.epagent.config.stalledStatelessPluginTimeoutInSeconds=60
このプロパティは、デフォルトでコメント化されています。
introscope.epagent.stateless.<pluginname>.metricNotReportedAction
このプロパティは、ステートレス プラグインが値のレポートを停止した場合の動作を指定するために使用されます。 プロパティは、コマンド サブ キーにのみ有効です。 
プロパティ設定
このプロパティでは、以下の値が有効です。
  • same
    - メトリックがエイジアウトするまで継続して同じ値をレポートします。
  • zero
    - 値 0 でメトリックをレポートします (メトリック タイプが stringevent または timestamp の場合、アクション「same」が実行されます)。
  • stop
    - メトリック値のレポートを停止します。
デフォルト
same
以下の MATCHEDPROCS の例では、processAvailability プラグインを使用して、一致パラメータによって指定された正規表現に名前が一致する実行中の各プロセス(ここでは、プロセス名が「f」で始まるもの)について 1 を返します。
metricNotReportedAction
パラメータの値「zero」は、プロセスが実行されなくなったときに、メトリック値を 0 にリセットするために使用されます。
introscope.epagent.stateless.MATCHEDPROCS.command=perl processAvailability.pl -match ^f -distinctmatch introscope.epagent.stateless.MATCHEDPROCS.delayInSeconds=900 introscope.epagent.stateless.MATCHEDPROCS.metricNotReportedAction=zero