ユーザー独自のパフォーマンスデータを収集する機能の概要と,設定方法について説明します。
(1) 機能概要
ユーザー独自のパフォーマンスデータを収集する機能およびユーザーコマンド定期実行機能について説明します。
(a) ユーザー独自のパフォーマンスデータを収集する機能
この機能は,ユーザーがテキストファイルに出力した独自のパフォーマンスデータを,jpcuserコマンドによって,PFM - Agent for Platformが提供するレコードに格納できる形式に変換する機能です。この機能を使用してユーザー独自のパフォーマンスデータを収集するためには,あらかじめ,パフォーマンスデータをテキストファイルに出力するためのコマンドを作成する必要があります。
ユーザー独自のパフォーマンスデータを収集する仕組みを,次の図を用いて説明します。
図3-8 ユーザー独自のパフォーマンスデータを収集する仕組み
図中の番号に従って処理の流れを説明します。
定期的にパフォーマンスデータを収集したい場合は,ユーザーコマンド定期実行機能を利用して,ユーザーコマンドとjpcuserコマンドを自動実行するよう設定してください。
(b) ユーザーコマンド定期実行機能
この機能は,タスクスケジューラーなどのスケジュール機能を使用しないで,PFM - Agent for Platformからユーザーコマンドを一定間隔で実行する機能です。ユーザーコマンドからユーザーデータファイルを作成する仕組みは,「3.2.6(1)(a) ユーザー独自のパフォーマンスデータを収集する機能」と同じです。
ユーザーコマンド定期実行機能は,PFM - Agent for Platformがレコードを収集するタイミングで実行されます。レコードの収集処理が完了したあとに,ユーザーコマンドによってユーザーデータファイルが作成されるため,ユーザーデータファイルの収集処理と作成処理が競合することはありません。また,ユーザーコマンド定期実行機能は,ユーザーレコードのCollection Intervalの設定に従って実行されるため,履歴収集およびアラーム収集では実行されますが,リアルタイム収集では実行されません。ユーザーコマンド定期実行機能の処理の流れを次の図に示します。
図3-9 ユーザーコマンド定期実行機能の処理の流れ
ユーザーコマンド定期実行機能は,前回起動したユーザーコマンドが終了しているか判定し,実行中の場合はユーザーコマンドの処理をスキップします。
(c) ユーザーコマンド定期実行機能に関する注意事項
ユーザーコマンド定期実行機能についての注意事項を次に示します。
(2) 設定手順
ユーザー独自のパフォーマンスデータを収集するためには,次の手順で設定してください。
各手順について次に説明します。
(a) フィールドに格納する情報を決定する
ユーザーレコードのフィールドには,キー情報とデータ情報を格納します。それぞれに格納する内容を検討してください。
●キー情報に格納する情報
ユーザー独自のパフォーマンスデータを格納するユーザーレコードは,一回の収集で複数行のレコードを記録できる複数インスタンスレコードです。同じユーザーレコード内で複数インスタンスレコードを一意に識別するためには,キー情報を設定する必要があります。jpcuserコマンドに複数のユーザー作成データファイルを同時に指定する場合,同時に指定したすべてのユーザー作成データファイルにわたって,レコードインスタンスを一意に識別するキー情報を設定する必要があります。キー情報の種類を次の表に示します。
表3-3 キー情報の種類
キー情報の種類 | フィールド名 | 説明 |
---|---|---|
トランザクションタイプ | Trans Type | インスタンスの種類を識別する。 |
トランザクションキー | Trans Data Key(数値型) | 同一トランザクションタイプのインスタンスを識別する。 |
Trans String Key(文字列型) |
トランザクションタイプは,複数のパフォーマンスデータを区別する場合に使います。例えば,データベースとWebサーバに関する情報をレコードに格納する場合,トランザクションタイプに「DATABASE」と「WEB」を格納するようにします。これによって,格納された情報が,データベースの情報であるか,Webサーバの情報であるかを区別できます。
トランザクションタイプが同じインスタンスが複数ある場合には,トランザクションキーを用いて区別します。Trans Data KeyまたはTrans String Keyを設定しなかったり,同じ値を設定したりして,レコードのインスタンスをユニークに識別できない場合は,最初のレコードのインスタンスが採用されます。
●データ情報に格納する情報
データ情報として,double型,long型,ulong型の3種類の数値データと,長さの異なる3種類の文字列データと,時間データを格納できます。格納できる数はユーザーレコードごとに異なります。なお,PIレコードタイプの数値データについては,集約ルールとして,平均,または累積のどちらかを選択できます。
収集するパフォーマンスデータに応じて,どのユーザーレコードを使用するかを選択してください。格納できる情報が多いユーザーレコードの方がメモリーなどを大量に消費するため,必要十分なユーザーレコードを選択してください。
ユーザーレコードごとのフィールド数を次の表に示します。
表3-4 ユーザーレコードごとのフィールド数
レコードタイプ | ユーザーレコードの種類 | フィールド数 | ||
---|---|---|---|---|
数値データ | 文字列データ | 時間データ | ||
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 |
ユーザーレコードを選択する際の判断基準を次の表に示します。
表3-5 ユーザーレコードの選択基準
パフォーマンスデータの累積データを保持するか? | 保持するパフォーマンスデータの種類は多いか? | 推奨するユーザーレコード |
---|---|---|
Yes | No | PI_UPI |
Yes | Yes | PI_UPIB |
No | No | PD_UPD |
No | Yes | PD_UPDB |
(b) ユーザーコマンドを作成する
ユーザーコマンドは,パフォーマンスデータを収集しユーザー作成データを作成するためのスクリプトです。ユーザー作成データのファイル形式に従ってパフォーマンスデータを出力するようにスクリプトを記述してください。
ユーザー作成データのファイル書式については,「3.2.6(5) ユーザー作成データのファイル形式」を参照してください。
なお,ユーザーコマンドで出力したユーザー作成データが正しいかどうかを確認する場合,jpcuserコマンドを次のように実行してください。
インストール先フォルダ¥agtt¥agent¥jpcuser¥jpcuser PI_UPI -file ユーザー作成データ -debug 1
上記コマンドを実行すると,次に示すデバッグログが生成されます。
インストール先フォルダ¥agtt¥agent¥jpcuser¥debug¥jpcuser_dbg_01.log
デバッグログの内容を確認して,エラーが発生していないことを確認してください。
jpcuserコマンドの詳細については,「3.2.6(4) jpcuserコマンドの形式」を参照してください。
(c) ユーザー独自のパフォーマンスデータを定期的に収集するための設定をする
ユーザーコマンド定期実行機能を使って,定期的にユーザー独自のパフォーマンスデータを収集するための設定方法を説明します。
図3-10 ユーザーコマンド定期実行機能のプロパティ
表3-6 ユーザーレコードのプロパティ設定
プロパティ | 値 | 説明 | デフォルト値 |
---|---|---|---|
Execute | Yes/No | ユーザーコマンド定期実行機能を実行するかどうか指定する。
| No |
UserCommand | 絶対パス | ユーザーコマンドの絶対パスを指定する。絶対パスに指定できる文字列の最大長は255バイト。指定できる文字は,次の文字を除く,半角英数字および半角記号。 | < > | 空白 |
注1 「Execute」プロパティが「Yes」,「UserCommand」プロパティが空白の場合,KAVF11318-Wのメッセージが出力されユーザーコマンドは実行されません。
注2 指定されたユーザーコマンドが存在しない場合,またはユーザーコマンドの実行権限がない場合は,KAVF11007-Wのメッセージが出力されます。
(d) ユーザーデータファイルを収集する設定をする
ユーザーデータファイルとは,jpcuserコマンドによって,ユーザー作成データをPFM - Agent for Platformが管理できるレコード形式に変換したデータファイルのことです。このユーザーデータファイルのデータは,PFM - Agent for Platformがレコードを収集するタイミングで,ユーザーレコードに格納されます。PFM - Agent for Platformがユーザーレコードを収集するように,PFM - Web Consoleで設定してください。
レコードの収集方法については,マニュアル「JP1/Performance Management システム構築・運用ガイド」の,Performance Managementの機能について説明している章を参照してください。
(3) ユーザー独自のパフォーマンスデータの収集例
次の表に示す形式でプロセス情報をPI_UPIレコードに収集する例を示します。
表3-7 収集するパフォーマンスデータの例
オプション | 説明 | 対応するフィールド名 | 値 |
---|---|---|---|
tt | トランザクションタイプ | Trans Type | PROCESS |
ki | トランザクションキー(数値型) | Trans Data Key | プロセスID |
ks | トランザクションキー(文字列型) | Trans String Key | プロセス名 |
u | 符号なしlong型 | User Unsigned Long 1 | スレッド数 |
(a) ユーザーコマンドの例
Windowsからプロセスの情報を取得し,ユーザー作成データを出力するユーザーコマンド(userproc1.vbs,userproc2.vbs)の例を次に示します。
'ヘッダー出力
WScript.Echo "Product Name=PFM-Agent for Platform (Windows)"
WScript.Echo "FormVer=0001"
'オプションヘッダー出力
WScript.Echo "tt ki ks 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
'ヘッダー出力
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_LogicalMemoryConfiguration")
WScript.Echo "TotalPhysicalMemory", Memory.TotalPhysicalMemory
next
上記ユーザーコマンドを実行したときのユーザー作成データを次に示します。
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
Product Name=PFM-Agent for Platform (Windows)
FormVer=0001
tt u
TotalPhysicalMemory 1048052
(b) 定期的に収集するためのバッチファイルの例
ユーザーコマンド定期実行機能を使って定期的に実行するためのバッチファイル(userperf.bat)の例を次に示します。
REM ユーザー作成データの生成
cscript //nologo userproc1.vbs > UPI1.txt
cscript //nologo userproc2.vbs > UPI2.txt
REM jpcuserコマンドによってユーザー作成データをレコード形式に変換
"%ProgramFiles%¥Hitachi¥jp1pc¥agtt¥agent¥jpcuser¥jpcuser.exe" PI_UPI -file UPI1.txt -file UPI2.txt※
注※ -debug 2を指定すると,次のフォルダにデバッグログが出力されます。
インストール先フォルダ¥agtt¥agent¥jpcuser¥debug¥
(4) jpcuserコマンドの形式
jpcuserコマンドの形式について説明します。
jpcuser レコード名
-file ユーザー作成データのファイル名1
[-file ユーザー作成データのファイル名2]...
[-debug [0|1|2]]
値 | ユーザーデータファイルの出力 | デバッグログの出力 |
---|---|---|
0 | ○ | × |
1 | × | ○ |
2 | ○ | ○ |
上記以外の値 | ○ | × |
指定しない | ○ | × |
デバッグログファイル名 | 説明 |
---|---|
jpcuser_dbg_01.log | 最新のデバッグログファイル |
jpcuser_dbg_02.log | 最新から一つ前のデバッグログファイル |
jpcuser_dbg_03.log | 最新から二つ前のデバッグログファイル |
・・・ | ・・・ |
0 | 正常終了 |
1~100 | 警告のある正常終了 |
101~255 | 異常終了またはエラー発生 |
(5) ユーザー作成データのファイル形式
ユーザー作成データのファイル形式について説明します。パフォーマンスデータを収集するユーザーコマンドでは,この形式に従ってテキスト出力するようにしてください。ユーザー作成データは,アスキーファイルで作成してください。
ユーザー作成データのファイルに出力する情報として,プロダクト情報セクションとデータセクションがあります。プロダクト情報セクションとデータセクションは,ユーザー作成データのファイルごとに作成してください。
(a) プロダクト情報セクション
製品名と,ユーザー作成データのファイル形式のバージョンを設定するセクションです。これらは固定値です。プロダクト情報セクションは内部機能で使用され,ユーザーレコードには格納されません。
形式を次に示します。
Product Name=PFM-Agent for Platform (Windows)
FormVer=0001
(b) データセクション
パフォーマンスデータの情報を設定するセクションです。この情報は,プロダクト情報セクションに続きます。
オプションと,対応するレコードのフィールド名を次の表に示します。フィールド数列のフィールド数を上限にそのオプションを複数指定できます。
表3-8 データセクションで指定するオプションと対応するフィールド
項番 | オプション名 | フィールド名 | 値の説明 | フィールド数(合計) | |||
---|---|---|---|---|---|---|---|
PD_UPD(17) | PD_UPDB(34) | PI_UPI(23) | PI_UPIB(49) | ||||
1 | tt | Trans Type | トランザクションタイプ。このオプションは必ず指定する。※1 サイズ:1~19バイト | 1 | 1 | 1 | 1 |
2 | ki | Trans Data Key | 数値型のトランザクションキー。kiまたはksのどちらかを必ず指定する。両方指定することもできる。 タイプ:ulong 指定できる文字:数値および記号(+) | 1 | 1 | 1 | 1 |
3 | ks | Trans String Key | 文字列型のトランザクションキー。kiまたはksのどちらかを必ず指定する。両方指定することもできる。※1 サイズ:1~19バイト | 1 | 1 | 1 | 1 |
4 | f | User Float | 浮動小数点数※2 タイプ:double | 2 | 5 | 2 | 5 |
5 | fr※3 | User Float Roll | 累積値の浮動小数点数※2 タイプ:double | - | - | 2 | 5 |
6 | l | User Long | 符号つきlong タイプ:long 指定できる文字:数値および記号(- +) | 2 | 5 | 2 | 5 |
7 | lr※3 | User Long Roll | 累積値の符号つきlong タイプ:long 指定できる文字:数値および記号(- +) | - | - | 2 | 5 |
8 | sl | User String(64) | 長い文字列※1 サイズ:1~63バイト + NULL | 1 | 5 | 1 | 5 |
9 | sm | User String(32) | 中間の長さの文字列※1 サイズ:1~31バイト + NULL | 2 | 5 | 2 | 5 |
10 | ss | User String(16) | 短い文字列※1 サイズ:1~15バイト + NULL | 4 | 5 | 4 | 5 |
11 | t | User Time | 時刻(time_t型) 次の形式で指定する。 YYYY/MM/DD,hh:mm:ss jpcuserコマンドを実行するマシンのLocalTimeを設定する。 | 1 | 1 | 1 | 1 |
12 | u | User Unsigned Long | 符号なしlong タイプ:ulong 指定できる文字:数値および記号(+) | 2 | 5 | 2 | 5 |
13 | ur※3 | User Unsigned Long Roll | 累積値の符号なしlong タイプ:ulong 指定できる文字:数値および記号(+) | - | - | 2 | 5 |
(6) デバッグログ
デバッグログとは,ユーザー作成データの内容が正しいかどうかを確認するためのログファイルです。デバッグログを出力する場合には,jpcuserコマンドに-debug 1,または-debug 2オプションを指定して実行してください。
デバッグログファイルには,ユーザー作成データのデータ行ごとにOK(成功),NG(失敗),WG(警告)などのチェック結果が出力されます。デバッグログにNG(失敗)やWG(警告)が出力された場合,ユーザー作成データが不正であると考えられます。ユーザー作成データを出力したユーザーコマンドを見直し,「(5) ユーザー作成データのファイル形式」に従った形式で出力されるように修正してください。
デバッグログファイルの出力先を次に示します。
インストール先フォルダ¥agtt¥agent¥jpcuser¥debug¥jpcuser_dbg_{01|02|03|04|05}.log
次に,デバッグログファイルの形式と見方について説明します。
(a) デバッグログファイルの形式
デバッグログファイルには四つのセクションがあります。
チェック結果はユーザー作成データのデータ行ごとに出力されます。各項目はコンマで区切ります。
出力される項目を次の表に示します。
表3-9 デバッグログファイルに出力される項目
項番 | セクション | 項目 | 値 | 説明 |
---|---|---|---|---|
1 | プロダクト情報 | 製品名称 | Product Name=PFM-Agent for Platform (Windows) | PFM - Agentの製品名称。 |
2 | フォーマットバージョン | FormVer=0001 | ユーザー作成データのフォーマットバージョン。 | |
3 | jpcuserコマンドの実行日時,プロセスID | 実行日時 | YYYY/MM/DD hh:mm:ss | YYYY:年 MM:月 DD:日 hh:時 mm:分 ss:秒 |
4 | プロセスID | PID=xxxx | jpcuserコマンドのプロセスID | |
5 | ヘッダー行 | ヘッダー | (例)PD_UPDレコードの場合 LineNumber,Result,APITime,Recordtype,Transactiontype,t,ks,ki,L1,L2,UL1,UL2,F1,F2,SS1,SS2,SS3,SS4,SM1,SM2,SL1 | デバッグログのヘッダー。 ヘッダー名は,ユーザー作成データファイルのオプションヘッダー行で指定するフィールドオプション,およびフィールド名と対応している。対応については表3-10を参照。 なお,ヘッダー項目は格納するユーザーレコードによって異なる。 |
6 | チェック結果 | ユーザー作成データファイル名 | (例) File=D:¥Program Files¥HITACHI¥jp1pc¥agtt¥agent¥jpcuser¥UPIB_sample01.txt | 読み込んだユーザー作成データファイル名を,ユーザーが指定したパスで出力する。 |
7 | 警告・エラーメッセージ | KAVFxxxxx-x | 後続するレコードの警告・エラー内容を出力する。一つのレコードに複数の誤りがある場合は,その数だけ警告やエラーを出力する。 | |
8 | 行番号 | 数値 | ユーザー作成データ内の行番号。 | |
9 | 結果 | OK | 成功。 ユーザー作成データの該当行に問題がなく,レコードを変換した。 | |
10 | WG | 警告。 ユーザー作成データの該当行に誤りがあるが,レコードを処理した。 あわせて警告メッセージを出力する。 | ||
11 | NG | 失敗。 ユーザー作成データの該当行に誤りがあり,レコードを変換しなかった。 失敗した原因によって,警告メッセージが表示され処理が続行される場合と,エラーメッセージが表示され処理が中断する場合がある。 | ||
12 | BL | 空行。 ユーザー作成データの該当行が空行であることを示し,無視する。 | ||
13 | データ | データ | ユーザー作成データの該当行の内容。 数値フィールドに指定がない場合は0を出力する。 文字列フィールドに指定がない場合は空白("")を出力する。 |
デバッグログファイルに出力されるヘッダー行とユーザー作成データファイルのオプションヘッダー行で指定するフィールドオプション,およびフィールド名の関係を次の表に示します。
表3-10 デバッグログのヘッダー行と,フィールドオプションおよびフィールドとの対応
項番 | デバッグログのヘッダー行の表示 | ユーザー作成データファイルのオプションヘッダー行で指定するフィールドオプション | フィールド名 (PFM - View名) | 説明 |
---|---|---|---|---|
1 | Line Number | - | - | データの行番号 |
2 | Result | - | - | データのチェック結果 |
3 | API Time | - | Collect Time | データが変換された時間 |
4 | Record type | - | Record Type | レコード種別 |
5 | Transaction type | tt | Trans Type | トランザクションタイプ |
6 | t | t | User Time 1 | 時間値 |
7 | ks | ks | Trans String Key | 文字列型のトランザクションキー |
8 | ki | ki | Trans Data Key | 数値型のトランザクションキー |
9 | L1 | l | User Long 1 | long型整数値 |
10 | L2 | l | User Long 2 | long型整数値 |
11 | L3 | l | User Long 3 | long型整数値 |
12 | L4 | l | User Long 4 | long型整数値 |
13 | L5 | l | User Long 5 | long型整数値 |
14 | L1R | lr | User Long Roll 1 | 蓄積されたlong型整数値 |
15 | L2R | lr | User Long Roll 2 | 蓄積されたlong型整数値 |
16 | L3R | lr | User Long Roll 3 | 蓄積されたlong型整数値 |
17 | L4R | lr | User Long Roll 4 | 蓄積されたlong型整数値 |
18 | L5R | lr | User Long Roll 5 | 蓄積されたlong型整数値 |
19 | UL1 | u | User Unsigned Long 1 | unsigned long型整数値 |
20 | UL2 | u | User Unsigned Long 2 | unsigned long型整数値 |
21 | UL3 | u | User Unsigned Long 3 | unsigned long型整数値 |
22 | UL4 | u | User Unsigned Long 4 | unsigned long型整数値 |
23 | UL5 | u | User Unsigned Long 5 | unsigned long型整数値 |
24 | UL1R | ur | User Unsigned Long Roll 1 | 蓄積されたunsigned long型整数値 |
25 | UL2R | ur | User Unsigned Long Roll 2 | 蓄積されたunsigned long型整数値 |
26 | UL3R | ur | User Unsigned Long Roll 3 | 蓄積されたunsigned long型整数値 |
27 | UL4R | ur | User Unsigned Long Roll 4 | 蓄積されたunsigned long型整数値 |
28 | UL5R | ur | User Unsigned Long Roll 5 | 蓄積されたunsigned long型整数値 |
29 | F1 | f | User Float 1 | 浮動小数点値 |
30 | F2 | f | User Float 2 | 浮動小数点値 |
31 | F3 | f | User Float 3 | 浮動小数点値 |
32 | F4 | f | User Float 4 | 浮動小数点値 |
33 | F5 | f | User Float 5 | 浮動小数点値 |
34 | F1R | fr | User Float Roll 1 | 蓄積された浮動小数点値 |
35 | F2R | fr | User Float Roll 2 | 蓄積された浮動小数点値 |
36 | F3R | fr | User Float Roll 3 | 蓄積された浮動小数点値 |
37 | F4R | fr | User Float Roll 4 | 蓄積された浮動小数点値 |
38 | F5R | fr | User Float Roll 5 | 蓄積された浮動小数点値 |
39 | SS1 | ss | User String 1 | サイズ16の文字列 |
40 | SS2 | ss | User String 2 | サイズ16の文字列 |
41 | SS3 | ss | User String 3 | サイズ16の文字列 |
42 | SS4 | ss | User String 4 | サイズ16の文字列 |
43 | SS5 | ss | User String 5 | サイズ16の文字列 |
44 | SM1 | sm | PD_UPD,PI_UPIレコードではUser String 5 PD_UPDB,PI_UPIBレコードではUser String 6 | サイズ32の文字列 |
45 | SM2 | sm | PD_UPD,PI_UPIレコードではUser String 6 PD_UPDB,PI_UPIBレコードではUser String 7 | サイズ32の文字列 |
46 | SM3 | sm | User String 8 | サイズ32の文字列 |
47 | SM4 | sm | User String 9 | サイズ32の文字列 |
48 | SM5 | sm | User String 10 | サイズ32の文字列 |
49 | SL1 | sl | PD_UPD,PI_UPIレコードではUser String 7 PD_UPDB,PI_UPIBレコードではUser String 11 | サイズ64の文字列 |
50 | SL2 | sl | User String 12 | サイズ64の文字列 |
51 | SL3 | sl | User String 13 | サイズ64の文字列 |
52 | SL4 | sl | User String 14 | サイズ64の文字列 |
53 | SL5 | sl | User String 15 | サイズ64の文字列 |
(b) デバッグログファイルの出力例
デバッグログファイルの出力例を次の図に示します。
図3-11 デバッグログファイルの出力例
図中の番号に沿って説明します。