JRobin sucks
December 25th, 2007RRDtool is the OpenSource industry standard, high performance data logging and graphing system for time series data. Due to its popularity, it has many language binding and porting. One of them is JRobin, which is a java port.
Maybe JRobin is good pure java rrdtool library with good performance and usage, but i can’t understand why it takes a different RRD format, which means not compatible to the official format. What’s worse, JRobin do provide the convertor, but only provide the convertor which can be used to convert the RRDTool files to its own RRD format, but no way inverted.
These days, I got several JRobin rrd files and want to use them in my ruby application. But unfortunately, because of JRobin’s sucks non-compatible feature, it’s no doubt that i failed with the effort. So I went through the source code and to see how the JRobin convertor does. After some works, I find what a stupid way JRobin does. Let’s see how can we get a RRDtool file from a JRobin file.
Below is the very simple sample source code.
include Java
require ‘jrobin-1.5.8.jar’
import org.jrobin.core.RrdDb;name = $*.shift
rrdDb = RrdDb.new(name)
rrdDb.dumpXml("#{name}.xml")
`rrdtool restore -r -f #{name}.xml #{name}`
That’s all. Everything works well and then I get a expected rrdtool file. From the code, we can see that we just dump the jrobin file to a xml file and then restore the xml file to a rrdtool file. So when this can work, why should JRobin use a non-compatible format? Why can’t JRobin use the official RRDtool format? Only the god knows, and i have to say that "JRobin sucks".
[Update] The two important points for the reason.
- RRD4J RRD files are portable, RRDTool files are not. Try to copy a RRDTool file from Linux to Windows platform and fetch data from it. It does not work! But with RRD4J you are free to create your RRD files on Solaris and transfer them to Windows or Linux platform for further processing. It works! That is why I had to define my own file format which is different from the format used in RRDTool - there is no point in creating portable Java application backed by non-portable data files.
- RRD4J uses the same XML format for RRD dump as RRDTool. You can dump your RRD4J file to an XML file which can be imported by RRDTool. And vice versa.


