6.8.2 ユーザー独自のパフォーマンスデータを収集するための設定
ユーザー独自のパフォーマンスデータを収集するためには,次の手順で設定してください。
-
フィールドに格納する情報を決定する。
-
ユーザーコマンドを作成する。
-
ユーザー独自のパフォーマンスデータを定期的に収集するための設定をする。
-
ユーザーデータファイルを収集する設定をする。
各手順について次に説明します。
- 〈この項の構成〉
(1) フィールドに格納する情報を決定する
ユーザーレコードのフィールドには,キー情報とデータ情報を格納します。それぞれに格納する内容を検討してください。
(a) キー情報に格納する情報
ユーザー独自のパフォーマンスデータを格納するユーザーレコードは,一回の収集で複数行のレコードを記録できる複数インスタンスレコードです。同じユーザーレコード内で複数インスタンスレコードを一意に識別するためには,キー情報を設定する必要があります。jpcuserコマンドに複数のユーザー作成データファイルを同時に指定する場合,同時に指定したすべてのユーザー作成データファイルにわたって,レコードインスタンスを一意に識別するキー情報を設定する必要があります。キー情報の種類を次の表に示します。
キー情報の種類 |
フィールド名 |
説明 |
---|---|---|
トランザクションタイプ |
Trans Type |
インスタンスの種類を識別する。 |
トランザクションキー |
Trans Data Key(数値型) |
同一トランザクションタイプのインスタンスを識別する。 |
Trans String Key(文字列型) |
トランザクションタイプは,複数のパフォーマンスデータを区別する場合に使います。例えば,データベースとWebサーバに関する情報をレコードに格納する場合,トランザクションタイプに「DATABASE」と「WEB」を格納するようにします。これによって,格納された情報が,データベースの情報であるか,Webサーバの情報であるかを区別できます。
トランザクションタイプが同じインスタンスが複数ある場合には,トランザクションキーを用いて区別します。Trans Data KeyまたはTrans String Keyを設定しなかったり,同じ値を設定したりして,レコードのインスタンスをユニークに識別できない場合は,最初のインスタンスが採用されます。
(b) データ情報に格納する情報
データ情報として,double型,long型,ulong型の3種類の数値データと,長さの異なる3種類の文字列データと,時間データを格納できます。格納できる数はユーザーレコードごとに異なります。なお,PIレコードタイプの数値データについては,集約ルールとして,平均,または累積のどちらかを選択できます。
収集するパフォーマンスデータに応じて,どのユーザーレコードを使用するかを選択してください。格納できる情報が多いユーザーレコードの方がメモリーなどを大量に消費するため,必要十分なユーザーレコードを選択してください。
ユーザーレコードごとのフィールド数を次の表に示します。
レコードタイプ |
ユーザーレコードの種類 |
フィールド数 |
||
---|---|---|---|---|
数値データ |
文字列データ |
時間データ |
||
PDレコードタイプ |
User Data Detail(PD_UPD) |
2*3=6 |
1+2+4=7 |
1 |
User Data Detail - Extended(PD_UPDB) |
5*3=15 |
5+5+5=15 |
1 |
|
PIレコードタイプ |
User Data Interval(PI_UPI) |
4*3=12 |
1+2+4=7 |
1 |
User Data Interval - Extended(PI_UPIB) |
10*3=30 |
5+5+5=15 |
1 |
|
User Data Interval - Expanded n※1(PI_XUIn※1) |
60*1=60※2 |
1※3+2※4=3 |
1 |
- 注※1
-
nは1〜5の数字です。
- 注※2
-
すべてdouble型です。
- 注※3
-
128バイトの文字列の数です。
- 注※4
-
64バイトの文字列の数です。
ユーザーレコードを選択する際の判断基準を次の表に示します。
パフォーマンスデータの累積データを保持するか? |
保持するパフォーマンスデータの種類は多いか? |
推奨するユーザーレコード |
---|---|---|
Yes |
No |
PI_UPI |
Yes |
Yes |
PI_UPIB,PI_XUI1〜PI_XUI5 |
No |
No |
PD_UPD |
No |
Yes |
PD_UPDB |
(2) ユーザーコマンドを作成する
ユーザーコマンドは,パフォーマンスデータを収集しユーザー作成データを作成するためのスクリプトです。ユーザー作成データのファイル形式に従ってパフォーマンスデータを出力するようにスクリプトを記述してください。
ユーザー作成データのファイル書式については,「6.8.4 ユーザー作成データのファイル形式」を参照してください。
ユーザー作成データは,jpcuserコマンドを実行するときに-fileオプションで指定できるパスに格納してください。詳細は,「6.8.3 jpcuserコマンドの形式」の引数の説明を参照してください。
なお,ユーザーコマンドで出力したユーザー作成データが正しいかどうかを確認する場合,jpcuserコマンドを次のように実行してください。
-
物理ホスト環境:
インストール先フォルダ\agtt\agent\jpcuser\jpcuser PI_UPI -file ユーザー作成データ -debug 1
-
論理ホスト環境:
インストール先フォルダ\agtt\agent\jpcuser\jpcuser PI_UPI -file ユーザー作成データ -debug 1 -lhost 論理ホスト名
上記コマンドを実行すると,次に示すデバッグログが生成されます。
-
物理ホスト環境:
インストール先フォルダ\agtt\agent\jpcuser\debug\jpcuser_dbg_01.log
-
論理ホスト環境:
環境フォルダ\jp1pc\agtt\agent\jpcuser\debug\jpcuser_dbg_01.log
デバッグログの内容を確認して,エラーが発生していないことを確認してください。
jpcuserコマンドの詳細については,「6.8.3 jpcuserコマンドの形式」を参照してください。
(3) ユーザー独自のパフォーマンスデータを定期的に収集するための設定をする
ユーザーコマンド定期実行機能を使って,定期的にユーザー独自のパフォーマンスデータを収集するための設定方法を説明します。
-
PFM - Web Consoleでユーザーレコードの収集設定を行う。
ユーザーコマンド定期実行機能の実行間隔は,各ユーザーレコードのCollection Intervalの設定に依存します。
-
PFM - Web Consoleでユーザーコマンド定期実行機能のプロパティを設定する。
ユーザーコマンド定期実行機能を実行するために,PFM - Web Consoleで各ユーザーレコードの次のプロパティを設定します※。プロパティの設定方法は,PD_UPDレコード,PD_UPDBレコード,PI_UPIレコード,PI_UPIBレコード,およびPI_XUI1レコード〜PI_XUI5レコードで共通です。
- 注※
-
PFM - Web Consoleで定期的にユーザー独自のパフォーマンスデータを収集するための設定をする場合,物理ホスト運用時と論理ホスト運用時で選択するサービスが次のように異なることに注意してください。
-
物理ホスト環境:Windows<物理ホスト名> またはTA1物理ホスト名
-
論理ホスト環境:Windows<論理ホスト名> またはTA1論理ホスト名
-
|
プロパティ |
値 |
説明 |
デフォルト値 |
---|---|---|---|
User Command Setting - User Command Execution Timing |
After/Before |
ユーザーコマンド定期実行機能でユーザーコマンドを実行するタイミングを指定する。
|
After |
User Command Setting - User Command Timeout |
1〜86,400の整数 |
ユーザーコマンド定期実行機能で「User Command Execution Timing」プロパティに「Before」を選択した場合に,ユーザーコマンドの実行を打ち切る時間(秒)※を指定する。
|
5 |
User Command Setting - レコード名 - Execute |
Yes/No |
ユーザーコマンド定期実行機能を実行するかどうか指定する。
|
No |
User Command Setting - レコード名 - UserCommand |
絶対パス |
ユーザーコマンドの絶対パスを指定する。絶対パスに指定できる文字列の最大長は255バイト。指定できる文字は,次の文字を除く,半角英数字および半角記号。 | < > |
空白 |
注1 「Execute」プロパティが「Yes」,「UserCommand」プロパティが空白の場合,KAVF11318-Wのメッセージが出力されユーザーコマンドは実行されません。
注2 指定されたユーザーコマンドが存在しない場合,またはユーザーコマンドの実行権限がない場合は,KAVF11007-Wのメッセージが出力されます。
注3 論理ホスト運用の場合,「UserCommand」プロパティで共有ディスク上に配置したユーザーコマンドのパスを指定できます。ユーザーコマンドを共有ディスク上に配置しない場合は,実行系ノードと待機系ノードの両方で,同じパスに配置する必要があります。
注4 「User Command Execution Timing」プロパティが「After」の場合,実行したユーザーコマンドが次回の収集タイミングまでに終了しないときは,ユーザーコマンドを実行しません。
- メモ
-
Windowsのタスクスケジューラーを使って,定期的にユーザー独自のパフォーマンスデータを収集することもできます。タスクスケジューラーは,バッチファイルやプログラムなどを指定した時刻と間隔で自動実行できるWindowsの機能です。ユーザーコマンド,およびjpcuserコマンドを続けて実行するバッチファイルを作成し,タスクスケジューラーでそのバッチファイルを定期的に実行するように設定してください。
(4) ユーザーデータファイルを収集する設定をする
ユーザーデータファイルとは,jpcuserコマンドによって,ユーザー作成データをPFM - Agent for Platformが管理できるレコード形式に変換したデータファイルのことです。このユーザーデータファイルのデータは,PFM - Agent for Platformがレコードを収集するタイミングで,ユーザーレコードに格納されます。PFM - Agent for Platformがユーザーレコードを収集するように,PFM - Web Consoleで設定してください。
レコードの収集方法については,マニュアル「JP1/Performance Management 設計・構築ガイド」の,Performance Managementの機能について説明している章を参照してください。
(5) ユーザー独自のパフォーマンスデータの収集例(物理ホスト環境)
次の表に示す形式でプロセス情報をPI_UPIレコードに収集する例を示します。
オプション |
説明 |
対応するフィールド名 |
値 |
---|---|---|---|
tt |
トランザクションタイプ |
Trans Type |
PROCESS |
ki |
トランザクションキー(数値型) |
Trans Data Key |
プロセスID |
sm |
32バイトの長さの文字列 |
User String(32) |
プロセス名 |
u |
符号なしlong型 |
User Unsigned Long 1 |
スレッド数 |
(6) ユーザーコマンドの例(物理ホスト環境)
Windowsからプロセスの情報を取得し,ユーザー作成データを出力するユーザーコマンド(userproc1.vbs,userproc2.vbs)の例を次に示します。
userproc1.vbsの例
'ヘッダー出力 WScript.Echo "Product Name=PFM-Agent for Platform (Windows)" WScript.Echo "FormVer=0001" 'オプションヘッダー出力 WScript.Echo "tt ki sm u" 'プロセス一覧を取得し,その内容を出力:注)空白を含む文字列は,Chr(34)で囲む。 for each Process in GetObject("winmgmts:").InstancesOf("win32_process") WScript.Echo "Process", Process.ProcessId, Chr(34) & Process.Name & Chr(34), Process.ThreadCount next
userproc2.vbsの例
'ヘッダー出力 WScript.Echo "Product Name=PFM-Agent for Platform (Windows)" WScript.Echo "FormVer=0001" 'オプションヘッダー出力 WScript.Echo "tt u" '物理メモリーの合計を取得し,その内容を出力 for each Memory in GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem") WScript.Echo "TotalPhysicalMemory", Memory.TotalVisibleMemorySize next
上記ユーザーコマンドを実行したときのユーザー作成データを次に示します。
userproc1.vbsによって出力されるユーザー作成データの例
Product Name=PFM-Agent for Platform (Windows) FormVer=0001 tt ki ks u Process 0 "System Idle Process" 1 Process 8 "System" 41 Process 172 "SMSS.EXE" 6 Process 200 "CSRSS.EXE" 12 Process 196 "WINLOGON.EXE" 19 Process 248 "SERVICES.EXE" 41
userproc2.vbsによって出力されるユーザー作成データの例
Product Name=PFM-Agent for Platform (Windows) FormVer=0001 tt u TotalPhysicalMemory 1048052
- メモ
-
-
利用ポート情報の収集例については,「3.1.8 利用ポート情報の収集例」を参照してください。
-
PFM製品が導入されていない複数のホストからのパフォーマンスデータの収集例については,「3.1.9 PFM製品が導入されていない複数のホストからのパフォーマンスデータの収集例」を参照してください。
-
(7) 定期的に収集するためのバッチファイルの例(物理ホスト環境)
ユーザーコマンド定期実行機能を使って定期的に実行するためのバッチファイル(userperf.bat)の例を次に示します。
REM フォルダの移動 cd C:\Program Files (x86)\Hitachi\jp1pc\agtt\agent\jpcuser REM ユーザー作成データの生成 cscript //nologo userproc1.vbs > UPI1.txt cscript //nologo userproc2.vbs > UPI2.txt REM jpcuserコマンドによってユーザー作成データをレコード形式に変換 jpcuser PI_UPI -file UPI1.txt -file UPI2.txt※
- 注※
-
-debug 2を指定すると,次のフォルダにデバッグログが出力されます。
インストール先フォルダ\agtt\agent\jpcuser\debug\
なお,バッチファイル(userperf.bat)とVBスクリプトは次の場所に格納してください。
C:\Program Files (x86)\Hitachi\jp1pc\agtt\agent\jpcuser
- メモ
-
このバッチファイルをWindowsのタスクスケジューラーを使って,定期的に実行することもできます。
(8) ユーザー独自のパフォーマンスデータの収集例(論理ホスト環境)
プロセス情報をPI_UPIレコードに収集するときの例を次の表に示します。論理ホスト環境の場合は,ユーザーコマンドを実行しているホスト名の情報を含めると,どのノードで実行しているかがわかりやすくなります。
オプション |
説明 |
対応するフィールド名 |
値 |
---|---|---|---|
tt |
トランザクションタイプ |
Trans Type |
PROCESS |
ki |
トランザクションキー(数値型) |
Trans Data Key |
プロセスID |
sm |
32バイトの文字列 |
User String 5 |
プロセス名 |
u |
符号なしlong型 |
User Unsigned Long 1 |
スレッド数 |
sm |
32バイトの文字列 |
User String 6 |
ホスト名 |
(9) ユーザーコマンドの例(論理ホスト環境)
Windowsからプロセスの情報を取得し,ユーザー作成データを出力するユーザーコマンド(userproc1.vbs)の例を次に示します。
userproc1.vbsの例
'変数宣言 Dim objNetwork Dim hostName 'ネットワークオブジェクトの生成 Set objNetwork = CreateObject("WScript.Network") 'ユーザーコマンドを実行しているホスト名を取得 hostName = objNetwork.ComputerName 'ヘッダー出力 WScript.Echo "Product Name=PFM-Agent for Platform (Windows)" WScript.Echo "FormVer=0001" 'オプションヘッダー出力 WScript.Echo "tt ki sm u sm" 'プロセス一覧を取得し,その内容を出力:注)空白を含む文字列は,Chr(34)で囲む。 '末尾のフィールドにホスト名を含める for each Process in GetObject("winmgmts:").InstancesOf("win32_process") WScript.Echo "Process", Process.ProcessId, Chr(34) & Process.Name & Chr(34), Process.ThreadCount, hostName next 'ネットワークオブジェクトの解放 Set objNetwork = Nothing
userproc1.vbsによって出力されるユーザー作成データの例
Product Name=PFM-Agent for Platform (Windows) FormVer=0001 tt ki sm u sm Process 0 "System Idle Process" 1 jp1-aop Process 8 "System" 41 jp1-aop Process 172 "SMSS.EXE" 6 jp1-aop Process 200 "CSRSS.EXE" 12 jp1-aop Process 196 "WINLOGON.EXE" 19 jp1-aop Process 248 "SERVICES.EXE" 41 jp1-aop
- メモ
-
-
利用ポート情報の収集例については,「3.1.8 利用ポート情報の収集例」を参照してください。
-
PFM製品が導入されていない複数のホストからのパフォーマンスデータの収集例については,「3.1.9 PFM製品が導入されていない複数のホストからのパフォーマンスデータの収集例」を参照してください。
-
(10) 定期的に収集するためのバッチファイルの例(論理ホスト環境)
ユーザーコマンド定期実行機能を使って定期的に収集するためのバッチファイル(userperf.bat)の例を次に示します。
REM フォルダの移動 cd S:\jp1\userdata REM ユーザー作成データの生成 cscript //nologo userproc1.vbs > UPI1.txt REM jpcuserコマンドによってユーザー作成データをレコード形式に変換 "C:\Program Files (x86)\Hitachi\jp1pc\agtt\agent\jpcuser\jpcuser" PI_UPI -file UPI1.txt -lhost jp1-halaop※
- 注※
-
-debug 2を指定すると,次のフォルダにデバッグログが出力されます。
環境フォルダ\jp1pc\agtt\agent\jpcuser\debug\
なお,バッチファイル(userperf.bat)とVBスクリプトは次の場所に格納してください。
S:\jp1\userdata
- メモ
-
このバッチファイルをWindowsのタスクスケジューラーを使って,定期的に実行することもできます。