每10秒写一个数据,但读出来的 却和写进去的不一样,求解建立的库如下:./bin/rrdtool create data/test.rrd --start 1365756520 --step 10 DS:myds:GAUGE:100:0:U RRA:LAST:0.5:1:100000
写数据
./bin/rrdtool updatev data/test.rrd -t myds N:1028
读数据
./bin/rrdtool fetch data/test.rrd LAST -s 1365756520 //返回 [1365766390]RRA[AVERAGE][1]DS[myds] = 1.0256558852e+03这是什么情况,好像被求平均值了??
写数据
./bin/rrdtool updatev data/test.rrd -t myds N:1028
读数据
./bin/rrdtool fetch data/test.rrd LAST -s 1365756520 //返回 [1365766390]RRA[AVERAGE][1]DS[myds] = 1.0256558852e+03这是什么情况,好像被求平均值了??
解决方案 »
- 我的oop错在哪里?是静态变量的问题吗?
- 从编码为utf8的api服务器中获取数据,但是本地页面用gb2312的。如何转码。
- html向php提交表单的问题 (不能写入数据库)
- 想登陆到phpmyadmin,打了地址后出现登陆界面要输入密码。我不知道密码?
- PHP定义对象函数问题
- 如何下载HTTP文件到本地路径
- 解决问题就接贴
- (急)为什么while($row=mysql_fetch_array($result)){$name=$row["name"]},这样的代码,查询出来的结果都是重复的。
- 高分求教:怎么自己写session
- 我想把数据库中只要是某一字段相同的数据都删除,只保留一个,要怎么写呢
- 诡异,这句PHP看起来都对,可是无法得到正确结果。
- 新手发个php修改XML的问题!!
AVERAGE 平均你要的不就是这个吗?
[root@localhost shm]# /usr/local/rrdtool/bin/rrdtool updatev test.rrd -t myds N:1028
return_value = 0
[1365991710]RRA[LAST][1]DS[myds] = 1.0280000000e+03
[root@localhost shm]# /usr/local/rrdtool/bin/rrdtool fetch test.rrd LAST | grep -v nan
myds1365991710: 1.0280000000e+03
[root@localhost shm]# /usr/local/rrdtool/bin/rrdtool -V
RRDtool 1.4.7 Copyright 1997-2012 by Tobias Oetiker <[email protected]>
Compiled Jul 5 2012 15:34:45
我这里测试……没出现这个问题诶……
[root@localhost shm]# /usr/local/rrdtool/bin/rrdtool create test.rrd --step 10 DS:myds:GAUGE:100:0:U RRA:LAST:0.5:1:100000
[root@localhost shm]# /usr/local/rrdtool/bin/rrdtool info test.rrd
filename = "test.rrd"
rrd_version = "0003"
step = 10
last_update = 1365991934
header_size = 584
ds[myds].index = 0
ds[myds].type = "GAUGE"
ds[myds].minimal_heartbeat = 100
ds[myds].min = 0.0000000000e+00
ds[myds].max = NaN
ds[myds].last_ds = "U"
ds[myds].value = 0.0000000000e+00
ds[myds].unknown_sec = 4
rra[0].cf = "LAST"
rra[0].rows = 100000
rra[0].cur_row = 82401
rra[0].pdp_per_row = 1
rra[0].xff = 5.0000000000e-01
rra[0].cdp_prep[0].value = NaN
rra[0].cdp_prep[0].unknown_datapoints = 0
另外,有一种情况,关于历史数据会被如何处理,这个要测试下看看……不过我觉得按你的create应该也不会有合并平均的情况才对。
return_value = 0
[1366011870]RRA[LAST][1]DS[myds] = 1.0011771028e+03
[1366011890]RRA[LAST][1]DS[myds] = 1.0011771028e+03
[root@localhost rrdtool]# 更郁闷的是,为啥返回两行 ,两个时间截?
把这个输出结果给我们看一下另外需要注意一下heartbeat DS:myds:GAUGE:100:0:U 和你的step,必要的话,定期update 0进去试试看这个耐心读读很有帮助
http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html
./bin/rrdtool create data/test.rrd --start 1365768603 --step 10 DS:myds:GAUGE:100:0:U RRA:LAST:0.5:1:100000
./bin/rrdtool updatev data/test.rrd -t myds N:1028
./bin/rrdtool updatev data/test.rrd -t myds N:102
[root@localhost rrdtool]# ./bin/rrdtool updatev data/test.rrd -t myds N:76
return_value = 0
[1366095920]RRA[LAST][1]DS[myds] = 7.3762737333e+01
[1366095940]RRA[LAST][1]DS[myds] = 7.3762737333e+01
------以下为info内容----
[root@localhost rrdtool]# ./bin/rrdtool info data/test.rrd
filename = "data/test.rrd"
rrd_version = "0003"
step = 10
last_update = 1366095930
header_size = 584
ds[myds].index = 0
ds[myds].type = "GAUGE"
ds[myds].minimal_heartbeat = 100
ds[myds].min = 0.0000000000e+00
ds[myds].max = NaN
ds[myds].last_ds = "76"
ds[myds].value = 5.9394532000e+01
ds[myds].unknown_sec = 0
rra[0].cf = "LAST"
rra[0].rows = 100000
rra[0].cur_row = 79575
rra[0].pdp_per_row = 1
rra[0].xff = 5.0000000000e-01
rra[0].cdp_prep[0].value = NaN
rra[0].cdp_prep[0].unknown_datapoints = 0