为什么"step"改变吗?



我用这个命令创建了一个RRD

= = =

data_sources = [ 'DS:Pprod:GAUGE:10:0:6000',     
'DS:Pcons:GAUGE:10:0:6000', 
'DS:Pdiff:GAUGE:10:-6000:6000'  
]
rrdtool.create ( rrd_filename,
'--step', '5',                      # one sample every 5 sec
'--start', 'now - 7d',
data_sources,
'RRA:MAX:0.5:1:6307200')            # we keep 1 year

= = =

我正在正确地填充它-

= = =

<!-- 2022-05-19 12:25:45 CEST / 1652955945 --> <row><v>4.291018731e+03</v><v>1.715717220e+03</v><v>2.574301511e+03</v></row>
<!-- 2022-05-19 12:25:50 CEST / 1652955950 --> <row><v>4.286880929e+03</v><v>1.721000000e+03</v><v>2.564880929e+03</v></row>
<!-- 2022-05-19 12:25:55 CEST / 1652955955 --> <row><v>4.286880929e+03</v><v>1.721000000e+03</v><v>2.564880929e+03</v></row>

= = =

现在我要"导出"其中的一些数据:

rrdtool xport -s $epochStart  -e $epochEnd  --step 5 --json  -t   DEF:pot=$ifn:Pprod:MAX XPORT:pot 

= = =

在输出JSON中,我找到了"步骤"已更改:

{ "about": "RRDtool graph JSON output",
"meta": {
"start": 1652738755,
"end": 1652824970,
"step": 215,
"legend": [
""
]
},
"data": [
[ "1652738755",0.000000000e+00 ],
[ "1652738970",0.000000000e+00 ],

= = =

有什么合理的理由吗?

PD。- rrdtool info"说

pi@R4:~/python/pkw/dades $ rrdtool info ./pkw.rrd 
filename = "./pkw.rrd"
rrd_version = "0003"
step = 5

这很可能是由于试图将数据导出到定义的RRA的当前范围之外造成的。

你的RRD只有一个定义的RRA,从(现在-7d)到(6307200x5sec)在未来。

添加到RRD的数据是epoch=1652955945左右的时间;但是您正在尝试导出的时间是在epoch=1652738755左右,在RRA开始之前。

当我试图复制这个时,我创建了一个RRD:

rrdtool create $RRD --step 5 --start 1652955935 
'DS:Pprod:GAUGE:10:0:6000' 'DS:Pcons:GAUGE:10:0:6000' 
'DS:Pdiff:GAUGE:10:-6000:6000' 'RRA:MAX:0.5:1:6307200'

然后添加数据

rrdtool update $RRD 
1652955940:0:10:20 
1652955945:100:200:300 
1652955950:400:500:600 
1652955955:700:800:900 
1652955960:1000:1100:1200

如果我尝试从定义的RRA范围内提取数据,那么它可以工作:

rrdtool xport -s 1652955945 -e 1652956000 --step 5 --json 
-t DEF:pot=${RRD}:Pprod:MAX XPORT:pot
{ "about": "RRDtool graph JSON output",
"meta": {
"start": 1652955950,
"end": 1652956000,
"step": 5,
...

但是,如果我尝试从不在可用数据空间内的范围中提取,RRDTool无法选择有意义的RRA,因此似乎默认为215秒的步骤。

rrdtool xport -s 1652738755 -e 1652824970 --step 5 --json 
-t DEF:pot=${RRD}:Pprod:MAX XPORT:pot
{ "about": "RRDtool graph JSON output",
"meta": {
"start": 1652738970,
"end": 1652824970,
"step": 215,
...

我不知道为什么RRDTool默认为这个步长;然而,记录的行为是RRDTool,当做一个图或导出时,将试图找到最适合的RRA,以覆盖整个请求的数据范围在请求的合并,即使这意味着改变步长。所以,这看起来好像RRDTool已经放弃了寻找一个可行的RRA,并且给了你一个默认的215秒的空数据步骤。

相关内容

  • 没有找到相关文章

最新更新