このグラフを取得するにはどうすればよいですか。
(から StackExchangeの高速化 )
これは、Web要求の何パーセントがN秒より長くかかったかを示します。 IISログとLogParserをインストールしましたが、続行する方法がわかりません。
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の範囲にあるとしましょう。
D1セルに「時間」を入力します。 E1セルに「パーセント」を入力します。ステップ0.1で0から5までのシリーズでD列に時間を入力します。
ステップ4次の数式をE2セルに入力します(401を自分の値に置き換える必要があります)。
=SUMIF($A$2:$A$401,">="&D2*1000,$B$2:$B$401)/SUM($B$2:$B$401)
対応する時間値を持つE列のすべてのセルに数式をコピーします。 Ctrl + Shift +%を押して、スタイルをパーセントに設定します
ステップ5最後に、D列とC列のデータに基づいて折れ線グラフを作成します。
ロードバランサーによって生成されたログを使用してそのグラフを生成する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[
のカットオフ範囲としてプロットします。