Hitachi

Hitachi System Information Capture システム分析支援 リアルタイムモニタ 


8.4.3 esrtmstced(稼働情報のファイル出力)

目的

稼働状況の分析に必要な稼働情報をCSVファイルに出力します。

形式

esrtmstced [-r] -f 制御文ファイル名

機能

稼働状況を分析するために、一定時間ごと(1日、1時間、1分単位など)や、任意の範囲内の応答時間ごとに、次の情報を稼働情報から集計してファイルに出力します。

指定した単位で集計できます。指定できる項目を次に示します。複数指定した場合は、指定した値の組み合わせごとに集計します。例えば、システム名とサーバを指定すると、(システム名×サーバ)ごとに応答時間やトランザクション件数を出力します。

オプション

-r

システム分析支援リアルタイムモニタ実行中にリアルタイムに稼働状況を分析する場合に指定します。制御文ファイルanalyze文time_intervalオペランドに指定した間隔から約1分後に結果を出力します。

-f 制御文ファイル名  ~ <259文字以内のパス名>

稼働状況を分析する方法を記述した制御文ファイルのパスを指定します。

制御文ファイルの形式(共通)

次の文を記述します。

input文とoutput文は省略できません。range文、select文、analyze文は省略できます。

それぞれの文は次の形式です。△は1文字以上の半角スペースやタブコード、改行コードです。オペランド名と半角等号記号(=)、半角等号記号(=)とオペランド値、オペランド値と半角セミコロン記号(;)、半角セミコロン記号(;)と次の文の間に1文字以上の半角スペースやタブコード、改行コードを記述することもできます。

[図データ]

