我使用 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 |................|
我也得到了同样的错误is not an RRD file
.
但是我现在可以通过以下步骤将usedMemory.rrd转储到XML。
- 从 https://github.com/OpenNMS/jrobin 下载项目
并执行生成 jrobin-1.6.1-快照
的maven pagckage
.jarJava版本:1.8.0_131&Apache Maven 3.5.2 -
java -jar jrobin-1.6.1-SNAPSHOT.jar rrdtool dump usedMemory.rrd > test.xml
啊,我刚刚发现你提到你使用了"Linux下"rrdtool dump
,暗示RRD文件来自其他地方。这可能是一个字节序问题;由rrdtool
/librrd创建和操作的RRD文件是依赖于体系结构的。
肯定的是,您可能需要确认 RRD 文件的前三个字节显示"RRD"。否则,它们实际上不是 rrdtool 理解的 rrd 格式。
(要进行检查,请执行类似 dd if=usedMemory.rrd bs=1 count=3 2>/dev/null; echo
的操作。
jrobin 控制台可用于转储或从 javamelody rrd 文件中获取数据,正如 Chifangjang 所说。
并且从浏览器或脚本中转储为 xml 或 txt 添加到下一个 javamelody 版本 (1.83) 中,请参阅文档。
快照构建处于 http://javamelody.org/downloads/javamelody-core-1.83.0-SNAPSHOT.jar