从RRD转换为CSV

时间:2012-05-03 18:47:46

标签: rrdtool rrd

我使用JavaMelody工具监控我的应用程序,但可用的时间轴设置不合适。这意味着我希望仅在30分钟内获得快速时间线的监控分数,但JavaMelody中的最低时间范围为1天。可能这个功能可以通过编写自定义插件来解决,但我对该工具API很熟悉。

JavaMelody以RRD格式生成输出文件。我想将这些文件转换为更常见的格式,如CSV,并使用Excel生成图表。我试过在Linux下使用'rrdtool dump'命令,但是没有效果。我有错误:is not an RRD file

您知道从RRD转换为CSV的任何解决方案吗?


更新

  adam@adam-desktop:/tmp/javamelody/car-rental_adam-desktop$ rrdtool dump usedMemory.rrd > filename.xml
  ERROR: 'usedMemory.rrd' is not an RRD file
  adam@adam-desktop:/tmp/javamelody/car-rental_adam-desktop$ rrdtool dump usedMemory.rrd > filename.csv
  ERROR: 'usedMemory.rrd' is not an RRD file

我的* .rrd文件是由JavaMelody工具生成的,所以我认为这是正确保存的。


更新2

00000000  00 4a 00 52 00 6f 00 62  00 69 00 6e 00 2c 00 20  |.J.R.o.b.i.n.,. |
00000010  00 76 00 65 00 72 00 73  00 69 00 6f 00 6e 00 20  |.v.e.r.s.i.o.n. |
00000020  00 30 00 2e 00 31 00 20  00 00 00 00 00 00 00 3c  |.0...1. .......<|
00000030  00 00 00 01 00 00 00 08  00 00 00 00 4f b9 47 0f  |............O.G.|
00000040  00 75 00 73 00 65 00 64  00 4d 00 65 00 6d 00 6f  |.u.s.e.d.M.e.m.o|
00000050  00 72 00 79 00 20 00 20  00 20 00 20 00 20 00 20  |.r.y. . . . . . |
00000060  00 20 00 20 00 20 00 20  00 47 00 41 00 55 00 47  |. . . . .G.A.U.G|
00000070  00 45 00 20 00 20 00 20  00 20 00 20 00 20 00 20  |.E. . . . . . . |
00000080  00 20 00 20 00 20 00 20  00 20 00 20 00 20 00 20  |. . . . . . . . |
00000090  00 00 00 00 00 00 00 78  00 00 00 00 00 00 00 00  |.......x........|
000000a0  7f f8 00 00 00 00 00 00  41 93 36 05 40 00 00 00  |........A.6.@...|
000000b0  41 e5 03 15 be 00 00 00  00 00 00 00 00 00 00 00  |A...............|
000000c0  00 41 00 56 00 45 00 52  00 41 00 47 00 45 00 20  |.A.V.E.R.A.G.E. |
000000d0  00 20 00 20 00 20 00 20  00 20 00 20 00 20 00 20  |. . . . . . . . |
000000e0  00 20 00 20 00 20 00 20  3f d0 00 00 00 00 00 00  |. . . . ?.......|
000000f0  00 00 00 01 00 00 05 a0  7f f8 00 00 00 00 00 00  |................|
00000100  00 00 00 00 00 00 00 00  00 00 00 21 41 89 70 79  |...........!A.py|
00000110  00 00 00 00 41 92 ae 5a  55 55 55 55 41 8f 9f 49  |....A..ZUUUUA..I|
00000120  95 55 55 55 41 96 43 4d  00 00 00 00 7f f8 00 00  |.UUUA.CM........|
00000130  00 00 00 00 7f f8 00 00  00 00 00 00 7f f8 00 00  |................|

3 个答案:

答案 0 :(得分:2)

啊,我刚刚发现你提到你在Linux&#34;下使用rrdtool dump&#34;暗示RRD文件来自其他地方。这可能是一个字节序问题;由rrdtool / librrd创建和操作的RRD文件是与体系结构相关的。

并且,可以肯定的是,您可能需要确认RRD文件的前三个字节是否为&#34; RRD&#34;。否则,它们实际上并不是rrdtool理解的rrd格式。

(要检查,请执行dd if=usedMemory.rrd bs=1 count=3 2>/dev/null; echo之类的操作。)

答案 1 :(得分:2)

我也遇到了同样的错误{ "values": [ "bar1", "bar2", "bar3" ] } 但是我现在可以根据以下步骤将usedMemory.rrd转储到XML。

  1. https://github.com/OpenNMS/jrobin下载项目并执行is not an RRD file以生成 jrobin-1.6.1-SNAPSHOT.jar
    Java版本:1.8.0_131&amp;&amp; Apache Maven 3.5.2
  2. maven pagckage

答案 2 :(得分:0)

正如chifangjang所说,可以使用jrobin控制台从javamelody rrd文件中转储或获取数据。

为下一个javamelody版本(1.83)添加了从浏览器或脚本中转储为xml或txt的格式,请参见doc

快照版本位于http://javamelody.org/downloads/javamelody-core-1.83.0-SNAPSHOT.jar