首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用rrdtool读取rrd文件

如何使用rrdtool读取rrd文件
EN

Stack Overflow用户
提问于 2022-05-25 11:21:42
回答 1查看 111关注 0票数 0

我需要从rrdtool获取特定的数据字段。这里有我的rrdfile的xml输出。

代码语言:javascript
复制
<ds>
    <name> gauge1 </name>
    <type> COUNTER </type>
    <minimal_heartbeat> 600 </minimal_heartbeat>
    <min> 0.0000000000e+00 </min>
    <max> 1.0000000000e+08 </max>

    <!-- PDP Status -->
    <last_ds> 10109068304313 </last_ds>
    <value> 1.2791603667e+05 </value>//need to read this value
    <unknown_sec> 0 </unknown_sec>
</ds>

<ds>
    <name> gauge2 </name>
    <type> COUNTER </type>
    <minimal_heartbeat> 600 </minimal_heartbeat>
    <min> 0.0000000000e+00 </min>
    <max> 1.0000000000e+08 </max>

    <!-- PDP Status -->
    <last_ds> 8604908605180 </last_ds>
    <value> 1.2595538667e+05 </value>//need to read this value
    <unknown_sec> 0 </unknown_sec>
</ds>

我使用以下命令读取rrdfile。

代码语言:javascript
复制
file_path=r'/data/rrd_new/XXX.rrd'
rrdfilename = file_path
rrd = rrdtool.lastupdate(rrdfilename)
time = rrd['date']
ds = rrd['ds']

print(time,ds)

但这提供了如下输出,即<last_ds>的值

代码语言:javascript
复制
2022-05-23 11:25:01 {'gauge1': 10109068304313.0, 'gauge2':  8604908605180}

但我需要得到的值应该如下,

代码语言:javascript
复制
2022-05-23 11:25:01 {'gauge1': 127916.03667, 'gauge2':  125955.38667}

有人能帮我读一下这个吗?

EN

Stack Overflow用户

发布于 2022-05-25 21:47:09

正如您所看到的,lastupdate()函数返回上次更新的数据、IE更新时间和last_ds。您在XML中看到的value实际上是构建当前pdp的工作区,并且没有特定的函数来检索它。

当然,您可以调用info()函数,然后从返回的数据提取ds[gauge1].value和类似的。这也许是你想要的。

更好的方法可能是使用xport()并提取1cdp=1pdp RRA中的最新值,如果您在RRD中有一个RRA的话。这将允许您在最高粒度的RRA中提取最近的值。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72376701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档