JBento2の実行には、driver.shを使用します。
sh driver.sh JBento-TestRepo
driver.shは測定用ディレクトリの作成、設定ファイルの書き換え、テストの実行を 行います。
スクリプトはworkディレクトリを作成し、その下にloop.confで指定した パラメータ毎のディレクトリを作成します。
APNUMS="1 2" CLIENT="10 20"の場合、以下のようなディレクトリ構造になります。
APNUMS_1/CLIENT_10 APNUMS_1/CLIENT_20 APNUMS_2/CLIENT_10 APNUMS_2/CLIENT_20
スクリプトはJBento-TestRepo内のファイルをworkディレクトリ配下にコピーし、 sedによるパラメータ書き換えを実施します。 前の例だと、%APNUMS%と書かれた箇所に 1 または 2 が、 %CLIENT%と書かれた箇所に 10 または 20が置き換わります。
スクリプトはworkディレクトリの最下層の一つに移動し、run.shを実行します。 一つの測定が終わると、次のディレクトリに移動し、設定した繰り返しが終了 するまで、テストを実行します。
以下のクラスがあります。
JMeterのログ、JBento独自ログを解析し、スループット、応答時間を集計し、 csvファイルに出力します。
usage: AnalyzerCli [-D ramp-down seconds] [-d dest dir] [-U ramp-up seconds] [-h] [-R duration seconds] [-p parser name] [-f source file] -D,--ramp-down <ramp-down seconds> seconds to ignore ramp-down. -U,--ramp-up <ramp-up seconds> seconds to ignore ramp-up. -R,--duration <duration seconds> seconds to duration. -d,--dest <dest dir> dest directory. -f,--source <source file> source file. -h,--help display help -p,--parser <parser name> parser name. available value is 'jbento'.
startTime,responseTime,requestType,responseCode,clientId
クラスパス上にjp.osdl.zibento2.analyzer.csv.propertiesファイルを置いて以下のように指定すれば、 カラムの場所は変更することもできます。
startTime=0 responseTime=1 requestType=2 responseCode=3 clientId=4
sarのログファイルを解析し、csvファイルに変換します。 また、平均を計算します。
usage: SarAllCli [-s source dir] [-d dest dir] [-k skip time[s]] [-t term time[s]] -d,--dest <dest dir> destination directory. -k,--skip <skip time[s]> skip seconds after starting measurement. -s,--source <source dir> source directory. -t,--term <term time[s]> seconds of term for analyzing.
--skip 30 --term 120 と指定した場合、ログ開始時間から30秒?150秒の範囲を解析範囲とします。
スループット、応答時間のcsvファイルを集めて、一つのcsvファイルにします。
usage: MultiResultCollectorCli [-s source dir] [-d dest dir] -d,--dest <dest dir> destination directory. -s,--sourcedir <source dir> source directory.
設定ファイルを使用して、jp.osdl.jbento2.analyzer.MultiResultCollectorCli を一括呼び出しします。
usage: MultiResultCollectorAllCli [-s source dir] [-f config file] -f,--conf <config file> config file -s,--source <source dir> source directory.
設定ファイルを使用して、複数のsarの平均ファイルを一つのcsvファイルにします。
usage: MultiResultCollectorAllCli [-s source dir] [-f config file] -f,--conf <config file> config file -s,--source <source dir> source directory.
"-XX:+PrintGCDetails -XX:+PrintGCTimeStamps" オプションを付けたGCのログを解析し、csvファイルを出力します。
usage: GCAnalyzerCli [-s start time] [-d dest file] [-h] [-f source file] -d,--dest <dest file> dest file. -f,--source <source file> source file. -h,--help display help -k,--skip <skip time> skip time[sec] -m,--mean <mean time> mean time[sec] -s,--start <start time> start time[HH:mm:ss]
指定したディレクトリ内を再帰的に辿り、".*\.gc\.log"という名前のログファイルに対し、csvファイルを出力します。 解析できるのは"-XX:+PrintGCDetails -XX:+PrintGCTimeStamps" オプションを付けたGCのログです。
usage: GCAllCli [-s source dir] [-d dest dir] [-k skip time] [-m mean time] [-t start time] -d,--dest <dest dir> destination directory. -h,--help display help -k,--skip <skip time> skip time[sec] -m,--mean <mean time> mean time[sec] -s,--source <source dir> source directory. -t,--start <start time> start time[HH:mm:ss]
csvファイルからグラフを生成します。
usage: ChartCli [-X x Max] -s source file [-i title] [-d dest file] -b dataset builder [--renew] [-Y y Max] [-c categories] -t chart type [-e end of data] [-p dest file postfix] [--xLabel x Label] [--width width] [--height height] [--yLabel y Label] [--noshape] -X,--xMax <x Max> max number of x-axis. -Y,--yMax <y Max> max number of y-axis. --renew renew chart -b,--builder <dataset builder> dataset builder name -c,--categories <categories> categories of graph -d,--dest <dest file> dest file. -e,--eod <end of data> string about end of data in csv file -i,--title <title> title. -p,--postfix <dest file postfix> dest file postfix. -s,--source <source file> source file. -t,--type <chart type> chart type
item, category1, category2, category3 a, 50, 60, 70 b, 30, 60, 90
というようなcsvファイルがあった場合、category1-3をX軸に、a,bを線の種類に、30-90をY軸に取るようなグラフを生成できます。
x, y1, y2 10, 30, 40 20, 50, 60
というようなcsvファイルがあった場合、10,20をX軸に、30-60をY軸に、y1, y2を線の種類に取るようなグラフを生成できます。
X軸に時間を取るようなグラフの場合、xydateを指定します。
Y軸に取るカラムは、--categoriesオプションで指定できます。
time, y1, y2 10:00:00, 30, 40 10:00:01, 50, 60
というようなcsvファイルがあった場合、10:00:00-10:00:01をX軸に、30-60をY軸に、y1, y2を線の種類に取るようなグラフを生成できます。
設定ファイルを使用して、jp.osdl.jbento2.chart.ChartCliを一括呼び出しします。
usage: ChartAllCli [-s source dir] [-r] [-f config file] -f,--conf <config file> config file -r,--renew renew charts -s,--source <source dir> source directory.
設定ファイルの例は、scripts/graphs.confを参考にしてください。
生成されたグラフを見やすく配置した、HTMLファイルを出力します。
usage: ReportCli [-s summary dir] [-d dest dir] [-h] [-l logs dir] -d,--destdir <dest dir> dest dir. -h,--help display help -l,--logsdir <logs dir> logs dir. -s,--summarydir <summary dir> summary dir.