목적은 내 웹 사이트의 사용자 수에 대한 통계를 작성하는 것입니다. 현재 사용자 수 및 이전 10 일 사용자 수를 표시하려고합니다. 나는 내가 잘못ConsolFun.LAST가 마지막 값을 반환하지 않습니다.
1404345600: NaN
1404432000: +1.0000000000E00
1404518400: +2.0000000000E00
1404604800: +3.0000000000E00
1404691200: +4.0000000000E00
1404777600: +5.0000000000E00
1404864000: +6.0000000000E00
1404950400: +7.0000000000E00
1405036800: NaN
을 기대하고 있었는지 여기
RrdDef rrdDef = new RrdDef("test", 60*60*24);
rrdDef.setStartTime(Util.getTime() - 60*60*24*11);
rrdDef.addDatasource(Stats.USER_COUNT.name(), DsType.GAUGE, 60*60*24, 0.0, Double.NaN);
rrdDef.addArchive(ConsolFun.LAST, 0.5, 1, 10);
RrdDb rrdDb = new RrdDb(rrdDef);
rrdDb.close();
rrdDb = new RrdDb("test");
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -7);
rrdDb.createSample().setAndUpdate(String.format("%d:%d", (Util.getTimestamp(cal)), 1));
cal.add(Calendar.DATE, 1);
rrdDb.createSample().setAndUpdate(String.format("%d:%d", (Util.getTimestamp(cal)), 2));
cal.add(Calendar.DATE, 1);
rrdDb.createSample().setAndUpdate(String.format("%d:%d", (Util.getTimestamp(cal)), 3));
cal.add(Calendar.DATE, 1);
rrdDb.createSample().setAndUpdate(String.format("%d:%d", (Util.getTimestamp(cal)), 4));
cal.add(Calendar.DATE, 1);
rrdDb.createSample().setAndUpdate(String.format("%d:%d", (Util.getTimestamp(cal)), 5));
cal.add(Calendar.DATE, 1);
rrdDb.createSample().setAndUpdate(String.format("%d:%d", (Util.getTimestamp(cal)), 6));
cal.add(Calendar.DATE, 1);
rrdDb.createSample().setAndUpdate(String.format("%d:%d", (Util.getTimestamp(cal)), 7));
rrdDb.close();
rrdDb = new RrdDb("test");
FetchRequest fetchRequest = rrdDb.createFetchRequest(ConsolFun.LAST, Util.getTime() - 60*60*24*7, Util.getTime());
FetchData fetchData = fetchRequest.fetchData();
System.out.println(fetchData.dump());
rrdDb.close();
출력 여기
1404345600: NaN
1404432000: +2.0000000000E00
1404518400: +2.4654861111E00
1404604800: +3.4654861111E00
1404691200: +4.4654861111E00
1404777600: +5.4654861111E00
1404864000: +6.4654861111E00
1404950400: NaN
1405036800: NaN
입니다된다 여기에 내가했던 테스트는?