使用LogParser生成平均响应时间图

我怎样才能得到这个图:

(从加速StackExchange )

它显示了Web请求所花费的时间比N秒多。 我有IIS日志和LogParser安装,但不知道如何继续。

这是你如何使用LogParser和Excel来完成的:

步骤1创build以下查询并将其保存为“Time taken graph.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" 

步骤3在Excel中打开CSV文件。 我将以Excel 2010为例。
假设您的数据位于A1:B401范围内:

初始数据

在D1单元格中放入“时间”。 在E1单元中放入“百分比”。 在D列填充时间,从0到5开始,步骤0.1:

时间序列

第4步将下面的公式放入E2单元格(您将需要用您的值replace401):

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

式

将公式复制到E列中所有具有相应时间值的单元格。 通过按Ctrl + Shift +%将样式设置为百分比

步骤5最后,根据D和C列中的数据构build折线图: 图形

我编写了一个python程序,使用负载平衡器生成的日志生成该图,并使用flot绘制实际的图。

在决定使用该图之前,我经历了几次迭代:

  • 我从散点图(响应时间与一天中的时间)开始,这个散点图本身就是信息量丰富的,对于交通的形状和方差有很好的感觉,即使交通不是特别好。

  • 然后我尝试了一个直方图,由于变化很大,所以没有特别的用处。

  • 最后,我结束了这是基于直方图,但是累积和倒置。

我会发布代码,但它是如此具体到我在做什么,它不会帮助任何人。 所以这里是核心function的近似值:

 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[截止范围[0,1[使用您最喜欢的绘图库。