View Javadoc

1   // Autogenerated Jamon implementation
2   // /code/build/hbase/rpm/BUILD/hbase-1.4.9/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/RegionServerListTmpl.jamon
3   
4   package org.apache.hadoop.hbase.tmpl.master;
5   
6   // 27, 9
7   import java.util.*;
8   // 28, 9
9   import org.apache.hadoop.hbase.master.HMaster;
10  // 29, 9
11  import org.apache.hadoop.hbase.ServerLoad;
12  // 30, 9
13  import org.apache.hadoop.hbase.ServerName;
14  // 31, 9
15  import org.apache.hadoop.hbase.client.HBaseAdmin;
16  // 32, 9
17  import org.apache.hadoop.hbase.client.HConnectionManager;
18  // 33, 9
19  import org.apache.hadoop.hbase.HTableDescriptor;
20  // 34, 9
21  import org.apache.hadoop.hbase.HBaseConfiguration;
22  // 35, 9
23  import org.apache.hadoop.hbase.util.VersionInfo;
24  // 36, 9
25  import org.apache.hadoop.util.StringUtils.TraditionalBinaryPrefix;
26  
27  public class RegionServerListTmplImpl
28    extends org.jamon.AbstractTemplateImpl
29    implements org.apache.hadoop.hbase.tmpl.master.RegionServerListTmpl.Intf
30  
31  {
32    private final HMaster master;
33    private final List<ServerName> servers;
34    protected static org.apache.hadoop.hbase.tmpl.master.RegionServerListTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.master.RegionServerListTmpl.ImplData p_implData)
35    {
36      if(! p_implData.getServers__IsNotDefault())
37      {
38        p_implData.setServers(null);
39      }
40      return p_implData;
41    }
42    public RegionServerListTmplImpl(org.jamon.TemplateManager p_templateManager, org.apache.hadoop.hbase.tmpl.master.RegionServerListTmpl.ImplData p_implData)
43    {
44      super(p_templateManager, __jamon_setOptionalArguments(p_implData));
45      master = p_implData.getMaster();
46      servers = p_implData.getServers();
47    }
48    
49    @Override public void renderNoFlush(final java.io.Writer jamonWriter)
50      throws java.io.IOException
51    {
52      // 40, 1
53      if ((servers != null && servers.size() > 0))
54      {
55        // 40, 47
56        jamonWriter.write("\n\n");
57        // 42, 1
58        
59  ServerName [] serverNames = servers.toArray(new ServerName[servers.size()]);
60  Arrays.sort(serverNames);
61  
62        // 47, 1
63        jamonWriter.write("<div class=\"tabbable\">\n    <ul class=\"nav nav-pills\">\n        <li class=\"active\"><a href=\"#tab_baseStats\" data-toggle=\"tab\">Base Stats</a></li>\n        <li class=\"\"><a href=\"#tab_memoryStats\" data-toggle=\"tab\">Memory</a></li>\n        <li class=\"\"><a href=\"#tab_requestStats\" data-toggle=\"tab\">Requests</a></li>\n        <li class=\"\"><a href=\"#tab_storeStats\" data-toggle=\"tab\">Storefiles</a></li>\n        <li class=\"\"><a href=\"#tab_compactStas\" data-toggle=\"tab\">Compactions</a></li>\n    </ul>\n    <div class=\"tab-content\" style=\"padding-bottom: 9px; border-bottom: 1px solid #ddd;\">\n        <div class=\"tab-pane active\" id=\"tab_baseStats\">\n            ");
64        // 57, 13
65        {
66          // 57, 13
67          __jamon_innerUnit__baseStats(jamonWriter, serverNames);
68        }
69        // 57, 56
70        jamonWriter.write("\n        </div>\n        <div class=\"tab-pane\" id=\"tab_memoryStats\">\n            ");
71        // 60, 13
72        {
73          // 60, 13
74          __jamon_innerUnit__memoryStats(jamonWriter, serverNames);
75        }
76        // 60, 58
77        jamonWriter.write("\n        </div>\n        <div class=\"tab-pane\" id=\"tab_requestStats\">\n            ");
78        // 63, 13
79        {
80          // 63, 13
81          __jamon_innerUnit__requestStats(jamonWriter, serverNames);
82        }
83        // 63, 59
84        jamonWriter.write("\n        </div>\n        <div class=\"tab-pane\" id=\"tab_storeStats\">\n            ");
85        // 66, 13
86        {
87          // 66, 13
88          __jamon_innerUnit__storeStats(jamonWriter, serverNames);
89        }
90        // 66, 57
91        jamonWriter.write("\n        </div>\n        <div class=\"tab-pane\" id=\"tab_compactStas\">\n            ");
92        // 69, 13
93        {
94          // 69, 13
95          __jamon_innerUnit__compactionStats(jamonWriter, serverNames);
96        }
97        // 69, 62
98        jamonWriter.write("\n        </div>\n    </div>\n</div>\n\n");
99      }
100     // 74, 7
101     jamonWriter.write("\n\n");
102   }
103   
104   
105   // 322, 1
106   private void __jamon_innerUnit__serverNameLink(final java.io.Writer jamonWriter, final ServerName serverName, final ServerLoad serverLoad)
107     throws java.io.IOException
108   {
109     // 327, 9
110     
111         int infoPort = master.getRegionServerInfoPort(serverName);
112         String url = "//" + serverName.getHostname() + ":" + infoPort + "/rs-status";
113         
114     // 332, 9
115     if (infoPort > 0)
116     {
117       // 332, 28
118       jamonWriter.write("\n            <a href=\"");
119       // 333, 22
120       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(url), jamonWriter);
121       // 333, 31
122       jamonWriter.write("\">");
123       // 333, 33
124       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(serverName.getServerName()), jamonWriter);
125       // 333, 65
126       jamonWriter.write("</a>\n        ");
127     }
128     // 334, 9
129     else
130     {
131       // 334, 16
132       jamonWriter.write("\n            ");
133       // 335, 13
134       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(serverName.getServerName()), jamonWriter);
135       // 335, 45
136       jamonWriter.write("\n        ");
137     }
138     // 336, 15
139     jamonWriter.write("\n");
140   }
141   
142   
143   // 228, 1
144   private void __jamon_innerUnit__storeStats(final java.io.Writer jamonWriter, final ServerName[] serverNames)
145     throws java.io.IOException
146   {
147     // 232, 1
148     jamonWriter.write("<table id=\"storeStatsTable\" class=\"tablesorter table table-striped\">\n<thead>\n<tr>\n    <th>ServerName</th>\n    <th>Num. Stores</th>\n    <th>Num. Storefiles</th>\n    <th>Storefile Size Uncompressed</th>\n    <th>Storefile Size</th>\n    <th>Index Size</th>\n    <th>Bloom Size</th>\n</tr>\n</thead>\n<tbody>\n");
149     // 245, 1
150     
151 for (ServerName serverName: serverNames) {
152 
153 ServerLoad sl = master.getServerManager().getLoad(serverName);
154 if (sl != null) {
155 
156     // 251, 1
157     jamonWriter.write("<tr>\n<td>");
158     // 252, 5
159     {
160       // 252, 5
161       __jamon_innerUnit__serverNameLink(jamonWriter, serverName, sl);
162     }
163     // 252, 66
164     jamonWriter.write("</td>\n<td>");
165     // 253, 5
166     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(sl.getStores()), jamonWriter);
167     // 253, 25
168     jamonWriter.write("</td>\n<td>");
169     // 254, 5
170     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(sl.getStorefiles()), jamonWriter);
171     // 254, 29
172     jamonWriter.write("</td>\n<td>");
173     // 255, 5
174     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(
175   sl.getStoreUncompressedSizeMB() * TraditionalBinaryPrefix.MEGA.value, "B", 1)), jamonWriter);
176     // 256, 83
177     jamonWriter.write("</td>\n<td>");
178     // 257, 5
179     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(sl.getStorefileSizeInMB()
180   * TraditionalBinaryPrefix.MEGA.value, "B", 1)), jamonWriter);
181     // 258, 51
182     jamonWriter.write("</td>\n<td>");
183     // 259, 5
184     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(sl.getTotalStaticIndexSizeKB()
185   * TraditionalBinaryPrefix.KILO.value, "B", 1)), jamonWriter);
186     // 260, 51
187     jamonWriter.write("</td>\n<td>");
188     // 261, 5
189     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(sl.getTotalStaticBloomSizeKB()
190   * TraditionalBinaryPrefix.KILO.value, "B", 1)), jamonWriter);
191     // 262, 51
192     jamonWriter.write("</td>\n</tr>\n");
193     // 264, 1
194     
195         }  else {
196         
197     // 267, 1
198     {
199       // 267, 1
200       __jamon_innerUnit__emptyStat(jamonWriter, serverName);
201     }
202     // 267, 40
203     jamonWriter.write("\n");
204     // 268, 1
205     
206     }
207 }
208 
209     // 272, 1
210     jamonWriter.write("</tbody>\n</table>\n");
211   }
212   
213   
214   // 189, 1
215   private void __jamon_innerUnit__requestStats(final java.io.Writer jamonWriter, final ServerName[] serverNames)
216     throws java.io.IOException
217   {
218     // 193, 1
219     jamonWriter.write("<table id=\"requestStatsTable\" class=\"tablesorter table table-striped\">\n<thead>\n<tr>\n    <th>ServerName</th>\n    <th>Request Per Second</th>\n    <th>Read Request Count</th>\n    <th>Write Request Count</th>\n</tr>\n</thead>\n<tbody>\n");
220     // 203, 1
221     
222 for (ServerName serverName: serverNames) {
223 
224 ServerLoad sl = master.getServerManager().getLoad(serverName);
225 if (sl != null) {
226 
227     // 209, 1
228     jamonWriter.write("<tr>\n<td>");
229     // 210, 5
230     {
231       // 210, 5
232       __jamon_innerUnit__serverNameLink(jamonWriter, serverName, sl);
233     }
234     // 210, 66
235     jamonWriter.write("</td>\n<td>");
236     // 211, 5
237     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(String.format("%.0f", sl.getRequestsPerSecond())), jamonWriter);
238     // 211, 59
239     jamonWriter.write("</td>\n<td>");
240     // 212, 5
241     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(sl.getReadRequestsCount()), jamonWriter);
242     // 212, 36
243     jamonWriter.write("</td>\n<td>");
244     // 213, 5
245     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(sl.getWriteRequestsCount()), jamonWriter);
246     // 213, 37
247     jamonWriter.write("</td>\n</tr>\n");
248     // 215, 1
249     
250         }  else {
251         
252     // 218, 1
253     {
254       // 218, 1
255       __jamon_innerUnit__emptyStat(jamonWriter, serverName);
256     }
257     // 218, 40
258     jamonWriter.write("\n");
259     // 219, 1
260     
261         }
262 }
263 
264     // 223, 1
265     jamonWriter.write("</tbody>\n</table>\n");
266   }
267   
268   
269   // 145, 1
270   private void __jamon_innerUnit__memoryStats(final java.io.Writer jamonWriter, final ServerName[] serverNames)
271     throws java.io.IOException
272   {
273     // 149, 1
274     jamonWriter.write("<table id=\"memoryStatsTable\" class=\"tablesorter table table-striped\">\n<thead>\n<tr>\n    <th>ServerName</th>\n    <th>Used Heap</th>\n    <th>Max Heap</th>\n    <th>Memstore Size</th>\n\n</tr>\n</thead>\n<tbody>\n");
275     // 160, 1
276     
277 for (ServerName serverName: serverNames) {
278 
279     ServerLoad sl = master.getServerManager().getLoad(serverName);
280     if (sl != null) {
281 
282     // 166, 1
283     jamonWriter.write("<tr>\n    <td>");
284     // 167, 9
285     {
286       // 167, 9
287       __jamon_innerUnit__serverNameLink(jamonWriter, serverName, sl);
288     }
289     // 167, 70
290     jamonWriter.write("</td>\n    <td>");
291     // 168, 9
292     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(sl.getUsedHeapMB()
293       * TraditionalBinaryPrefix.MEGA.value, "B", 1)), jamonWriter);
294     // 169, 55
295     jamonWriter.write("</td>\n    <td>");
296     // 170, 9
297     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(sl.getMaxHeapMB()
298       * TraditionalBinaryPrefix.MEGA.value, "B", 1)), jamonWriter);
299     // 171, 55
300     jamonWriter.write("</td>\n    <td>");
301     // 172, 9
302     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(sl.getMemstoreSizeInMB()
303       * TraditionalBinaryPrefix.MEGA.value, "B", 1)), jamonWriter);
304     // 173, 55
305     jamonWriter.write("</td>\n\n</tr>\n");
306     // 176, 1
307     
308         }  else {
309 
310     // 179, 1
311     {
312       // 179, 1
313       __jamon_innerUnit__emptyStat(jamonWriter, serverName);
314     }
315     // 179, 40
316     jamonWriter.write("\n");
317     // 180, 1
318     
319         }
320 }
321 
322     // 184, 1
323     jamonWriter.write("</tbody>\n</table>\n");
324   }
325   
326   
327   // 276, 1
328   private void __jamon_innerUnit__compactionStats(final java.io.Writer jamonWriter, final ServerName[] serverNames)
329     throws java.io.IOException
330   {
331     // 280, 1
332     jamonWriter.write("<table id=\"compactionStatsTable\" class=\"tablesorter table table-striped\">\n<thead>\n<tr>\n    <th>ServerName</th>\n    <th>Num. Compacting KVs</th>\n    <th>Num. Compacted KVs</th>\n    <th>Remaining KVs</th>\n    <th>Compaction Progress</th>\n</tr>\n</thead>\n<tbody>\n");
333     // 291, 1
334     
335 for (ServerName serverName: serverNames) {
336 
337 ServerLoad sl = master.getServerManager().getLoad(serverName);
338 if (sl != null) {
339 String percentDone = "";
340 if  (sl.getTotalCompactingKVs() > 0) {
341      percentDone = String.format("%.2f", 100 *
342         ((float) sl.getCurrentCompactedKVs() / sl.getTotalCompactingKVs())) + "%";
343 }
344 
345     // 302, 1
346     jamonWriter.write("<tr>\n<td>");
347     // 303, 5
348     {
349       // 303, 5
350       __jamon_innerUnit__serverNameLink(jamonWriter, serverName, sl);
351     }
352     // 303, 66
353     jamonWriter.write("</td>\n<td>");
354     // 304, 5
355     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(sl.getTotalCompactingKVs()), jamonWriter);
356     // 304, 37
357     jamonWriter.write("</td>\n<td>");
358     // 305, 5
359     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(sl.getCurrentCompactedKVs()), jamonWriter);
360     // 305, 38
361     jamonWriter.write("</td>\n<td>");
362     // 306, 5
363     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(sl.getTotalCompactingKVs() - sl.getCurrentCompactedKVs()), jamonWriter);
364     // 306, 67
365     jamonWriter.write("</td>\n<td>");
366     // 307, 5
367     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(percentDone), jamonWriter);
368     // 307, 22
369     jamonWriter.write("</td>\n</tr>\n");
370     // 309, 1
371     
372         }  else {
373         
374     // 312, 1
375     {
376       // 312, 1
377       __jamon_innerUnit__emptyStat(jamonWriter, serverName);
378     }
379     // 312, 40
380     jamonWriter.write("\n");
381     // 313, 1
382     
383     }
384 }
385 
386     // 317, 1
387     jamonWriter.write("</tbody>\n</table>\n");
388   }
389   
390   
391   // 76, 1
392   private void __jamon_innerUnit__baseStats(final java.io.Writer jamonWriter, final ServerName[] serverNames)
393     throws java.io.IOException
394   {
395     // 80, 1
396     jamonWriter.write("<table id=\"baseStatsTable\" class=\"tablesorter table table-striped\">\n<thead>\n<tr>\n    <th>ServerName</th>\n    <th>Start time</th>\n    <th>Last contact</th>\n    <th>Version</th>\n    <th>Requests Per Second</th>\n    <th>Num. Regions</th>\n</tr>\n</thead>\n<tbody> \n");
397     // 92, 1
398     
399     int totalRegions = 0;
400     int totalRequests = 0;
401     int inconsistentNodeNum = 0;
402     String masterVersion = VersionInfo.getVersion();
403     for (ServerName serverName: serverNames) {
404 
405     ServerLoad sl = master.getServerManager().getLoad(serverName);
406     String version = master.getRegionServerVersion(serverName);
407     if (!masterVersion.equals(version)) {
408         inconsistentNodeNum ++;
409     }
410     
411     double requestsPerSecond = 0.0;
412     int numRegionsOnline = 0;
413     long lastContact = 0;
414 
415     if (sl != null) {
416         requestsPerSecond = sl.getRequestsPerSecond();
417         numRegionsOnline = sl.getNumberOfRegions();
418         totalRegions += sl.getNumberOfRegions();
419         // Is this correct?  Adding a rate to a measure.
420         totalRequests += sl.getNumberOfRequests();
421         lastContact = (System.currentTimeMillis() - sl.getReportTime())/1000;
422     }
423     long startcode = serverName.getStartcode();
424 
425     // 119, 1
426     jamonWriter.write("<tr>\n    <td>");
427     // 120, 9
428     {
429       // 120, 9
430       __jamon_innerUnit__serverNameLink(jamonWriter, serverName, sl);
431     }
432     // 120, 70
433     jamonWriter.write("</td>\n    <td>");
434     // 121, 9
435     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(new Date(startcode)), jamonWriter);
436     // 121, 34
437     jamonWriter.write("</td>\n    <td>");
438     // 122, 9
439     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(lastContact, "s", 1)), jamonWriter);
440     // 122, 71
441     jamonWriter.write("</td>\n    <td>");
442     // 123, 9
443     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(version), jamonWriter);
444     // 123, 22
445     jamonWriter.write("</td>\n    <td>");
446     // 124, 9
447     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(String.format("%.0f", requestsPerSecond)), jamonWriter);
448     // 124, 55
449     jamonWriter.write("</td>\n    <td>");
450     // 125, 9
451     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(numRegionsOnline), jamonWriter);
452     // 125, 31
453     jamonWriter.write("</td>\n</tr>\n");
454     // 127, 1
455     
456 }
457 
458     // 130, 1
459     jamonWriter.write("</tbody> \n<tr><td>Total:");
460     // 131, 15
461     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(servers.size()), jamonWriter);
462     // 131, 35
463     jamonWriter.write("</td>\n<td></td>\n<td></td>\n");
464     // 134, 1
465     if (inconsistentNodeNum > 0)
466     {
467       // 134, 31
468       jamonWriter.write("\n  <td style=\"color:red;\">");
469       // 135, 26
470       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(inconsistentNodeNum), jamonWriter);
471       // 135, 51
472       jamonWriter.write(" nodes with inconsistent version</td>\n");
473     }
474     // 136, 1
475     else
476     {
477       // 136, 8
478       jamonWriter.write("\n   <td></td>\n");
479     }
480     // 138, 7
481     jamonWriter.write("\n<td>");
482     // 139, 5
483     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(totalRequests), jamonWriter);
484     // 139, 24
485     jamonWriter.write("</td>\n<td>");
486     // 140, 5
487     org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(totalRegions), jamonWriter);
488     // 140, 23
489     jamonWriter.write("</td>\n</tr>\n</table>\n");
490   }
491   
492   
493   // 339, 1
494   private void __jamon_innerUnit__emptyStat(final java.io.Writer jamonWriter, final ServerName serverName)
495     throws java.io.IOException
496   {
497     // 343, 5
498     jamonWriter.write("<tr>\n    <td>");
499     // 344, 9
500     {
501       // 344, 9
502       __jamon_innerUnit__serverNameLink(jamonWriter, serverName, null);
503     }
504     // 344, 72
505     jamonWriter.write("</td>\n    <td></td>\n    <td></td>\n    <td></td>\n    <td></td>\n    <td></td>\n    <td></td>\n    </tr>\n");
506   }
507   
508   
509 }