如何仅计算给定时间平均值
目前,我在 rrdcgi 中使用以下 CDEF 设置来显示白天时间,即上午 7 点到晚上 11 点。是否有任何设置可以仅计算特定时间段的平均值。我需要显示 7 天的图表,因此平均值应该仅是 7 天的时间(上午 7 点到晚上 11 点)。
<h3>7 Day Performance</h3>
<RRD::GRAPH
<RRD::GETVAR PATH>/rrdimg/7dayperformance.png
--title="Performance"
-w 1048 -h 266
--imginfo '<IMG SRC=<RRD::GETVAR PATH>/rrdimg/%s WIDTH=%lu HEIGHT=%lu >'
DEF:p1=<RRD::GETVAR PATH>/data1.rrd:data:AVERAGE
DEF:p2=<RRD::GETVAR PATH>/data2.rrd:data:AVERAGE
CDEF:p=p1,p2,2,AVG
CDEF:gate=p1,POP,LTIME,86400,%,3600,/,FLOOR,DUP,23,LT,*,6,GT,INF,UNKN,IF #for daytime image
--end=midnight
--start=end-7d
AREA:gate#e0e0ff:"Day time"
LINE2:p#ff6666:"performance"
编辑
我计划过滤掉上午 7 点到晚上 11 点的日志,并创建新的 rrd 文件来创建图表。这是一个好方法吗?我不这么认为,因为它还将包含空值。
Curretly I am using below CDEF settings in my rrdcgi to show day time i.e. 7AM to 11 PM. Is there any setting to calculate the average of perticular time period only. I need to show the 7 day graphs so the average should be of 7 day, day time (7AM to 11 PM) only.
<h3>7 Day Performance</h3>
<RRD::GRAPH
<RRD::GETVAR PATH>/rrdimg/7dayperformance.png
--title="Performance"
-w 1048 -h 266
--imginfo '<IMG SRC=<RRD::GETVAR PATH>/rrdimg/%s WIDTH=%lu HEIGHT=%lu >'
DEF:p1=<RRD::GETVAR PATH>/data1.rrd:data:AVERAGE
DEF:p2=<RRD::GETVAR PATH>/data2.rrd:data:AVERAGE
CDEF:p=p1,p2,2,AVG
CDEF:gate=p1,POP,LTIME,86400,%,3600,/,FLOOR,DUP,23,LT,*,6,GT,INF,UNKN,IF #for daytime image
--end=midnight
--start=end-7d
AREA:gate#e0e0ff:"Day time"
LINE2:p#ff6666:"performance"
EDIT
I am planning to filter out the logs from 7AM to 11PM and create new rrd files to create graphs. Is this a good approch. I dont think so because it will also include the null values.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当您使用
VDEF
计算平均值时,它将构建有效数据的平均值,因为您已经将非办公时间数据转换为UNKN
,您所拥有的一切待办事项是使用 VDEF,您应该会得到您想要的东西。When you use
VDEF
to calculate an average, it will build the average of the valid data, since you are already turning the non-office hours data toUNKN
, all you have todo is to use VDEF and you should get what you are looking for.这是否是同样的情况,如果我可以在图表中画一条第二条线,其中它在过去 7 天的同一时间范围内取平均值
(所以就像当前星期一中午 12:05 的值是 480 值减去星期日中午 12:05 的 1 天)或 1 天前 86,400 秒)或一周内 604800 秒,然后将所有 7 个数据平均为 1 个主要数据(从技术上讲,可能平均 6 个,因为我们正在尝试了解此时应该是什么),这就像基于历史数据来预测流量价值观。
12:05 太阳值=970
12:05 星期六值=900
12:05
星期五值=990 12:05 星期四值=940
12:05 星期三值=900
12:05 星期二值=940
。
5640/6,12:05 的平均值是 940,在图表中的 12:05 时,它会绘制它
,如果现在是周一,价值 = 480,但它应该是 940,我们的平均流量下降了 51% (不确定我是否需要做该线图,但我可以将其添加进去)
其设置的原因是由于互联网吨位每天随时发生流量水平变化,哈哈。所以说周二 1:05 可能会去
Could this be the same situation where if I could draw a 2nd line in graph where it averages on the same Time frame for the past 7 days
(so like current Monday time of 12:05PM is 480 value minus 1 day of sunday 12:05PM or 86,400 seconds ago for 1 day) or 604800 seconds in a week and then average all 7 into 1 main data (technically maybe average 6 cause we are trying to see what it SHOULD be at this moment) this is like projecting flow based on historical values.
12:05 Sun value=970
12:05 Sat value=900
12:05 Fri value=990
12:05 Thurs value=940
12:05 Wed value=900
12:05 Tues value=940
.
5640/6 and the average at 12:05 is 940 and at the 12:05 in the graph it would draw it
and if its now at monday for Value = 480 but it should be 940 we have a 51% drop or traffic from average (not sure if i need to do that line graph but i can add it in)
Reason why its setup is due to traffic level changes at all times per day due to internet tonnage lol. so say at like 1:05 Tuesday would probally go to