1.1 --- a/logger/uihandlerserver/src/java/org/netbeans/server/uihandler/statistics/TimeToFailture.java Tue Jan 15 15:17:27 2008 +0000
1.2 +++ b/logger/uihandlerserver/src/java/org/netbeans/server/uihandler/statistics/TimeToFailture.java Wed Jan 16 09:19:42 2008 +0000
1.3 @@ -177,6 +177,22 @@
1.4 return times;
1.5 }
1.6
1.7 + public static List<TTFData> groupData(List<TTFData> list, int factor){
1.8 + List<TTFData> result = new ArrayList<TTFData>();
1.9 + int leftBorder = 0;
1.10 + int rightBorder = 1;
1.11 + while (rightBorder <= list.size()){
1.12 + int count = list.get(leftBorder).getCount();
1.13 + for (int i = leftBorder+1; i < rightBorder; i++){
1.14 + count += list.get(i).getCount();
1.15 + }
1.16 + result.add(new TTFData(list.get(rightBorder - 1).getTime(), count));
1.17 + leftBorder = rightBorder;
1.18 + rightBorder = rightBorder * factor;
1.19 + }
1.20 + return result;
1.21 + }
1.22 +
1.23 public static class TTFData implements Comparable<TTFData>{
1.24
1.25 public static final int ROUND_CONST = 1000 * 60;//ms -> 5 min interval
2.1 --- a/logger/uihandlerserver/test/org/netbeans/server/uihandler/statistics/TimeToFailtureTest.java Tue Jan 15 15:17:27 2008 +0000
2.2 +++ b/logger/uihandlerserver/test/org/netbeans/server/uihandler/statistics/TimeToFailtureTest.java Wed Jan 16 09:19:42 2008 +0000
2.3 @@ -27,6 +27,7 @@
2.4 */
2.5 package org.netbeans.server.uihandler.statistics;
2.6
2.7 +import java.util.ArrayList;
2.8 import java.util.List;
2.9 import java.util.logging.Level;
2.10 import java.util.logging.LogRecord;
2.11 @@ -83,10 +84,25 @@
2.12 verify(result5, SECOND_TIME, 4);
2.13 }
2.14
2.15 + public void testGroupData() throws Exception{
2.16 + int testItemsCount = 10000;
2.17 + List<TimeToFailture.TTFData> testData = new ArrayList<TimeToFailture.TTFData>(testItemsCount);
2.18 + for (int i = 0; i < testItemsCount; i++){
2.19 + testData.add(new TimeToFailture.TTFData(i * TimeToFailture.TTFData.ROUND_CONST, 1));
2.20 + }
2.21 + int factor = 2;
2.22 + testData = TimeToFailture.groupData(testData, factor);
2.23 + for (TimeToFailture.TTFData tTFData : testData) {
2.24 + if (tTFData.getTrimmedTime() > 0 ){
2.25 + assertEquals((tTFData.getTrimmedTime()+1)/2, tTFData.getCount());
2.26 + }
2.27 + }
2.28 +
2.29 + }
2.30 +
2.31 private void verify(List<TimeToFailture.TTFData> res, int key, int value){
2.32 assertNotNull(res);
2.33 assertTrue("KEY", res.contains(new TimeToFailture.TTFData(key, value)));
2.34 -// assertEquals("VALUE", value, res.get(key));
2.35 }
2.36
2.37 }
3.1 --- a/logger/uihandlerserver/web/graph/timetofailture.jsp Tue Jan 15 15:17:27 2008 +0000
3.2 +++ b/logger/uihandlerserver/web/graph/timetofailture.jsp Wed Jan 16 09:19:42 2008 +0000
3.3 @@ -10,7 +10,7 @@
3.4
3.5 <c:set var="path" value='/ <a href="../index.jsp">Analytics</a> / Graph / Time To Failture'/>
3.6 <%@include file="/WEB-INF/jspf/header.jspf" %>
3.7 -<%! static int COLUMNS_NO = 5; %>
3.8 +<%! static int COLUMNS_NO = 1;%>
3.9 <div class="f-page-cell bg-sky" >
3.10 <h2>Time to Failture NetBeans statistics</h2>
3.11
3.12 @@ -31,18 +31,71 @@
3.13 collection="results"
3.14 category="trimmedTime"
3.15 value="count"
3.16 - title="Time to Failture"
3.17 + title="Middle time between failtures"
3.18 />
3.19 <p>
3.20 This is the overall statistics of all the submitted data.
3.21 </p>
3.22 </td>
3.23 <td>
3.24 - <table style="border:2px solid;border-spacing:0px">
3.25 - <thead>
3.26 + <table>
3.27 + <thead class="tblheader">
3.28 <% for (int j = 0; j < COLUMNS_NO; j++) {%>
3.29 <th>
3.30 - Time to failture (mins)
3.31 + Middle time between failtures
3.32 + </th>
3.33 + <th>
3.34 + Number of events
3.35 + </th>
3.36 + <% }%>
3.37 + </thead>
3.38 + <tbody>
3.39 + <% data = TimeToFailture.groupData(data, 2);
3.40 + int column = data.size() / COLUMNS_NO;
3.41 + int previousTime = 0;
3.42 + for (int i = 0; i < column; i++) {%>
3.43 + <tr>
3.44 + <%
3.45 + for (int j = 0; j < COLUMNS_NO; j++) {
3.46 + TimeToFailture.TTFData dat = data.get(column * j + i);
3.47 + %>
3.48 + <td class="tbltd1"><%= previousTime %> mins - <%= dat.getTrimmedTime()%> mins</td>
3.49 + <td class="tbltd1"><%= dat.getCount()%></td>
3.50 + <%
3.51 + previousTime = dat.getTrimmedTime();
3.52 + }
3.53 + %>
3.54 + </tr>
3.55 +
3.56 + <%}%>
3.57 + </tbody>
3.58 + </table>
3.59 + </td>
3.60 + </tr>
3.61 + <% }%>
3.62 + <%
3.63 + data = (List<TimeToFailture.TTFData>) pageContext.getAttribute("userTimeToFailture");
3.64 + if (data != null) {
3.65 + pageContext.setAttribute("userResults", data);
3.66 + %>
3.67 + <tr>
3.68 + <td align="center" width="480">
3.69 + <chart:line serie="serie"
3.70 + collection="userResults"
3.71 + category="trimmedTime"
3.72 + value="count"
3.73 + title="Middle time between failtures"
3.74 + />
3.75 + <p>
3.76 + This is the statistic of all your submitted data.
3.77 + </p>
3.78 + </td>
3.79 + <td>
3.80 + <table>
3.81 + <thead class="tblheader">
3.82 + <% for (int j = 0; j < COLUMNS_NO; j++) {%>
3.83 + <th>
3.84 + Middle time between failtures (mins)
3.85 </th>
3.86 <th>
3.87 Number of events
3.88 @@ -57,8 +110,8 @@
3.89 for (int j = 0; j < COLUMNS_NO; j++) {
3.90 TimeToFailture.TTFData dat = data.get(column * j + i);
3.91 %>
3.92 - <td style="border:1px solid; border-left:5px solid"><%= dat.getTrimmedTime()%></td>
3.93 - <td style="border:1px solid"><%= dat.getCount()%></td>
3.94 + <td class="tbltd1"><%= dat.getTrimmedTime()%></td>
3.95 + <td class="tbltd1"><%= dat.getCount()%></td>
3.96 <%}%>
3.97 </tr>
3.98
3.99 @@ -68,7 +121,6 @@
3.100 </td>
3.101 </tr>
3.102 <% } %>
3.103 -
3.104 </table>
3.105
3.106 <%@include file="/WEB-INF/jspf/footer.jspf" %>
3.107 \ No newline at end of file