Domanda

I'm trying to use RRD4J but it retrieves weird data. Maybe I'm doing something strange.

I have created a database with the following functions:

// MAIN DATA SOURCES
rrdDef.addDatasource("create", DsType.COUNTER, 600, Double.NaN, Double.NaN);
rrdDef.addDatasource("copy", DsType.COUNTER, 600, Double.NaN, Double.NaN);
rrdDef.addDatasource("check", DsType.COUNTER, 600, Double.NaN, Double.NaN);
rrdDef.addDatasource("delete", DsType.COUNTER, 600, Double.NaN, Double.NaN);
// AVERAGE ARCHIVES
rrdDef.addArchive(ConsolFun.AVERAGE, 0.5, 1, 576);
rrdDef.addArchive(ConsolFun.AVERAGE, 0.5, 6, 336);
rrdDef.addArchive(ConsolFun.AVERAGE, 0.5, 24, 720);
rrdDef.addArchive(ConsolFun.AVERAGE, 0.5, 288, 540);
// MAX ARCHIVES
rrdDef.addArchive(ConsolFun.MAX, 0.5, 1, 576);
rrdDef.addArchive(ConsolFun.MAX, 0.5, 6, 336);
rrdDef.addArchive(ConsolFun.MAX, 0.5, 24, 720);
rrdDef.addArchive(ConsolFun.MAX, 0.5, 288, 540);

I update as follows:

Sample sample = rrdDb.createSample();
sample.setTime(now);
sample.setValue("create", (double)create);
sample.setValue("copy", (double)copy);
sample.setValue("check", (double)check);
sample.setValue("delete", (double)del);
sample.update();

And retrieve data:

long endTime = Util.getTime();
long startTime = endTime - (12*60*60L);
FetchRequest fetchRequest = rrdDb.createFetchRequest(ConsolFun.MAX, startTime, endTime);
FetchData fetchData = fetchRequest.fetchData();
System.out.println(fetchData.dump());

But I retrieve the most weird data possible. I have entered numbers like 95, 48, 78 and 15, and received data like +1.8046081071E07, +1.8046079370E07, +0.0000000000E00 and +1.8046081013E07

I'd like to retrieve values back. Am I doing something wrong?

È stato utile?

Soluzione

I found the solution.

I have used DsType.COUNTER when I should have used DsType.GAUGE.

So, using the following code to create the database solved the problem:

rrdDef.addDatasource("create", DsType.GAUGE, 600, Double.NaN, Double.NaN);
rrdDef.addDatasource("copy", DsType.GAUGE, 600, Double.NaN, Double.NaN);
rrdDef.addDatasource("check", DsType.GAUGE, 600, Double.NaN, Double.NaN);
rrdDef.addDatasource("delete", DsType.GAUGE, 600, Double.NaN, Double.NaN);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top