[英]How to read rrd files using rrdtool
我需要從 rrdtool 獲取特定的數據字段。 在這里,我有我的 rrdfile 的 xml 輸出。
<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>
我正在使用以下命令來讀取 rrdfiles。
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>
的值
2022-05-23 11:25:01 {'gauge1': 10109068304313.0, 'gauge2': 8604908605180}
但我需要得到的值和outout應該如下,
2022-05-23 11:25:01 {'gauge1': 127916.03667, 'gauge2': 125955.38667}
有人可以幫我讀一下嗎?
如您所見, lastupdate()
函數返回上次更新的數據,即更新時間和last_ds
。 您在 XML 中看到的value
實際上是正在構建當前 pdp 的工作區,並且沒有特定的函數來檢索它。
當然,您可以調用info()
函數,然后從返回的數據中提取ds[gauge1].value
和類似的。 這可能是你想要的。
可能更好的方法是使用xport()
並在 1cdp=1pdp RRA 中提取最新值,如果您在 RRD 中有一個。 這將讓您提取最高粒度 RRA 中的最新值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.