最初に、IISのログを分析し、アクセスの多い上位10個の動的ページ(.aspx)の参照数をグラフ表示する例を紹介した。この例では、Log Parserのコマンドライン・オプションで出力形式としてチャートを指定し(-o:chart オプション)、チャートのオプションとして3Dグラフを指定して(-chartType:Column3Dオプション)グラフを作成した。
自分が見るだけなら多少不親切でも大して問題はないが、例えば分析結果を第三者に見せたりする場合には、チャートの見せ方をカスタマイズして、あれこれ工夫したいだろう。Log Parserでチャート出力形式を選択したときには、構成スクリプトと呼ばれるチャートのカスタマイズ用ファイルを指定することで、チャートを加工できるようになっている。この構成スクリプトの簡単な利用例を紹介しておこう。
ここでは、Program Files以下にある各サブ・フォルダのサイズ(そのフォルダに含まれるファイル・サイズの総計)と、フォルダ内に含まれるファイル数を調査し、フォルダ・サイズが上位5件のフォルダにつき、フォルダ・サイズとファイル数をそれぞれ棒グラフと折れ線グラフで、両者を複合グラフとして重ねて表示する(2軸表示する)スクリプトを作成する。
まず、フォルダ・サイズとファイル数を調査するLog Parserスクリプトは次のとおりである。
-- DiskSpace.txt
Select
Top 5
Folder,
FolderSize,
FileCount
Using
DIV(TO_REAL(Sum(Size)), 1000000) As FolderSize,
Count(Name) As FileCount,
EXTRACT_TOKEN(EXTRACT_PATH(Path), 2, '\\') As Folder
Into
DiskSpace.gif
From
'C:\Program Files\*.*'
Group by Folder
Order by FolderSize
Desc
8行目のDIV(……)では、フォルダ・サイズを表示させる際に、単位をMbytes表示とするために、実数値を1000000で割っている(Kbytes、Gbytes単位にしたければ、母数となる数値を変更する)。
10行目のEXTRACT_TOKEN(……)では、フォルダ名のみを表示させるため、EXTRACT_PATHでファイルパスのフォルダ部分のみを取得し、その後EXTRACT_TOKENでC:\Program Files\ 直下のフォルダ名を取得している。Program Filesの位置が異なる場合には、指定したパスに含まれる \ 記号の数に応じて第2引数を変更する。
チャートの出力形式をカスタマイズするには、これとは別に構成スクリプトを用意する。構成スクリプトは、JScriptまたはVBScript言語で記述されたスクリプト・ファイルである。この構成スクリプトを記述することで、Log Parserからチャート形式で作成されたチャート(図表)をカスタマイズできるわけだ。
この構成スクリプト内では、ChartSpaceオブジェクトとchartオブジェクトという2つのグローバル・オブジェクト(Office Webコンポーネント・モデルのChartSpace オブジェクトのインスタンス)を参照できる。これらのオブジェクトのメソッドやプロパティを操作することで、構成スクリプトによるチャートのカスタマイズが可能になる。以下に具体例を示すが、ChartSpaceオブジェクト・モデルの詳細については、以下のMSDNのページを参照していただきたい。
ここでは、棒グラフと折れ線グラフを重ねて表示するための構成スクリプトをVBScriptで作成し、DiskSpace_Chart.txtという名前でLog Parserのインストールフォルダに保存する。スクリプトは以下のとおりである。
' DiskSpace_Chart.txt
' Constants プロパティの取得
Set objConst = chartSpace.Constants
' 各データの取得 (FolderSize と FileCount)
Set objFolderSize = chart.SeriesCollection(0)
Set objFileCount = chart.SeriesCollection(1)
objFileCount.Type = objConst.chChartTypeColumnClustered
objFileCount.Ungroup True
' グラフタイトル
chartSpace.HasChartSpaceTitle = True
chartSpace.ChartSpaceTitle.Caption = "フォルダサイズとファイル数"
' 左グラフ(FolderSize)
objFolderSize.Caption = "フォルダサイズ(MB)"
objFolderSize.Type = objConst.chChartTypeColumnClustered
' 左グラフ軸(FolderSize)
Set objAxisLeft = chart.Axes(objConst.chAxisPositionLeft)
' 右グラフ(FileCount)
objFileCount.Caption = "ファイル数"
objFileCount.Type = objConst.chChartTypeLine
' 左グラフとの分離
objFileCount.Ungroup True
' 右グラフ軸(FileCount)
Set objAxisRight = chart.Axes.Add(objFileCount.Scalings(objConst.chDimValues))
objAxisRight.Position = objConst.chAxisPositionRight
objAxisRight.HasMajorGridLines = False
構成スクリプトは、Log Parserの実行時、チャート出力形式(-o:chart)のオプションとして指定する。具体的には、次のようにする。
ogParser file:DiskSpace.txt -i:fs -recurse:-1 -stats:on -o:chart -config:DiskSpace_Chart.txt -view:on
すでに説明したとおり、“-i:fs”は入力形式としてファイル/ディレクトリ情報を指定するオプションで、“-recurse:-1”はサブ・フォルダをすべて再帰的に検査するオプションだ。“-stats:on”はLog Parserのグローバル・スイッチで、コマンドの実行完了時に統計情報を表示する指定である。そして“-o:chart”で出力形式としてチャートを指定し、“-config:DiskSpace_Chart.txt”として構成スクリプトを指定している。繰り返しになるが、“-view:on”は、図表イメージの表示を指示するチャート出力形式のオプションである。
Log Parserを実行すると、次のようなグラフが表示される。
Officeグラフ・コンポーネントを使用した複合グラフの作成については、以下のサポート技術情報も参照されたい。
Copyright© Digital Advantage Corp. All Rights Reserved.