※ Web ログ解析

2002/09/16 Nishimura Hiromi

 Web に残るページアクセスのログ解析を行う。find$ に検索文字列を代入すると一日毎のアクセス件数のヒストグラムがグラフで表示される。このプログラムでは textFile_ 関数を使っている。たぶん Perl を使うともっと高速に年月日時分秒のデータを作る事ができると思う(どうも正規表現が苦手で!!!)。

find$ = "files";		~ 検索文字列
f$ = "tmp.txt";		~ 一時使用ファイル名
a$ = "grep "+find$+" /private/var/log/httpd/access_log > "+f$;
system(a$);		~ システム関数でコマンドを実行
textFile_GetNthItem(f$,4);	~ 4番目がアクセスした年月日時分秒
~ 余計な文字列を取り除き数値だけで年月日時分秒にする
textFile_ExchangeItem(f$,"[","");
textFile_ExchangeItem(f$,"Jul","07");
textFile_ExchangeItem(f$,"Aug","08");
textFile_ExchangeItem(f$,"Sep","09");
textFile_ExchangeItem(f$,"/"," ");
textFile_ExchangeItem(f$,":"," ");
textFile_GetNthItem(f$,|3,2,1,4,5,6|); 
a = load(f$);		~ 変数 a に年月日時分秒を代入
t = jst2mjd(a) - jst2mjd(|2002,7,18|);
tx = jst2mjd(dateTime(3)) - jst2mjd(|2002,7,18|);
tx = int(tx[1,1]);
f = frequency(t[#,1],|tx,0,tx+1|);
parametricPlot(f[#,1],f[#,2]);
msize(a);
			

1923.0000
.OK.

 これは 2002/07/18 から 2002/09/16 までの CalendarMemo ダウンロード数の一日毎のヒストグラムである。二回ほどピークがあるが、これは CalendarMemo 公開日である。ダウンロード総数は変数 a の行数となる。この記録では総ダウンロード数は 1923 件であった。

 以上のように Web のログ解析がを CalendarMemo から実行する事ができる。上記プログラム部分をエディタ部に copy & paste し必要ヶ所を編集し試してみて下さい。

● 仕事では

 仕事ではバイタルサイン(心拍数、血圧、体温、その他の時系列データ)をモニターする医療機器は RS-232C の通信でデータをコンピュータに転送する事ができる。このモニター結果を上記のようなプログラムで作図していた。最近の医療機器は高度になってきている。必要なグラフは上記のような面倒な操作をしなくても手に入れる事ができる。でも研究発表用にはまだ利用価値があると思う。