mcardle 2005/12/14 17:26:38 CET
Modified files:
esiadmin/css screen.css
esiadmin index.jsp
Log:
* adds bar charts
* adds more stats
* support for first step in rewrite of backend cache code
Revision Changes Path
1.2 +17 -0 esi_server/esiadmin/css/screen.css
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/esi_server/esiadmin/css/screen.css.diff?r1=1.1&r2=1.2&f=h
1.5 +197 -60 esi_server/esiadmin/index.jsp
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/esi_server/esiadmin/index.jsp.diff?r1=1.4&r2=1.5&f=h
Index: screen.css
===================================================================
RCS file: /home/cvs/repository/esi_server/esiadmin/css/screen.css,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- screen.css 5 Dec 2005 16:49:02 -0000 1.1
+++ screen.css 14 Dec 2005 16:26:37 -0000 1.2
@@ -324,3 +324,20 @@
}
table.simple td.textRed {color: #b11;}
+
+ .graph {
+ position: relative; /* IE is dumb */
+ width: 200px;
+ border: 1px solid #B1D632;
+ padding: 2px;
+ }
+ .graph .bar {
+ display: block;
+ position: relative;
+ background: #B1D632;
+ text-align: center;
+ color: #333;
+ height: 2em;
+ line-height: 2em;
+ }
+ .graph .bar span { position: absolute; left: 1em; }
Index: index.jsp
===================================================================
RCS file: /home/cvs/repository/esi_server/esiadmin/index.jsp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- index.jsp 6 Dec 2005 14:43:00 -0000 1.4
+++ index.jsp 14 Dec 2005 16:26:38 -0000 1.5
@@ -1,4 +1,4 @@
-
+<%@ page import="java.text.DecimalFormat"%>
<%@ include file="inc/header.jsp" %>
@@ -10,66 +10,203 @@
<br>
<table width="100%" border="0">
- <tr>
- <td> </td>
- <td>
-
- <br>
-<h2>Access Statistics</h2>
-<br>
-<br>
-<%
+ <tr>
+ <td> </td>
+ <td>
+
+ <br>
+ <h2>Access Statistics</h2>
+ <br>
+ <%
+
+ EsiStats stats = EsiStats.getInstance();
+
+ DecimalFormat percentFormat = new DecimalFormat("###.##");
+
+ long totalUrlCacheAccesses = stats.getUrlCacheHits() +
stats.getUrlCacheMisses() +1;
+ long totalContentCacheAccesses =
stats.getContentCacheHits() + stats.getContentCacheMisses() +1;
+
+ String contentEfficiencyStr = "0";
+ if (!Double.isNaN(cacheStatus.getContentCacheEfficiency())) {
+ contentEfficiencyStr =
percentFormat.format(cacheStatus.getContentCacheEfficiency());
+ }
+
+ String urlEfficiencyStr = "0";
+ if (!Double.isNaN(cacheStatus.getUrlCacheEfficiency())) {
+ urlEfficiencyStr =
percentFormat.format(cacheStatus.getUrlCacheEfficiency());
+ }
+ //TODO: put in a html table format instead of this
+ %>
+ <br><br>
+ <table width="80%" border="0">
+ <tr valign="middle">
+ <th width="371" scope="row"><div align="left">url Cache
Accesses</div></th>
+ <td width="89"><%=totalUrlCacheAccesses%></td>
+ <td width="110"> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">url Cache Hits</div></th>
+ <td><%=stats.getUrlCacheHits()%> or <% long
hitRatio=100*stats.getUrlCacheHits()/totalUrlCacheAccesses;%><%=hitRatio%>%
</td>
+ <td><div class="graph">
+ <strong class="bar" style="width:
<%=hitRatio%>%;"><%=hitRatio%>%</strong>
+ </div></td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">url Cache Misses</div></th>
+ <td><%=stats.getUrlCacheMisses()%> or
<%=100*stats.getUrlCacheMisses()/totalUrlCacheAccesses%>%</td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left"></div></th>
+ <td> </td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">url Cache Hits
(CacheEntry-based info)</div></th>
+ <td><%=cacheStatus.getUrlCacheTotalHits()%></td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">url Cache Successful Hits
(CacheEntry-based info)</div></th>
+ <td><%=cacheStatus.getUrlCacheSuccessHits()%></td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">url Cache
Efficiency</div></th>
+ <td><%=urlEfficiencyStr%>% </td>
+ <td><div class="graph">
+ <strong class="bar" style="width:
<%=urlEfficiencyStr%>%;"><%=urlEfficiencyStr%>%</strong>
+ </div></td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">url Cache Limit</div></th>
+ <td><%=cacheStatus.getUrlCacheLimit()%></td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left"></div></th>
+ <td> </td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">Content Cache Accesses
+ </div></th>
+ <td><%=totalContentCacheAccesses%></td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">Content Cache
Hits</div></th>
+ <td><%=stats.getContentCacheHits()%> or <% long chitRatio =
100*stats.getContentCacheHits()/totalContentCacheAccesses;%><%=chitRatio%>%
</td>
+ <td><div class="graph">
+ <strong class="bar" style="width:
<%=chitRatio%>%;"><%=chitRatio%>%</strong>
+ </div></td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">Content Cache Misses
</div></th>
+ <td><%=stats.getContentCacheMisses()%> or
<%=100*stats.getContentCacheMisses()/totalContentCacheAccesses%>% </td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left"></div></th>
+ <td> </td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">Content Cache Hits
(CacheEntry-based info)</div></th>
+ <td><%=cacheStatus.getContentCacheTotalHits()%></td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">Content Cache Successful
Hits (CacheEntry-based info)</div></th>
+ <td><%=cacheStatus.getContentCacheSuccessHits()%></td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">Content Cache
Efficiency</div></th>
+ <td> <%=contentEfficiencyStr%>%</td>
+ <td><div class="graph">
+ <strong class="bar" style="width:
<%=contentEfficiencyStr%>%;"><%=contentEfficiencyStr%>%</strong>
+ </div></td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">Content Cache
Limit</div></th>
+ <td><%=cacheStatus.getContentCacheLimit()%></td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left"></div></th>
+ <td> </td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left"></div></th>
+ <td> </td>
+ <td> </td>
+ </tr>
+ </table>
+ <br>
+ <h2>Cache Details</h2>
+ <table width="70%" border="0">
+ <tr valign="middle">
+ <th scope="row"><div align="left">Url Objects stored
</div></th>
+ <td><%=cacheStatus.getUrlCacheSize()%></td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">Content Objects
stored</div></th>
+ <td><%=cacheStatus.getContentCacheSize()%></td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">Content Sharing</div></th>
+ <td> <% long cSharing =
100-100*cacheStatus.getContentCacheSize()/(cacheStatus.getUrlCacheSize()+1);%><%=cSharing%>%
</td>
+ <td><div class="graph">
+ <strong class="bar" style="width:
<%=cSharing%>%;"><%=cSharing%>%</strong>
+ </div></td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">
+ <%
+ long totalMem = cacheStatus.getTotalMemory();
+ long freeMem = cacheStatus.getFreeMemory();
+ long usedMem = totalMem - freeMem;
+ %>
+ Total Memory</div></th>
+ <td><%=CacheStatus.memorySizeToString(totalMem)%></td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">Free Memory</div></th>
+ <td><%=CacheStatus.memorySizeToString(freeMem)%></td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left">Memory Usage</div></th>
+ <td> <%=CacheStatus.memorySizeToString(usedMem)%> (or
<%=100*usedMem/(totalMem+1)%>%) </td>
+ <td> </td>
+ </tr>
+ <tr valign="middle">
+ <th scope="row"><div align="left"></div></th>
+ <td> </td>
+ <td> </td>
+ </tr>
+ </table>
+ <br>
+ <br><a href="cachestatus.jsp">Current State of Cache</a>
+ <br>
+ <br><a href="invalidateWholeCache.jsp">Clear Cache</a>
<br>
+ <br>
+ <br>
+ <h2>Settings</h2>
+ <br>
+ <br>
+ <%=SettingsBean.getInstance().toString()%>
+ <br>
+ <br>
+ <br>
- EsiStats stats = EsiStats.getInstance();
-
- long totalUrlCacheAccesses = stats.getUrlCacheHits() +
stats.getUrlCacheMisses() +1;
- long totalContentCacheAccesses = stats.getContentCacheHits() +
stats.getContentCacheMisses() +1;
-%>
-
-<br>Number of total url Cache Accesses: <%=totalUrlCacheAccesses%>
-<br>Number of total url Cache Hits: <%=stats.getUrlCacheHits()%> or
<%=100*stats.getUrlCacheHits()/totalUrlCacheAccesses%>%
-<br>Number of total url Cache Misses: <%=stats.getUrlCacheMisses()%> or
<%=100*stats.getUrlCacheMisses()/totalUrlCacheAccesses%>%
-<br>
-<br>
-<br>Number of total Content Cache Accesses: <%=totalContentCacheAccesses%>
-<br>Number of total Content Cache Hits: <%=stats.getContentCacheHits()%> or
<%=100*stats.getContentCacheHits()/totalContentCacheAccesses%>%
-<br>Number of total Content Cache Hits: <%=stats.getContentCacheMisses()%>
or <%=100*stats.getContentCacheMisses()/totalContentCacheAccesses%>%
-<br>
-<br>
-<br>
-<br>
-<h2>Cache Details</h2>
-<br>
-<br>Number of Url Objects stored: <%=cacheStatus.getUrlCacheSize()%>
-<br>Number of Content Objects stored: <%=cacheStatus.getContentCacheSize()%>
-<br>=> Percentage of Content Sharing:
<%=100-100*cacheStatus.getContentCacheSize()/(cacheStatus.getUrlCacheSize()+1)%>%
-<br>
-<%
- long totalMem = cacheStatus.getTotalMemory();
- long freeMem = cacheStatus.getFreeMemory();
- long usedMem = totalMem - freeMem;
-%>
-<br>Total Memory : <%=CacheStatus.memorySizeToString(totalMem)%>
-<br>Free Memory : <%=CacheStatus.memorySizeToString(freeMem)%>
-<br>Memory Usage: <%=CacheStatus.memorySizeToString(usedMem)%> (or
<%=100*usedMem/(totalMem+1)%>%)
-<br>
-<br>
-<a href="cachestatus.jsp">Current State of Cache</a>
-<br>
-<br>
-<a href="invalidateWholeCache.jsp">Clear Cache</a>
-<br>
-<br>
-<h2>Settings</h2>
-<br>
-<br>
-<%=GeneralSettings.getInstance().toString()%>
-<br>
-<br>
-<br>
-
- </td>
- </tr>
+ </td>
+ </tr>
</table>
<br>