6.8.1 ユーザー独自のパフォーマンスデータ収集の機能概要
ユーザー独自のパフォーマンスデータを収集する機能およびユーザーコマンド定期実行機能について説明します。
(1) ユーザー独自のパフォーマンスデータを収集する機能
この機能は,ユーザーがテキストファイルに出力した独自のパフォーマンスデータを,jpcuserコマンドによって,PFM - Agent for Platformが提供するレコード(PD_UPD,PD_UPDB,PI_UPI,PI_UPIB,PI_XUI1〜PI_XUI5)に格納できる形式に変換する機能です。この機能を使用してユーザー独自のパフォーマンスデータを収集するためには,あらかじめ,パフォーマンスデータをテキストファイルに出力するためのコマンドを作成する必要があります。
ユーザー独自のパフォーマンスデータを収集する仕組みを,次の図を用いて説明します。
|
図中の番号に従って処理の流れを説明します。
-
ユーザーコマンドを実行して,ユーザー作成データを作成する。
アプリケーションから,プロセス名,プロセスID,プロセス数などのパフォーマンスデータを収集し,テキストファイルに出力します。このデータをユーザー作成データと呼びます。
ユーザー作成データを作成するには,あらかじめパフォーマンスデータを収集するスクリプトを作成する必要があります。これをユーザーコマンドと呼びます。
-
jpcuserコマンドを実行して,ユーザー作成データを変換する。
jpcuserコマンドを実行して,ユーザー作成データをPFM - Agent for Platformが管理できるレコード形式に変換します。変換されたデータファイルをユーザーデータファイルと呼びます。
-
PFM - Agent for Platformがレコードを収集するタイミングで,ユーザーデータファイルの内容がユーザーレコードに格納される。
PFM - Agent for Platformがユーザーデータファイルのデータを収集するよう,あらかじめPFM - Web Consoleで設定する必要があります。
ユーザーコマンドの実行に失敗したなどの理由でユーザーデータファイルが作成されていない場合,KAVF11508-Wのメッセージ※を出力し,該当レコードの収集処理をスキップします。
- 注※
-
・ユーザーコマンド定期実行機能を使用して,ユーザーコマンドをレコード収集前に実行する設定で,ユーザーコマンドの起動に失敗,またはユーザーコマンドの実行がタイムアウトまでに終了しなかった場合,このメッセージは出力されません。
・ユーザーコマンドの実行の失敗が頻発した場合,このメッセージは同一レコードに対して1時間に1回だけ出力されます。
定期的にパフォーマンスデータを収集したい場合は,ユーザーコマンド定期実行機能を利用して,ユーザーコマンドとjpcuserコマンドを自動実行するよう設定してください。
- 重要
-
jpcuserコマンドの引数に指定するファイル,またはjpcuserコマンドを実行するバッチ,スクリプト内でファイルを出力する場合,インストール先フォルダ以外を指定してください。
ユーザーコマンドからjpcuserコマンドを直接実行する場合は,Administrators権限を持つユーザーからユーザーコマンドを実行してください。
(2) ユーザーコマンド定期実行機能
この機能は,タスクスケジューラーなどのスケジュール機能を使用しないで,PFM - Agent for Platformからユーザーコマンドを一定間隔で実行する機能です。ユーザーコマンドからユーザーデータファイルを作成する仕組みは,「(1) ユーザー独自のパフォーマンスデータを収集する機能」と同じです。
ユーザーコマンド定期実行機能は,ユーザーレコードのCollection Intervalの設定に従って実行するため,ユーザーコマンドは,履歴データの収集およびアラームの監視データの収集で実行しますが,リアルタイムデータの収集では実行しません。
また,ユーザーコマンドを実行するタイミングは,レコード収集後(ユーザーデータファイルを読み込んだ後)とレコード収集前(ユーザーデータファイルを読み込む前)のどちらかを選択できます。デフォルトは,レコード収集後を設定します。
ユーザーコマンド定期実行機能の処理の流れを次の図に示します。
|
|
ユーザーコマンド定期実行機能は,前回起動したユーザーコマンドが終了しているか判定し,実行中の場合はユーザーコマンドの処理をスキップします。
- メモ
-
PFM - Web Consoleのバージョンが08-50より前の場合,ユーザーコマンド定期実行機能のプロパティを複数のPFM - Agentへ一括配布できません。
(3) ユーザーコマンド定期実行機能に関する注意事項
- 実行ファイル
-
ユーザーコマンド定期実行機能で実行できるファイル形式を次に示します。
-
EXE形式:実行形式ファイル
-
COM形式:実行形式(コマンド)ファイル
-
BAT形式:バッチファイル
DELやDIRなどの内部コマンドをジョブとして実行する場合は,バッチファイルを作成し,バッチファイル内のコマンドとして実行してください。
-
- アカウント
-
ユーザーコマンド定期実行機能を実行する時のアカウントは,システムアカウントです。次のファイルおよびリソースについては,システムアカウントでアクセスできるようにしてください。
-
ユーザーコマンド定期実行機能で指定するファイル(ユーザーコマンド)
-
ファイル(ユーザーコマンド)から参照または更新するリソース
-
- 環境変数
-
ユーザーコマンド定期実行機能を実行する時に有効な環境変数は,Performance Managementプログラムのサービス起動時のシステム環境変数です。ユーザーコマンド定期実行機能を実行する時にはプロファイル情報を読み込みません。
- カレントフォルダ
-
ユーザーコマンド定期実行機能を実行する時のカレントフォルダは,次のPFM - Agent for Platformサービスのフォルダです。
-
物理ホスト環境:インストール先フォルダ\agtt\agent
-
論理ホスト環境:環境フォルダ\jp1pc\agtt\agent
-
- ユーザーコマンドをレコード収集前に実行する場合の注意事項
-
-
ユーザーコマンドがタイムアウトした場合,ユーザーコマンドを強制終了しますが,ユーザーコマンド内から起動したプロセスを強制終了しません。必要に応じて,前回起動したユーザーコマンドがタイムアウトした場合に,ユーザーコマンドから起動したプロセスを終了させる処理を,ユーザーコマンドで実装してください。
-
ユーザーコマンドが指定されていない,ユーザーコマンドの起動に失敗した,またはユーザーコマンドがタイムアウトした場合,ユーザーコマンドに対応するレコードの収集処理をスキップします。
-
ユーザーコマンドは,ほかのレコードの収集処理が完了したあとで実行されます。このため,収集イベントのタイミングからタイムラグが生じます。
-
ユーザーコマンドの実行中も,Agent Collectorサービスの状態はBusyになります。
-
- ユーザーコマンドを実行するタイミングを変更する場合の注意事項
-
-
ユーザーコマンドを実行するタイミングを,レコード収集後からレコード収集前に変更した場合,変更前に実行したユーザーコマンドの結果は収集されません。また,変更前に実行したユーザーコマンドが,変更直後のレコードの収集開始までに終了していない場合,ユーザーコマンドを強制終了します。
なお,強制終了したユーザーコマンドの対象レコードに対するユーザーコマンドの実行とレコードの収集処理はスキップします(次回の収集のタイミングからユーザーコマンドの実行とレコードの収集処理を行います)。
図6‒5 ユーザーコマンドを実行するタイミングをレコード収集後からレコード収集前に変更した場合の注意事項
-
- その他の注意事項
-
-
Win16ビットアプリケーションは実行できません。
-
WindowsのSysWOW64システムフォルダ配下にあるコマンドをユーザーコマンド定期実行機能に指定する場合は,絶対パスで指定してください。
-
ウィンドウやダイアログボックスを表示するプログラムは実行できません。ただし,net sendコマンドを実行してダイアログボックスを表示することはできます。これは,net sendコマンドがダイアログボックスを表示するのではなく,WindowsのMessengerサービスが表示するためです。
-
Windowsメッセージ機構(DDE)を利用したプログラムは実行できません。
-
対話操作を必要とするプログラムは実行できません。
-
常駐プログラム(終了しないプログラム)は実行できません。
-
アプリケーションに関連づいている拡張子を持つプログラムは実行できません。
-
ネットワークフォルダ上にあるプログラムは実行できません。
-
ディスクの準備ができていないリムーバブルディスク上のプログラムを設定しないでください。
-
Windowsサービスの起動設定で,デスクトップとの対話を許可する設定をしないでください。
-
実行したプログラムの標準出力や標準エラー出力の内容は取得できません。
-
実行するプログラムからファイル出力を行う場合は,出力先のファイルを絶対パスで指定してください。絶対パスを指定しない場合は,PFM - Agent for Platformサービスのフォルダがカレントフォルダになります。
-
実行するユーザーコマンドのパスに空白を含む場合は,パスを" "で囲んでください。
(例)
"C:\Program Files (x86)\userperf\userperf.bat"
-