コメントを記述することもできます。コメントは半角シャープ記号(#)を使用します。半角シャープ記号(#)から行末までをコメントとして扱います。

オペランドによっては複数の値を列挙できます。その場合、半角コンマ記号(,)で値と値を区切ります。

半角スペース、タブコード、半角コンマ記号(,)、半角セミコロン記号(;)、半角シャープ記号(#)を含む値を記述する場合、その値を半角ダブルクォーテーション記号(")で囲んでください。半角ダブルクォーテーション記号(")を含むオペランド値を記述する場合、そのオペランド値を半角ダブルクォーテーション記号(")で囲み、値に含まれる半角ダブルクォーテーション記号(")を二重にしてください。

制御文ファイルの形式(input文の場合)

分析する稼働情報の入力情報について指定します。必ず1つ指定してください。複数指定できません。各オペランドは任意の順番で指定できます。

形式を次に示します。

input adapter_id=アダプタ識別子
   save_directory=稼働情報格納ディレクトリ名 
  ;

オペランドを次に示します。

adapter_id=アダプタ識別子 ~ 〈1~26文字の英大識別子〉

稼働情報を取得したアダプタ識別子を指定します。

save_directory=稼働情報格納ディレクトリ ~ <210文字以内のパス名>

稼働情報格納ディレクトリの絶対パスを指定します。

稼働情報蓄積関連定義のsave_dirプロパティの値を指定してください。

-rオプションを指定していない場合、稼働情報管理ファイルがあるディレクトリを指定してください。-rオプションを指定した場合、システム分析支援リアルタイムモニタ定義ファイルのsave_dirプロパティに指定したディレクトリを指定してください。

制御文ファイルの形式(output文の場合)

結果の出力先や出力形式を指定します。必ず1つ指定してください。複数指定できません。各オペランドは任意の順番で指定できます。

形式を次に示します。

output target={response | transaction} [,{response | transaction}]
  [ file=結果出力ファイル名 ]
  [ file_header={ y | n } ]
  [ data_title={ y | n } ]
  [ inquiry_overwrite={ y | n } ]
  ;

オペランドを次に示します。

target={ response | transaction } [,{ response | transaction }]

稼働情報から集計して出力したい情報を指定します。同じ値を重複して指定した場合はエラーとします。

  • response:応答時間の平均値、最大値、最小値

  • transaction:トランザクションの全体、正常、エラー、タイムアウト、閾値超過、稼働情報編集UOCのユーザー指示件数

file=結果出力ファイル名 ~ <259文字以内のパス名>

結果を出力するファイルの絶対パスを指定します。省略すると標準出力に結果を出力します。

file_header={ y | n }

出力結果の先頭にファイルヘッダ情報を出力するかどうかを指定します。省略するとnを仮定します。

  • y:ファイルヘッダ情報を出力する

  • n:ファイルヘッダ情報を出力しない

data_title={ y | n }

集計データ行の前にタイトル行を出力するかどうかを指定します。省略するとyを仮定します。

  • y:出力する

  • n:出力しない

inquiry_overwrite={ y | n }

fileオペランドに指定したファイルがすでに存在していた場合、ファイルを上書きする前に問い合わせを行うかどうかを指定します。省略するとyを仮定します。

  • y:問い合わせを行う

  • n:問い合わせを行わず上書きする

制御文ファイルの形式(range文の場合)

集計対象とするデータの時間範囲を指定します。省略できます。複数指定できません。

形式を次に示します。

range [ start_time={ YYYYMMDDhhmmss | MMDDhhmmss | hhmmss } ]
  [ end_time={ YYYYMMDDhhmmss | MMDDhhmmss | hhmmss } ]
  [ get_day_num=取得日数 ]
  ;

オペランドを次に示します。

start_time={ YYYYMMDDhhmmss | MMDDhhmmss | hhmmss }

検索開始日時を指定します。本オペランドに指定した日時以降に応答電文を受信した稼働情報が検索対象となります。省略した場合は稼働情報の先頭から検索します。YYYYを省略した場合、コマンド起動時刻の年(西暦)を仮定します。MMDDを省略した場合、コマンド起動時刻の月日を仮定します。-rオプションを指定した場合、本オペランドを無視します。

end_timeとともに指定する場合、オペランド値はend_timeより前の日時を設定してください。

  • YYYY ~ 〈1971~9999〉

  • MM ~ 〈01~12〉

  • DD ~ 〈01~31〉

  • hh ~ 〈00~23〉

  • mm ~ 〈00~59〉

  • ss ~ 〈00~59〉

end_time={ YYYYMMDDhhmmss | MMDDhhmmss | hhmmss }

検索終了日時を指定します。本オペランドに指定した日時より前に応答電文を受信した稼働情報が検索対象となります。20170101000000を指定した場合、検索対象となるのは20161231235959までに応答電文を受信した稼働情報になります。省略した場合は稼働情報の最終まで検索します。YYYYを省略した場合、コマンド起動時刻の年(西暦)を仮定します。MMDDを省略した場合、コマンド起動時刻の月日を仮定します。-rオプションを指定した場合、本オペランドを無視します。

start_timeとともに指定する場合、オペランド値はstart_timeより後の日時を設定してください。

  • YYYY ~ 〈1971~9999〉

  • MM ~ 〈01~12〉

  • DD ~ 〈01~31〉

  • hh ~ 〈00~23〉

  • mm ~ 〈00~59〉

  • ss ~ 〈00~59〉

get_day_num=取得日数 ~ 〈0~1000〉

検索対象開始日付を現在日付から指定値の日数以前とするときに指定します。0を指定したときは、コマンド起動日だけが検索対象となります。start_timeオペランド、もしくはend_timeオペランドのどちらかを指定した場合、または-rオプションを指定した場合、本オペランドを無視します。

制御文ファイルの形式(select文の場合)

集計対象とするデータの検索条件を指定します。指定した各オペランドの論理積条件となります。select文は省略、または64個まで複数指定できます。複数指定した場合、それぞれのselect文同士の論理和条件となります。

複数指定するときは、検索条件が重複しないようにしてください。重複していた場合、検索性能に影響します。

形式を次に示します。

select [ protocol={ tcp | http | iiop | rpc } ]
  [ system_name=システム名 ]
  [ server=IPアドレス[:ポート番号] ]
  [ user_key_1=分析キー情報1 ]
  [ user_key_2=分析キー情報2 ]
  [ prot_inf_1=プロトコル情報1 ]
  [ prot_inf_2=プロトコル情報2 ]
  ;

オペランドを次に示します。

protocol={ tcp | http | iiop | rpc }

検索対象のプロトコル種別を指定します。次の値のどれかを指定します。本オペランドを省略すると、すべてのプロトコル種別が検索対象となります。

  • tcp:TCPプロトコル

  • http:HTTPプロトコル

  • iiop:IIOPプロトコル

  • rpc:RPCプロトコル

system_name=システム名 ~ 〈1~31文字の英数字〉

検索対象のシステム名を指定します。本オペランドを省略すると、すべてのシステム名が検索対象となります。

server= IPアドレス[:ポート番号] ~ 〈IPアドレス nnn.nnn.nnn.nnn、ポート番号 1~65535〉

検索対象のサーバ(クライアントの接続先)のIPアドレスとポート番号を指定します。IPアドレス、またはIPアドレスとポート番号で指定します。本オペランドを省略すると、すべてのサーバが検索対象となります。

user_key_1=分析キー情報1 ~〈1~32バイトの文字列〉

検索対象の分析キー情報1を指定します。分析キー情報1は稼働情報編集UOCで指定した値です。本オペランドを省略すると、すべての分析キー情報1が検索対象となります。

user_key_2=分析キー情報2 ~〈1~32バイトの文字列〉

検索対象の分析キー情報2を指定します。分析キー情報2は稼働情報編集UOCで指定した値です。本オペランドを省略すると、すべての分析キー情報2が検索対象となります。

prot_inf_1=プロトコル情報1 ~〈1~63バイトの文字列〉

検索対象のプロトコル情報1を指定します。protocolオペランドにiiopを指定した場合はオペレーション名を、protocolオペランドにrpcを指定したときはサービスグループ名を指定することで検索条件を絞ることができます。本オペランドを省略すると、すべてのプロトコル情報1が検索対象となります。

prot_inf_2=プロトコル情報2 ~〈1~63バイトの文字列〉

検索対象のプロトコル情報2を指定します。protocolオペランドにrpcを指定したときはサービス名を指定することで検索条件を絞ることができます。本オペランドを省略すると、すべてのプロトコル情報2が検索対象となります。

制御文ファイルの形式(analyze文の場合)

分析情報を集計する単位を指定します。省略できます。複数指定できません。各オペランドは任意の順番で指定できます。

形式を次に示します。

analyze [ time_interval={ s | m | h | d }[間隔] ]
  [ response_interval=境界値[,境界値…]]
  [ unit=集計単位[,集計単位] ]
  ;

オペランドを次に示します。

time_interval={ s | m | h | d }[ 間隔 ]

応答電文の受信時刻を基に、稼働情報を一定時間ごとに集計し出力する場合に指定します。range文を指定した場合は、range文で指定した範囲で一定時間ごとに集計して出力します。省略すると、稼働情報全体で集計して出力します。このオペランドを指定すると、分析情報の各行に日時を出力します。コマンドの-rオプションを指定した場合、本オペランドを指定しなければなりません。

  • s[SS]:SS秒間隔で出力します。SSは10、20、30を指定できます。SSを省略すると30を仮定します。10秒間隔とする場合は、「s10」と指定してください。

  • m[MM]:MM分間隔で出力します。MMは1~30を指定できます。MMを省略すると1を仮定します。10分間隔とする場合は、「m10」と指定してください。

  • h[HH]:HH時間隔で出力します。HHは1~24を指定できます。HHを省略すると1を仮定します。2時間間隔とする場合は、「h2」と指定してください。

  • d[D]:D日間隔で出力します。Dは1~7を指定できます。Dを省略すると1を仮定します。7日間隔とする場合は、「d7」と指定してください。

response_interval=境界値[,境界値…] ~〈1~3600000〉(単位:ミリ秒)

稼働情報を応答時間の範囲ごとに集計し出力する場合に指定します。境界値は昇順に32個まで指定できます。本オペランドを省略すると応答時間ごとの集計は行いません。例えば、100,500,1000と指定した場合、0秒以上100ミリ秒未満、100ミリ秒以上500ミリ秒未満、500ミリ秒以上1000ミリ秒未満、1000ミリ秒以上それぞれの範囲のデータを集計します。

このオペランドを指定すると、分析情報の各行に応答時間の範囲の値と単位を出力します。

unit=集計単位[,集計単位]

次の項目単位に集計するときに指定します。コンマ区切りで2つまで指定できます。ただしresponse_intervalオペランドを指定した場合は、1つしか指定できません。

複数指定した場合は指定した各項目の値ごとに集計します。例えば、システム名とサーバを指定した場合、(システム名×サーバ)の組み合わせごとに応答時間やトランザクション件数を出力します。

  • protocol:プロトコル種別

  • system_name:システム名

  • client:クライアントのIPアドレスとポート番号

  • client_ip:クライアントのIPアドレス

  • server:サーバのIPアドレスとポート番号(クライアント接続先のIPアドレスとポート番号)

  • server_ip:サーバのIPアドレス(クライアント接続先のIPアドレス)

  • user_key_1:稼働情報編集UOCで設定した分析キー情報1

  • user_key_2:稼働情報編集UOCで設定した分析キー情報2

  • prot_inf_1:プロトコル情報1

  • prot_inf_2:プロトコル情報2

出力形式

出力形式を次に示します。コンマ区切り、ダブルクォーテーションで囲んだ形式です。

"*** Operation information Version(aa-aa-aa) ***"  ファイルヘッダ行
"input statement:bb…bb"                           ファイルヘッダ行
"output statement:cc…cc"                          ファイルヘッダ行
"range statement:dd…dd"                           ファイルヘッダ行
"select statement:ee…ee"                          ファイルヘッダ行
  :                                                ファイルヘッダ行
  :                                                ファイルヘッダ行
"analyze statement:ff…ff"                         ファイルヘッダ行

"*** Operation information ***"                    集計データタイトル行
"gg…gg","gg…gg", …… ,"gg…gg"                  集計データ行
"hh…hh","hh…hh", …… ,"hh…hh"                  集計データ行
  :                                                集計データ行
  :                                                集計データ行

aa-aa-aa:当該コマンドを実行したシステム分析支援アダプタのバージョン

bb…bb:制御文ファイルのinput文に指定したオペランドの内容※1

cc…cc:制御文ファイルのoutput文に指定したオペランドの内容※1

dd…dd:制御文ファイルのrange文に指定したオペランドの内容※1※2

ee…ee:制御文ファイルのselect文に指定したオペランドの内容※1※2

ff…ff:制御文ファイルのanalyze文に指定したオペランドの内容※1※2

gg…gg:集計データ行に出力する各データのタイトル

hh…hh:集計データ

注※1:制御文ファイルに余分なスペース、コメントなどを除去し1行で出力します

注※2:該当する文を記述しなかった場合は出力しません

ファイルヘッダ行

コマンド実行時の情報です。制御文ファイルoutput文file_headerオペランドにyを指定した時だけ出力します。

集計データタイトル行

集計データのタイトル行です。集計データ行に出力するデータにあわせて次の表に示す文字列を出力します。制御文ファイルoutput文data_titleオペランドを省略するか、yを指定した時だけ出力します。

表8‒3 集計データタイトル行に出力する文字列

出力内容

説明

date and time

集計時間帯の先頭日時

response lower limit

集計応答時間範囲の下限

response upper limit

集計応答時間範囲の上限

protocol

プロトコル種別

system_name

システム名

client_ip

クライアントのIPアドレス

client_port

クライアントのポート番号

server_ip

サーバのIPアドレス

server_port

サーバのポート番号

user_key_1

分析キー情報1

user_key_2

分析キー情報2

prot_inf_1

プロトコル情報1

prot_inf_2

プロトコル情報2

response average

応答時間の平均値

response maximum

応答時間の最大値

response minimum

応答時間の最小値

transaction all

全トランザクション件数

transaction normal

正常終了したトランザクション件数

transaction protocol error

プロトコルレベルでエラーリターンしたトランザクション件数

transaction time-out

タイムアウトしたトランザクション件数

transaction threshold

閾値超過したトランザクション件数

transaction user error

稼働情報編集UOCの指示でエラーリターンしたトランザクション件数

集計データ行

集計データを、制御文ファイルで指定した単位で1行として出力します。出力条件を満たしたデータを下表の項番順に出力します。項番4の各項目については、unitオペランドで指定した順番となります。項番4の各項目について対象となる情報がないときは、「-」を出力します。

表8‒4 集計データ行に出力する内容

項番

出力内容

出力条件

出力形式

1

集計時間帯の先頭日時

analyze文time_intervalオペランドを指定

YYYY-MM-DD hh:mm:ss形式

2

集計応答時間範囲の下限

analyze文response_intervalオペランドを指定

0~3600000(ミリ秒)

3

集計応答時間範囲の上限

1~65535000(ミリ秒)

4

プロトコル種別

analyze文unitオペランドで当該項目を指定

TCP :TCPプロトコル

HTTP :HTTPプロトコル

IIOP :IIOPプロトコル

RPC :RPCプロトコル

システム名

1~31字以内の英数字

クライアントのIPアドレス

nnn.nnn.nnn.nnn(nnn:0~255)

クライアントのポート番号

1~65535

サーバのIPアドレス

nnn.nnn.nnn.nnn (nnn:0~255)

サーバのポート番号

1~65535

分析キー情報1

稼働情報編集UOCで設定した分析キー情報1

分析キー情報2

稼働情報編集UOCで設定した分析キー情報2

プロトコル情報1

IIOPプロトコルの場合:オペレーション名

RPCプロトコルの場合:サービスグループ名

上記以外の場合:プロトコル個別情報

プロトコル情報2

RPCプロトコルの場合:サービス名

上記以外の場合:プロトコル個別情報

5

応答時間の平均値

output文targetオペランドにresponseを指定

ミリ秒単位、小数点以下第三位までの数値

6

応答時間の最大値

7

応答時間の最小値

8

全トランザクション件数

output文targetオペランドにtransactionを指定

0~9223372036854775807

9

正常終了したトランザクション件数

10

プロトコルレベルでエラーリターンしたトランザクション件数

11

タイムアウトしたトランザクション件数

12

閾値超過したトランザクション件数

13

稼働情報編集UOCの指示でエラーリターンしたトランザクション件数

制御文ファイルと出力例

例1:応答時間ごとにトランザクション件数を出力する場合

制御文ファイル

# コメント
input adapter_id=ADAPTER                         # コメント
      save_directory=d:\taihi;

output file=c:\Users\Guest\Documents\output.txt  # コメント
       target=transaction;

analyze response_interval=1000,10000

出力結果

"response lower limit","response upper limit","transaction all","transaction normal",……
"0","1000","30","30","0","0","0","0"
"1000","10000","3","3,"0","0","0","0"
"10000","65535000","0","0","0","0","0"
例2:30秒ごとに応答時間を出力する場合

00:01:30~00:02:00の時間帯は対象となるデータが0件のため、0を出力します。

制御文ファイル

input adapter_id=ADAPTER; 

output file=c:\Users\Guest\Documents\output.txt
       target=response;

analyze time_interval=s30;

出力結果

"date and time","response average","response maximum","response minimum"
"2017-01-01 00:00:00","123.456","987.654","0.999"
"2017-01-01 00:00:30","123.456","987.654","0.999"
"2017-01-01 00:01:00","123.456","987.654","0.999"
"2017-01-01 00:01:30","0","0","0"
"2017-01-01 00:02:00","123.456","987.654","0.999"
  :
  :
  :
例3:1分間隔でサーバごとに応答時間を出力する場合

サーバは3つあり、それぞれIPアドレスが1.1.1.1、2.2.2.2、3.3.3.3とします。

00:01:00~00:02:00の間は、IPアドレス2.2.2.2のデータがないため、1.1.1.1と3.3.3.3の行だけ出力します(データがあるIPアドレスの情報だけを出力)。

00:02:00~00:03:00の間はすべてのサーバについてのデータがないため、"server_ip"と"server_port"には"-"を出力します(データがないときは、unitオペランドに指定した項目は「-」を出力)。

制御文ファイル

input adapter_id=ADAPTER; 

output file=c:\Users\Guest\Documents\output.txt
       target=response;

analyze time_interval=m1 unit=server;

出力結果

"date and time","server_ip","server_port","response average","response maximum","response minimum"
"2017-01-01 00:00:00","1.1.1.1","1","123.456","987.654","0.999"
"2017-01-01 00:00:00","2.2.2.2","2","123.456","987.654","0.999"
"2017-01-01 00:00:00","3.3.3.3","3","123.456","987.654","0.999"
"2017-01-01 00:01:00","1.1.1.1","1","123.456","987.654","0.999"
"2017-01-01 00:01:00","3.3.3.3","3","123.456","987.654","0.999"
"2017-01-01 00:02:00",“-",“-","0","0","0"
"2017-01-01 00:03:00","3.3.3.3","3","123.456","987.654","0.999"
"2017-01-01 00:04:00","1.1.1.1","1","123.456","987.654","0.999"
"2017-01-01 00:04:00","2.2.2.2","2","123.456","987.654","0.999"
"2017-01-01 00:04:00","3.3.3.3","3","123.456","987.654","0.999"
  :
  :
  :
例4:システム名ごとに応答時間を出力する場合

制御文ファイル

input adapter_id=ADAPTER; 

output file=c:\Users\Guest\Documents\output.txt
       target=response;

analyze unit=system_name;

出力結果

"system_name","response average","response maximum","response minimum"
"SYSTEM1","123456","987654","999"
"SYSTEM2","123456","987654","999"
"SYSTEM3","123456","987654","999"

メッセージ

メッセージID

内容

出力先

KFSE95088-E

コマンド引数が不正です

標準エラー出力

KFSE95090-E

コマンドの形式が不正です。

標準エラー出力

KFSE95091-E

フラグ引数が不正です。

標準エラー出力

KFSE90920-I

ヘルプ表示

標準出力

KFSE90921-Q

上書き確認

標準出力

KFSE90922-E

制御文ファイルのアクセスエラー

標準エラー出力

KFSE90923-E

メモリ不足

標準エラー出力

KFSE90924-E

制御文の形式不正

標準エラー出力

KFSE90925-E

制御文の内容不正

標準エラー出力

KFSE90926-E

オペランド値不正

標準エラー出力

KFSE90927-E

内部矛盾

標準エラー出力

KFSE90928-E

コマンド処理で障害発生

標準エラー出力