2

首先我要说的是,即使在设置了一个系统之后,我注册了每分钟的 http 响应总数(200、301、302 等),并且我能够知道关于用户的性能如何,它碰巧我说我的老板让我很生气,因为我认为它与 rrd 内部结构有关,但我必须解决这个问题。

我用 rrdtool 做什么?:

一分钟(60 秒)总结不同的 http 响应后,我将带有时间戳的值插入 rrd 数据库。

这是 rrd 文件定义:

/usr/bin/rrdtool create file.rrd --start $_[7]-60 --step 60 DS:200:GAUGE:120:U:U DS:300:GAUGE:120:U:U DS:400:GAUGE:120:U:U DS:404:GAUGE:120:U:U DS:500:GAUGE:120:U:U DS:502:GAUGE:120:U:U DS:504:GAUGE:120:U:U RRA:AVERAGE:0.5:1:43200

正如您在 RRA 中看到的,我节省了 43200,这意味着两周节省了 60 秒的值。

绘制时出现的问题,这是我用来绘制过去 6 小时图形的命令(其中 $start 是开始时间,$time 是结束时间,$rrd 是 rrd 文件)

{ /usr/bin/rrdtool graph last6hours.png --units=si --alt-y-grid --start $start --end $time -o -S 60 --width 600 --height 200 --imgformat PNG DEF:200=$rrd:200:AVERAGE LINE1:200#006666:"200" DEF:300=$rrd:300:AVERAGE LINE1:300#FF00CC:\"301+302\" DEF:400=$rrd:400:AVERAGE LINE1:400#000000:\"400\" DEF:404=$rrd:404:AVERAGE LINE1:404#6666CC:\"404\" DEF:500=$rrd:500:AVERAGE LINE1:500#00FF66:\"500\" DEF:502=$rrd:502:AVERAGE LINE1:502#FF0000:\"502\" DEF:504=$rrd:504:AVERAGE LINE1:504#FF9900:\"504\";}

这是我用来画最后 12 小时的:

{ /usr/bin/rrdtool graph last12hours.png --units=si --alt-y-grid --start $start --end $time -o -S 60 --width 600 --height 200 --imgformat PNG DEF:200=$rrd:200:AVERAGE LINE1:200#006666:"200" DEF:300=$rrd:300:AVERAGE LINE1:300#FF00CC:\"301+302\" DEF:400=$rrd:400:AVERAGE LINE1:400#000000:\"400\" DEF:404=$rrd:404:AVERAGE LINE1:404#6666CC:\"404\" DEF:500=$rrd:500:AVERAGE LINE1:500#00FF66:\"500\" DEF:502=$rrd:502:AVERAGE LINE1:502#FF0000:\"502\" DEF:504=$rrd:504:AVERAGE LINE1:504#FF9900:\"504\";}

现在请查看抽签结果,在红色圆圈内的第一张图中,响应 200 下降到 0,但在过去 12 小时的图中,同样的下降直到 0,所以我的老板逼我说数据不是真实的,但最糟糕的是,如果我知道这是真实的并且是关于 rrdtool 内部的,但我不知道如何解决它。

请问有什么主旨吗?

最后六个小时

最后十二小时

4

1 回答 1

2

这种变化是由于 rrdtool 正在整合数据,使其适应您正在绘制的图表的分辨率。您的初始图表显示了高分辨率数据,而第二张图表涵盖了更广泛的时间范围,因此将多个数据点包裹在一个图表中。考虑以下:

原版:10,10,10,0,10,10

合并 2 比 1:10,5,10

如果您想保留极值,您应该设置一个 MIN 和 MAX RRA 并将其用于绘制极值图。

托比

于 2011-11-01T15:59:21.653 回答