author | jsedek@netbeans.org |
Fri, 18 Jan 2008 16:42:58 +0000 | |
changeset 2817 | 4a965fcfdeb2 |
parent 2815 | b2e251132095 |
child 2818 | 4901449e1c5b |
permissions | -rw-r--r-- |
jsedek@2780 | 1 |
<%@page contentType="text/html"%> |
jsedek@2780 | 2 |
<%@page pageEncoding="UTF-8"%> |
jsedek@2780 | 3 |
<%@ page import="java.util.List" import="java.util.Iterator"%> |
jsedek@2780 | 4 |
<%@ page import="org.netbeans.server.uihandler.LogsManager" %> |
jsedek@2780 | 5 |
<%@ page import="org.netbeans.server.uihandler.statistics.TimeToFailture" %> |
jsedek@2780 | 6 |
<%@ taglib uri="/WEB-INF/chart-tag.tld" prefix="chart" %> |
jsedek@2780 | 7 |
<%@ taglib uri="/WEB-INF/statistics.tld" prefix="ui" %> |
jsedek@2780 | 8 |
<ui:useStatistic name="TimeToFailture"/> |
jsedek@2790 | 9 |
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> |
jsedek@2780 | 10 |
|
jsedek@2790 | 11 |
<c:set var="path" value='/ <a href="../index.jsp">Analytics</a> / Graph / Time To Failture'/> |
jsedek@2795 | 12 |
<%@include file="/WEB-INF/jspf/header.jspf" %> |
jsedek@2808 | 13 |
<%! static int COLUMNS_NO = 1;%> |
jsedek@2780 | 14 |
<div class="f-page-cell bg-sky" > |
jsedek@2814 | 15 |
<h2>Mean Time To Failure NetBeans statistics</h2> |
jsedek@2780 | 16 |
|
jsedek@2780 | 17 |
<p> |
jsedek@2814 | 18 |
This statistics measures mean time to NetBeans failure. Mean Time To Failure |
jsedek@2814 | 19 |
is simply the reciprocal of the failure rate. In other words is the |
jsedek@2814 | 20 |
expected time to failure of a system. |
jsedek@2814 | 21 |
</p> |
jsedek@2814 | 22 |
<p> |
jsedek@2814 | 23 |
You can see the graph of the Time To Failure values that are measured |
jsedek@2814 | 24 |
by UI Gestures Collector. Time between exceptions in IDE is measured. |
jsedek@2814 | 25 |
The graph pretty well matches exponential distribution that is a teoretical |
jsedek@2814 | 26 |
model for system reliability. You can get more information about |
jsedek@2814 | 27 |
<a href="http://en.wikipedia.org/wiki/Failure_rate">failure rate</a> or |
jsedek@2814 | 28 |
<a href="http://en.wikipedia.org/wiki/MTTF">Mean Time Between Failure</a> at |
jsedek@2817 | 29 |
Wikipedia. Mean Time Between Failure is pretty similar to Mean Time To |
jsedek@2817 | 30 |
Failure in our case. |
jsedek@2780 | 31 |
</p> |
jsedek@2780 | 32 |
</div> |
jsedek@2780 | 33 |
|
jsedek@2780 | 34 |
<table width="100%"> |
jsedek@2780 | 35 |
<% |
jsedek@2790 | 36 |
List<TimeToFailture.TTFData> data = (List<TimeToFailture.TTFData>) pageContext.getAttribute("globalTimeToFailture"); |
jsedek@2780 | 37 |
if (data != null) { |
jsedek@2780 | 38 |
pageContext.setAttribute("results", data); |
jsedek@2780 | 39 |
%> |
jsedek@2780 | 40 |
<tr> |
jsedek@2780 | 41 |
<td align="center" width="480"> |
jsedek@2780 | 42 |
<chart:line serie="serie" |
jsedek@2790 | 43 |
collection="results" |
jsedek@2790 | 44 |
category="trimmedTime" |
jsedek@2790 | 45 |
value="count" |
jsedek@2814 | 46 |
title="Time To Failure" |
jsedek@2790 | 47 |
/> |
jsedek@2780 | 48 |
<p> |
jsedek@2780 | 49 |
This is the overall statistics of all the submitted data. |
jsedek@2780 | 50 |
</p> |
jsedek@2780 | 51 |
</td> |
jsedek@2790 | 52 |
<td> |
jsedek@2808 | 53 |
<table> |
jsedek@2808 | 54 |
<thead class="tblheader"> |
jsedek@2795 | 55 |
<% for (int j = 0; j < COLUMNS_NO; j++) {%> |
jsedek@2790 | 56 |
<th> |
jsedek@2814 | 57 |
Time To Failure |
jsedek@2808 | 58 |
</th> |
jsedek@2808 | 59 |
<th> |
jsedek@2808 | 60 |
Number of events |
jsedek@2808 | 61 |
</th> |
jsedek@2808 | 62 |
<% }%> |
jsedek@2808 | 63 |
</thead> |
jsedek@2808 | 64 |
<tbody> |
jsedek@2808 | 65 |
<% data = TimeToFailture.groupData(data, 2); |
jsedek@2808 | 66 |
int column = data.size() / COLUMNS_NO; |
jsedek@2808 | 67 |
int previousTime = 0; |
jsedek@2808 | 68 |
for (int i = 0; i < column; i++) {%> |
jsedek@2808 | 69 |
<tr> |
jsedek@2808 | 70 |
<% |
jsedek@2808 | 71 |
for (int j = 0; j < COLUMNS_NO; j++) { |
jsedek@2808 | 72 |
TimeToFailture.TTFData dat = data.get(column * j + i); |
jsedek@2808 | 73 |
%> |
jsedek@2808 | 74 |
<td class="tbltd1"><%= previousTime %> mins - <%= dat.getTrimmedTime()%> mins</td> |
jsedek@2808 | 75 |
<td class="tbltd1"><%= dat.getCount()%></td> |
jsedek@2808 | 76 |
<% |
jsedek@2808 | 77 |
previousTime = dat.getTrimmedTime(); |
jsedek@2808 | 78 |
} |
jsedek@2808 | 79 |
%> |
jsedek@2808 | 80 |
</tr> |
jsedek@2808 | 81 |
|
jsedek@2808 | 82 |
<%}%> |
jsedek@2808 | 83 |
</tbody> |
jsedek@2808 | 84 |
</table> |
jsedek@2808 | 85 |
</td> |
jsedek@2808 | 86 |
</tr> |
jsedek@2814 | 87 |
<tr style="font-size:bigger"> |
jsedek@2814 | 88 |
<td> |
jsedek@2814 | 89 |
<h3>Global Mean Time To Failture: |
jsedek@2815 | 90 |
<span style="color:red"> |
jsedek@2814 | 91 |
<%= pageContext.getAttribute("globalTimeToFailtureMTTF")%> |
jsedek@2815 | 92 |
</span> |
jsedek@2814 | 93 |
</h3> |
jsedek@2814 | 94 |
</td> |
jsedek@2814 | 95 |
</tr> |
jsedek@2808 | 96 |
<% }%> |
jsedek@2808 | 97 |
<% |
jsedek@2808 | 98 |
data = (List<TimeToFailture.TTFData>) pageContext.getAttribute("userTimeToFailture"); |
jsedek@2808 | 99 |
if (data != null) { |
jsedek@2808 | 100 |
pageContext.setAttribute("userResults", data); |
jsedek@2808 | 101 |
%> |
jsedek@2808 | 102 |
<tr> |
jsedek@2808 | 103 |
<td align="center" width="480"> |
jsedek@2808 | 104 |
<chart:line serie="serie" |
jsedek@2808 | 105 |
collection="userResults" |
jsedek@2808 | 106 |
category="trimmedTime" |
jsedek@2808 | 107 |
value="count" |
jsedek@2814 | 108 |
title="Time To Failure" |
jsedek@2808 | 109 |
/> |
jsedek@2808 | 110 |
<p> |
jsedek@2808 | 111 |
This is the statistic of all your submitted data. |
jsedek@2808 | 112 |
</p> |
jsedek@2808 | 113 |
</td> |
jsedek@2808 | 114 |
<td> |
jsedek@2808 | 115 |
<table> |
jsedek@2808 | 116 |
<thead class="tblheader"> |
jsedek@2808 | 117 |
<% for (int j = 0; j < COLUMNS_NO; j++) {%> |
jsedek@2808 | 118 |
<th> |
jsedek@2814 | 119 |
Time To Failture (mins) |
jsedek@2790 | 120 |
</th> |
jsedek@2790 | 121 |
<th> |
jsedek@2790 | 122 |
Number of events |
jsedek@2790 | 123 |
</th> |
jsedek@2790 | 124 |
<% }%> |
jsedek@2790 | 125 |
</thead> |
jsedek@2790 | 126 |
<tbody> |
jsedek@2795 | 127 |
<% int column = data.size() / COLUMNS_NO; |
jsedek@2790 | 128 |
for (int i = 0; i < column; i++) {%> |
jsedek@2790 | 129 |
<tr> |
jsedek@2790 | 130 |
<% |
jsedek@2795 | 131 |
for (int j = 0; j < COLUMNS_NO; j++) { |
jsedek@2790 | 132 |
TimeToFailture.TTFData dat = data.get(column * j + i); |
jsedek@2790 | 133 |
%> |
jsedek@2808 | 134 |
<td class="tbltd1"><%= dat.getTrimmedTime()%></td> |
jsedek@2808 | 135 |
<td class="tbltd1"><%= dat.getCount()%></td> |
jsedek@2790 | 136 |
<%}%> |
jsedek@2790 | 137 |
</tr> |
jsedek@2790 | 138 |
|
jsedek@2790 | 139 |
<%}%> |
jsedek@2790 | 140 |
</tbody> |
jsedek@2790 | 141 |
</table> |
jsedek@2790 | 142 |
</td> |
jsedek@2780 | 143 |
</tr> |
jsedek@2814 | 144 |
<tr style="font-size:bigger"> |
jsedek@2815 | 145 |
<td> |
jsedek@2815 | 146 |
<h3>Your Mean Time To Failture: |
jsedek@2815 | 147 |
<span style="color:red"> |
jsedek@2815 | 148 |
<%= pageContext.getAttribute("userTimeToFailtureMTTF")%> |
jsedek@2815 | 149 |
</span> |
jsedek@2815 | 150 |
</h3> |
jsedek@2815 | 151 |
</td> |
jsedek@2814 | 152 |
</tr> |
jsedek@2780 | 153 |
<% } %> |
jsedek@2780 | 154 |
</table> |
jsedek@2780 | 155 |
|
jsedek@2802 | 156 |
<%@include file="/WEB-INF/jspf/footer.jspf" %> |