Hitachi

JP1 Version 12 JP1/Performance Management - Agent Option for Platform(Windows(R)用)


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

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

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

  2. ユーザーコマンドを作成する。

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

  4. ユーザーデータファイルを収集する設定をする。

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

〈この項の構成〉

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

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

(a) キー情報に格納する情報

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

表6‒19 キー情報の種類

キー情報の種類

フィールド名

説明

トランザクションタイプ

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レコードタイプの数値データについては,集約ルールとして,平均,または累積のどちらかを選択できます。

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

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

表6‒20 ユーザーレコードごとのフィールド数

レコードタイプ

ユーザーレコードの種類

フィールド数

数値データ

文字列データ

時間データ

PDレコードタイプ

User Data Detail(PD_UPD)

23=6

1+2+4=7

1

User Data Detail - Extended(PD_UPDB)

53=15

5+5+5=15

1

PIレコードタイプ

User Data Interval(PI_UPI)

43=12

1+2+4=7

1

User Data Interval - Extended(PI_UPIB)

103=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バイトの文字列の数です。

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

表6‒21 ユーザーレコードの選択基準

パフォーマンスデータの累積データを保持するか?

保持するパフォーマンスデータの種類は多いか?

推奨するユーザーレコード

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) ユーザー独自のパフォーマンスデータを定期的に収集するための設定をする

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

  1. PFM - Web Consoleでユーザーレコードの収集設定を行う。

    ユーザーコマンド定期実行機能の実行間隔は,各ユーザーレコードのCollection Intervalの設定に依存します。

  2. 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論理ホスト名

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

[図データ]

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

プロパティ

説明

デフォルト値

User Command Setting - User Command Execution Timing

After/Before

ユーザーコマンド定期実行機能でユーザーコマンドを実行するタイミングを指定する。

  • After:レコード収集後にユーザーコマンドを実行する

  • Before:レコード収集前にユーザーコマンドを実行する

After

User Command Setting - User Command Timeout

1〜86,400の整数

ユーザーコマンド定期実行機能で「User Command Execution Timing」プロパティに「Before」を選択した場合に,ユーザーコマンドの実行を打ち切る時間(秒)を指定する。

注※

ユーザーコマンドの実行を打ち切る時間は,ほかのレコード収集のタイミングに影響がない範囲で指定する必要があります。

5

User Command Setting - レコード名 - Execute

Yes/No

ユーザーコマンド定期実行機能を実行するかどうか指定する。

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

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

オプション

説明

対応するフィールド名

tt

トランザクションタイプ

Trans Type

PROCESS

ki

トランザクションキー(数値型)

Trans Data Key

プロセスID

sm

32バイトの長さの文字列

User String(32)

プロセス名

u

符号なしlong型

User Unsigned Long 1

スレッド数

(6) ユーザーコマンドの例(物理ホスト環境)

Windowsからプロセスの情報を取得し,ユーザー作成データを出力するユーザーコマンド(userproc1.vbsuserproc2.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
メモ

(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レコードに収集するときの例を次の表に示します。論理ホスト環境の場合は,ユーザーコマンドを実行しているホスト名の情報を含めると,どのノードで実行しているかがわかりやすくなります。

表6‒24 収集するパフォーマンスデータの例

オプション

説明

対応するフィールド名

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
メモ

(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のタスクスケジューラーを使って,定期的に実行することもできます。