我使用以下配置创建 rrd:
rrdtool create cpu.rrd --start N --step=1\
DS:user:GAUGE:2:0:100 \
DS:system:GAUGE:2:0:100 \
DS:nice:GAUGE:2:0:100 \
DS:idle:GAUGE:2:0:100 \
RRA:LAST:0.9:1:28800
并使用此循环进行更新(这是我的测试数据输入的示例):
I=1; while true; do rrdtool update cpu.rrd -t user:system:nice:idle N:10:10:11:$I; (( I++ )); sleep 1; done
之后我转储 xml 文件:
<!-- 2016-01-18 13:36:52 IRST / 1453111612 --> <row><v>1.0000000000e+01</v><v>1.0000000000e+01</v><v>1.1000000000e+01</v><v>1.3740088000e+01</v></row>
<!-- 2016-01-18 13:36:53 IRST / 1453111613 --> <row><v>1.0000000000e+01</v><v>1.0000000000e+01</v><v>1.1000000000e+01</v><v>1.4716793000e+01</v></row>
<!-- 2016-01-18 13:36:54 IRST / 1453111614 --> <row><v>1.0000000000e+01</v><v>1.0000000000e+01</v><v>1.1000000000e+01</v><v>**1.5693714000e+01**</v></row>
<!-- 2016-01-18 13:36:55 IRST / 1453111615 --> <row><v>1.0000000000e+01</v><v>1.0000000000e+01</v><v>1.1000000000e+01</v><v>**1.6669438000e+01**</v></row>
</database>
第四列必须是 16 17 18 等等。为什么这些值不一样?
答案1
是的,这是因为您在任意时间点添加日期。虽然您已设置 rrdtool 以 1 秒为间隔定期存储数据...
使用“N:”更新数据会记录执行更新的精确时间(精度为 1/1000 秒),并将给定的数据重新采样为所需的精确 1 秒间隔,与 GMT 时间对齐。