rrdtool 生成 .xml .png 出现 rrdtool.OperationalError: the RRD does not contain an RRA matching the chosen CF

来源: 老季博客
日期: 2020-6-16
作者: 腾讯云/服务器VPS推荐评测/Vultr
阅读数: 48

公司业务需要,我们要将.rrd文件转化成.xml,修改内容再通过.xml转化成.rrd或者图形。在Ubuntu中转化正常,但是到了Centos下就报错如下:

rrdtool.OperationalError: the RRD does not contain an RRA matching the chosen CF

Ubuntu的rrdtool版本为:1.7.0

Centos的rrdtool版本为:1.4.8

可能是因为版本问题,然后我们写的.xml文件又不规范。python生成.xml的部分代码如下:

tmp_xml_str += '<!-- {} UTC / {} --> <row><v>{}</v><v>{}</v></row>\n        '.format(write_time,tmp_time,traffic_in,traffic_out)
xml_str = '\
<?xml version="1.0" encoding="utf-8"?>\n\
<!DOCTYPE rrd SYSTEM "http://oss.oetiker.ch/rrdtool/rrdtool.dtd">\n\
<!-- Round Robin Database Dump -->\n\
<rrd>\n\
    <version>0003</version>\n\
    <step>300</step> <!-- Seconds -->\n\
    <lastupdate>{}</lastupdate> <!-- {} UTC -->\n\
    <ds><name> traffic_in </name><type> COUNTER </type></ds>\n\
    <ds><name> traffic_out </name><type> COUNTER </type></ds>\n\
    <rra>\n\
        <cf>MAX</cf>\n\
        <pdp_per_row>1</pdp_per_row> <!-- 300 seconds -->\n\
        <database>\n\
            {} \
        </database>\n\
    </rra>\n\
</rrd>'.format(tmp_time,write_time,tmp_xml_str)   

注意:我们此处写的是 <cf>MAX</cf> 。原先我们这里写的是 <cf>AVERAGE</cf> ,但是我们在新的rrd生成图的时候写的又是MAX,可能这里2个参数不一致导致了以上错误。

链接到文章: https://jiloc.com/46799.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注