5.8.2 ユーザー独自のパフォーマンスデータを収集するための設定

ユーザー独自のパフォーマンスデータを収集するためには,次の手順で設定してください。

  1. フィールドに格納する情報を決定する。
  2. ユーザーコマンドを作成する。
  3. ユーザー独自のパフォーマンスデータを定期的に収集するための設定をする。
  4. ユーザーデータファイルを収集する設定をする。

各手順について次に説明します。

<この項の構成>
(1) フィールドに格納する情報を決定する
(2) ユーザーコマンドを作成する
(3) ユーザー独自のパフォーマンスデータを定期的に収集するための設定をする
(4) ユーザーデータファイルを収集する設定をする
(5) ユーザー独自のパフォーマンスデータの収集例
(6) ユーザーコマンドの例
(7) 定期的に収集するためのバッチファイルの例

(1) フィールドに格納する情報を決定する

ユーザーレコードのフィールドには,キー情報とデータ情報を格納します。それぞれに格納する内容を検討してください。

●キー情報に格納する情報

ユーザー独自のパフォーマンスデータを格納するユーザーレコードは,一回の収集で複数行のレコードを記録できる複数インスタンスレコードです。同じユーザーレコード内で複数インスタンスレコードを一意に識別するためには,キー情報を設定する必要があります。jpcuserコマンドに複数のユーザー作成データファイルを同時に指定する場合,同時に指定したすべてのユーザー作成データファイルにわたって,レコードインスタンスを一意に識別するキー情報を設定する必要があります。キー情報の種類を次の表に示します。

表5-19 キー情報の種類

キー情報の種類フィールド名説明
トランザクションタイプTrans Typeインスタンスの種類を識別する。
トランザクションキーTrans Data Key(数値型)同一トランザクションタイプのインスタンスを識別する。
Trans String Key(文字列型)

トランザクションタイプは,複数のパフォーマンスデータを区別する場合に使います。例えば,データベースとWebサーバに関する情報をレコードに格納する場合,トランザクションタイプに「DATABASE」と「WEB」を格納するようにします。これによって,格納された情報が,データベースの情報であるか,Webサーバの情報であるかを区別できます。

トランザクションタイプが同じインスタンスが複数ある場合には,トランザクションキーを用いて区別します。Trans Data KeyまたはTrans String Keyを設定しなかったり,同じ値を設定したりして,レコードのインスタンスをユニークに識別できない場合は,最初のレコードのインスタンスが採用されます。

●データ情報に格納する情報

データ情報として,double型,long型,ulong型の3種類の数値データと,長さの異なる3種類の文字列データと,時間データを格納できます。格納できる数はユーザーレコードごとに異なります。なお,PIレコードタイプの数値データについては,集約ルールとして,平均,または累積のどちらかを選択できます。

収集するパフォーマンスデータに応じて,どのユーザーレコードを使用するかを選択してください。格納できる情報が多いユーザーレコードの方がメモリーなどを大量に消費するため,必要十分なユーザーレコードを選択してください。

ユーザーレコードごとのフィールド数を次の表に示します。

表5-20 ユーザーレコードごとのフィールド数

レコードタイプユーザーレコードの種類フィールド数
数値データ文字列データ時間データ
PDレコードタイプUser Data Detail(PD_UPD)2*3=61+2+4=71
User Data Detail - Extended(PD_UPDB)5*3=155+5+5=151
PIレコードタイプUser Data Interval(PI_UPI)4*3=121+2+4=71
User Data Interval - Extended(PI_UPIB)10*3=305+5+5=151

ユーザーレコードを選択する際の判断基準を次の表に示します。

表5-21 ユーザーレコードの選択基準

パフォーマンスデータの累積データを保持するか?保持するパフォーマンスデータの種類は多いか?推奨するユーザーレコード
YesNoPI_UPI
YesYesPI_UPIB
NoNoPD_UPD
NoYesPD_UPDB

(2) ユーザーコマンドを作成する

ユーザーコマンドは,パフォーマンスデータを収集しユーザー作成データを作成するためのスクリプトです。ユーザー作成データのファイル形式に従ってパフォーマンスデータを出力するようにスクリプトを記述してください。

ユーザー作成データのファイル書式については,「5.8.4 ユーザー作成データのファイル形式」を参照してください。

なお,ユーザーコマンドで出力したユーザー作成データが正しいかどうかを確認する場合,jpcuserコマンドを次のように実行してください。

インストール先フォルダ¥agtt¥agent¥jpcuser¥jpcuser PI_UPI -file ユーザー作成データ -debug 1

上記コマンドを実行すると,次に示すデバッグログが生成されます。

インストール先フォルダ¥agtt¥agent¥jpcuser¥debug¥jpcuser_dbg_01.log

デバッグログの内容を確認して,エラーが発生していないことを確認してください。

jpcuserコマンドの詳細については,「5.8.3 jpcuserコマンドの形式」を参照してください。

(3) ユーザー独自のパフォーマンスデータを定期的に収集するための設定をする

ユーザーコマンド定期実行機能を使って,定期的にユーザー独自のパフォーマンスデータを収集するための設定方法を説明します。

  1. PFM - Web Consoleでユーザーレコードの収集設定を行う。
    ユーザーコマンド定期実行機能の実行間隔は,各ユーザーレコードのCollection Intervalの設定に依存します。
  2. PFM - Web Consoleでユーザーコマンド定期実行機能のプロパティを設定する。
    ユーザーコマンド定期実行機能を実行するために,PFM - Web Consoleで各ユーザーレコードの次のプロパティを設定します。プロパティの設定方法は,PD_UPDレコード,PD_UPDBレコード,PI_UPIレコード,およびPI_UPIBレコードで共通です。

    図5-4 ユーザーコマンド定期実行機能のプロパティ

    [図データ]

    表5-22 ユーザーレコードのプロパティ設定

    プロパティ説明デフォルト値
    ExecuteYes/Noユーザーコマンド定期実行機能を実行するかどうか指定する。
    • Yes:実行する
    • No:実行しない
    No
    UserCommand絶対パスユーザーコマンドの絶対パスを指定する。絶対パスに指定できる文字列の最大長は255バイト。指定できる文字は,次の文字を除く,半角英数字および半角記号。
    | < >
    空白

    注1 「Execute」プロパティが「Yes」,「UserCommand」プロパティが空白の場合,KAVF11318-Wのメッセージが出力されユーザーコマンドは実行されません。

    注2 指定されたユーザーコマンドが存在しない場合,またはユーザーコマンドの実行権限がない場合は,KAVF11007-Wのメッセージが出力されます。


    参考
    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レコードに収集する例を示します。

表5-23 収集するパフォーマンスデータの例

オプション説明対応するフィールド名
ttトランザクションタイプTrans TypePROCESS
kiトランザクションキー(数値型)Trans Data KeyプロセスID
ksトランザクションキー(文字列型)Trans String Keyプロセス名
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 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

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_LogicalMemoryConfiguration")
 WScript.Echo "TotalPhysicalMemory", Memory.TotalPhysicalMemory
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

参考

(7) 定期的に収集するためのバッチファイルの例

ユーザーコマンド定期実行機能を使って定期的に実行するためのバッチファイル(userperf.bat)の例を次に示します。

REM フォルダの移動
cd C:¥Program Files¥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¥Hitachi¥jp1pc¥agtt¥agent¥jpcuser

参考
このバッチファイルをWindowsのタスクスケジューラーを使って,定期的に実行することもできます。