基于现有数据库创建新的rrd数据库

时间:2008-10-06 07:59:53

标签: clone reverse-engineering rrdtool rrd

我有一些旧的rrdtool数据库,确切的创建配方早已丢失。我需要创建一个与当前数据库具有相同特征的新数据库。我已经抛弃了几个旧数据库并对内容进行了仔细研究,但我不确定如何解释元数据。我认为它出现在以下节中

<cf> AVERAGE </cf>
<pdp_per_row> 360 </pdp_per_row> <!-- 1800 seconds -->
<xff> 5.0000000000e-01 </xff>

有四个这样的节,这与我回忆起循环级联设置的方式相对应。有没有人已经这样做了,或者可以指点一下如何从现有数据库中克隆一个新的空rrd数据库?或者在文档中向我展示我错过的地方。

3 个答案:

答案 0 :(得分:3)

rrdtools'rrdinfo是你的朋友!

它将告诉您如何创建rrd文件的数据源和存档。实施例

$ rrdtool info random.rrd
filename = "random.rrd"
rrd_version = "0001"
step = 300
last_update = 955892996
ds[a].type = "GAUGE"
ds[a].minimal_heartbeat = 600
ds[a].min = NaN
ds[a].max = NaN
ds[a].last_ds = "UNKN"
ds[a].value = 2.1824421548e+04
ds[a].unknown_sec = 0
ds[b].type = "GAUGE"
ds[b].minimal_heartbeat = 600
ds[b].min = NaN
ds[b].max = NaN
ds[b].last_ds = "UNKN"
ds[b].value = 3.9620838224e+03
ds[b].unknown_sec = 0
rra[0].cf = "AVERAGE"
rra[0].pdp_per_row = 1
rra[0].cdp_prep[0].value = nan
rra[0].cdp_prep[0].unknown_datapoints = 0
rra[0].cdp_prep[1].value = nan
rra[0].cdp_prep[1].unknown_datapoints = 0

答案 1 :(得分:3)

我使用命令rrdcreate。它可以在现有的rrd中创建新的rrd。 -t参数指示现有rrd为模板。

rrdcreate new.rrd -t existing.rrd

答案 2 :(得分:2)

您可以尝试使用所描述的克隆脚本here.这是非常基本的,但它适用于简单的rrd文件。我用它来弄清楚由munin生成的模式。我需要将旧数据插入munin,因此我反向设计了模式,将--start设置为旧数据开始之前的日期,并将数据重新导入rrd。

$ python rrdinfo-parser.py -f test.rrd
rrdtool create test.rrd --start 920804400 --step 300 \
DS:speed:COUNTER:600:U:U \
RRA:AVERAGE:0.5:1:24 \
RRA:AVERAGE:0.5:6:10 \