svn commit: r990 - logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter

Author: ceki Date: Wed Nov 22 21:57:37 2006 New Revision: 990 Added: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/StatisticalView.java - copied, changed from r987, /logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/AccessStats.java logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/StatisticalViewImpl.java - copied, changed from r987, /logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/AccessStatsImpl.java logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/StatsByHour.java logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/StatsByMinute.java Removed: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/AccessStats.java logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/AccessStatsImpl.java Modified: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/CountingFilter.java Log: Adding stats by minute and by hour Modified: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/CountingFilter.java ============================================================================== --- logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/CountingFilter.java (original) +++ logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/CountingFilter.java Wed Nov 22 21:57:37 2006 @@ -12,10 +12,10 @@ public class CountingFilter extends Filter { long total = 0; - final AccessStatsImpl accessStatsImpl; + final StatisticalViewImpl accessStatsImpl; CountingFilter() { - accessStatsImpl = new AccessStatsImpl(this); + accessStatsImpl = new StatisticalViewImpl(this); } @Override @@ -34,7 +34,7 @@ MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); try { ObjectName on = new ObjectName("totp:Filter=1"); - StandardMBean mbean = new StandardMBean(accessStatsImpl, AccessStats.class); + StandardMBean mbean = new StandardMBean(accessStatsImpl, StatisticalView.class); mbs.registerMBean(mbean, on); super.start(); } catch (Exception e) { Copied: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/StatisticalView.java (from r987, /logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/AccessStats.java) ============================================================================== --- /logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/AccessStats.java (original) +++ logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/StatisticalView.java Wed Nov 22 21:57:37 2006 @@ -1,10 +1,18 @@ package ch.qos.logback.access.filter; -public interface AccessStats { +public interface StatisticalView { long getTotal(); + long getLastMinuteCount(); + double getMinuteAverage(); + + + long getLastHoursCount(); + double getHourlyAverage(); + + long getLastDaysCount(); double getDailyAverage(); Copied: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/StatisticalViewImpl.java (from r987, /logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/AccessStatsImpl.java) ============================================================================== --- /logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/AccessStatsImpl.java (original) +++ logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/StatisticalViewImpl.java Wed Nov 22 21:57:37 2006 @@ -2,16 +2,18 @@ import ch.qos.logback.core.spi.LifeCycle; -public class AccessStatsImpl implements AccessStats, LifeCycle { +public class StatisticalViewImpl implements StatisticalView, LifeCycle { final CountingFilter countingFilter; boolean started; + StatsByMinute statsByMinute = new StatsByMinute(); + StatsByHour statsByHour = new StatsByHour(); StatsByDay statsByDay = new StatsByDay(); StatsByWeek statsByWeek = new StatsByWeek(); StatsByMonth statsByMonth = new StatsByMonth(); - AccessStatsImpl(CountingFilter countingFilter) { + StatisticalViewImpl(CountingFilter countingFilter) { this.countingFilter = countingFilter; } @@ -45,6 +47,8 @@ void refresh(long now) { long total = getTotal(); + statsByMinute.update(now, total); + statsByHour.update(now, total); statsByDay.update(now, total); statsByWeek.update(now, total); statsByMonth.update(now, total); @@ -59,6 +63,8 @@ public void start() { started = true; long now = System.currentTimeMillis(); + statsByMinute = new StatsByMinute(now); + statsByHour = new StatsByHour(now); statsByDay = new StatsByDay(now); statsByWeek = new StatsByWeek(now); statsByMonth = new StatsByMonth(now); @@ -70,9 +76,27 @@ public void stop() { started = false; + statsByMinute.reset(); + statsByHour.reset(); statsByDay.reset(); statsByWeek.reset(); statsByMonth.reset(); } + public long getLastMinuteCount() { + return statsByMinute.getLastCount(); + } + + public double getMinuteAverage() { + return statsByMinute.getAverage(); + } + + public double getHourlyAverage() { + return statsByHour.getAverage(); + } + + public long getLastHoursCount() { + return statsByHour.getLastCount(); + } + } Added: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/StatsByHour.java ============================================================================== --- (empty file) +++ logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/StatsByHour.java Wed Nov 22 21:57:37 2006 @@ -0,0 +1,20 @@ +package ch.qos.logback.access.filter; + +import ch.qos.logback.core.util.TimeUtil; + +public class StatsByHour extends PeriodicStats { + + StatsByHour() { + super(); + } + + StatsByHour(long now) { + super(now); + } + + @Override + long computeStartOfNextPeriod(long now) { + return TimeUtil.computeStartOfNextHour(now); + } + +} Added: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/StatsByMinute.java ============================================================================== --- (empty file) +++ logback/trunk/logback-access/src/main/java/ch/qos/logback/access/filter/StatsByMinute.java Wed Nov 22 21:57:37 2006 @@ -0,0 +1,20 @@ +package ch.qos.logback.access.filter; + +import ch.qos.logback.core.util.TimeUtil; + +public class StatsByMinute extends PeriodicStats { + + StatsByMinute() { + super(); + } + + StatsByMinute(long now) { + super(now); + } + + @Override + long computeStartOfNextPeriod(long now) { + return TimeUtil.computeStartOfNextDay(now); + } + +}
participants (1)
-
noreply.ceki@qos.ch