--- CircuitBreaker/src/dk/thoerup/circuitbreaker/web/ViewCircuitBreaker.java 2010/06/20 21:54:53 864 +++ CircuitBreaker/src/dk/thoerup/circuitbreaker/web/ViewCircuitBreaker.java 2012/08/31 06:33:12 1844 @@ -1,11 +1,14 @@ package dk.thoerup.circuitbreaker.web; import java.util.Date; +import java.util.Formatter; +import java.util.LinkedList; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import dk.thoerup.circuitbreaker.AccountingCircuitBreaker; +import dk.thoerup.circuitbreaker.LoggingCircuitBreaker; import dk.thoerup.circuitbreaker.CircuitBreaker; import dk.thoerup.circuitbreaker.CircuitBreakerManager; @@ -45,7 +48,7 @@ return sb.toString(); } - public String formatDate(long date) { + public static String formatDate(long date) { if (date == 0L) { return "-"; } else { @@ -80,12 +83,20 @@ if (breaker instanceof AccountingCircuitBreaker) { AccountingCircuitBreaker acb = (AccountingCircuitBreaker) breaker; + + double failure_percentage = ((double) acb.getTotalFailureCount()*100) / ((double) acb.getTotalCallCount() ); + StringBuilder sbf = new StringBuilder(); + Formatter formatter = new Formatter(sb); + formatter.format("%.2f", failure_percentage); + + sb.append("Accounting\n"); sb.append("Trip count").append( acb.getTripCount() ).append("\n"); sb.append("Re-trip count").append( acb.getRetripCount() ).append("\n"); sb.append("Block count").append( acb.getBlockCount() ).append("\n"); sb.append("Total failure count").append( acb.getTotalFailureCount() ).append("\n"); sb.append("Total Call count").append( acb.getTotalCallCount() ).append("\n"); + sb.append("Failure Percentage").append( sb.toString() ).append("%\n"); sb.append("Last failure").append( formatDate(acb.getLastFailure()) ).append("\n"); sb.append("Last trip").append( formatDate(acb.getLastTrip()) ).append("\n"); sb.append("Last re-trip").append( formatDate(acb.getLastRetrip()) ).append("\n"); @@ -93,6 +104,23 @@ sb.append("Last resetCounters").append( formatDate(acb.getLastResetCounters()) ).append("\n"); } + + if (breaker instanceof LoggingCircuitBreaker) { + LoggingCircuitBreaker lcb = (LoggingCircuitBreaker) breaker; + + LinkedList list = lcb.getLog(); + String headerLink = String.format("Logging", req.getRequestURI(), breaker.getName() ); + + sb.append("").append(headerLink).append("\n"); + + int max = list.size() > 10 ? 10 : list.size(); + for (int i=0; i"); + sb.append( entry.toString() ); + sb.append(""); + } + } sb.append("\n"); sb.append("Current time: ").append( new Date().toString() ).append("

\n"); @@ -104,6 +132,9 @@ if (breaker instanceof AccountingCircuitBreaker ) { sb.append( actionBuilder(uri, "resetCounters", breaker.getName())).append("
\n"); } + if (breaker instanceof LoggingCircuitBreaker ) { + sb.append( actionBuilder(uri, "clearLog", breaker.getName())).append("
\n"); + } } else { sb.append("the CircuitBreakers can only be viewed"); }