--- CircuitBreaker/src/dk/thoerup/circuitbreaker/web/ViewCircuitBreaker.java 2009/10/22 06:01:35 467
+++ 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,6 +48,14 @@
return sb.toString();
}
+ public static String formatDate(long date) {
+ if (date == 0L) {
+ return "-";
+ } else {
+ return new Date(date).toString();
+ }
+ }
+
public String execute(HttpServletRequest req, HttpServletResponse resp) {
CircuitBreaker breaker = CircuitBreakerManager.getManager().getCircuitBreaker( req.getParameter("breaker"));
String uri = req.getRequestURI();
@@ -72,16 +83,47 @@
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("Last trip | ").append( new Date(acb.getLastTrip()).toString() ).append(" |
\n");
- sb.append("Last resetCounters | ").append( new Date(acb.getLastResetCounters()).toString() ).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");
+ sb.append("Last reset | ").append( formatDate(acb.getLastReset()) ).append(" |
\n");
+
+ 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("\n");
+ sb.append("Current time: ").append( new Date().toString() ).append("
\n");
sb.append("Operations:\n");
if ( !readOnly ) {
@@ -90,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");
}