2013-04-17 2 views
0

Я пытаюсь использовать RRD4J, но он извлекает странные данные. Может быть, я делаю что-то странное.RRD4J извлекает странные значения

Я создал базу данных со следующими функциями:

// 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); 

обновляю следующим образом:

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(); 

и извлекать данные:

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()); 

Но я получить самый странный данные возможны. Я ввел числа, такие как 95, 48, 78 и 15, и получил такие данные, как + 1.8046081071E07, + 1.8046079370E07, + 0.0000000000E00 и + 1.8046081013E07

Я хотел бы вернуть значения обратно. Я делаю что-то неправильно?

ответ

1

Я нашел решение.

Я использовал DsType.COUNTER, когда я должен был использовать DsType.GAUGE.

Таким образом, используя следующий код, чтобы создать базу данных решить эту проблему:

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); 
Смежные вопросы