web-dev-qa-db-ja.com

LogParserを使用して平均応答時間グラフを生成する

このグラフを取得するにはどうすればよいですか。

(から StackExchangeの高速化

これは、Web要求の何パーセントがN秒より長くかかったかを示します。 IISログとLogParserをインストールしましたが、続行する方法がわかりません。

5
Pavel Chuchuva

LogParserとExcelでこれを行う方法は次のとおりです。

ステップ1次のクエリを作成し、「Timetakengraph.sql」として保存します。

SELECT QUANTIZE(time-taken, 100) AS t, COUNT(*) as count
INTO 'Time-taken-graph.csv'
FROM u_ex*.log GROUP BY t

ステップ2クエリを実行し、結果をCSVファイルにエクスポートします。

LogParser.exe file:"Time taken graph.sql"

ステップ ExcelでCSVファイルを開きます。例としてExcel2010を使用します。
データがA1:B401の範囲にあるとしましょう。

Initial data

D1セルに「時間」を入力します。 E1セルに「パーセント」を入力します。ステップ0.1で0から5までのシリーズでD列に時間を入力します。

time series

ステップ4次の数式をE2セルに入力します(401を自分の値に置き換える必要があります)。

=SUMIF($A$2:$A$401,">="&D2*1000,$B$2:$B$401)/SUM($B$2:$B$401)

formula

対応する時間値を持つE列のすべてのセルに数式をコピーします。 Ctrl + Shift +%を押して、スタイルをパーセントに設定します

ステップ5最後に、D列とC列のデータに基づいて折れ線グラフを作成します。 Graph

5
Pavel Chuchuva

ロードバランサーによって生成されたログを使用してそのグラフを生成するpythonプログラムを作成し、実際のグラフを描画するために flot を作成しました。

そのグラフを決定する前に、私は2、3回繰り返しました。

  • 散布図(応答時間と時刻)から始めました。これは、それ自体が有益であり、特にコミュニケーションに適していない場合でも、トラフィックの形状と分散をよく理解するのに役立ちます。

  • 次に、ヒストグラムを試しましたが、分散が大きいため、特に役に立ちませんでした。

  • 最終的に、これはヒストグラムに基づいていますが、累積的で反転しています。

私はコードを投稿しますが、それは私が行っていたことに非常に固有であるため、誰にも役立ちません。したがって、コア関数の概算は次のとおりです。

def point(times, cutoff):
    """
        times: sorted list of response times
        0 <= cutoff < 1
    """

    size = int(len(times) * cutoff)
    return (times[cutoff], 1 - cutoff)

次に、お気に入りのプロットライブラリを使用して、(x, y)座標を[0,1[のカットオフ範囲としてプロットします。

1
Aaron Maenpaa