View Javadoc

1   // Autogenerated Jamon implementation
2   // /code/build/hbase/rpm/BUILD/hbase-1.3.1/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.jamon
3   
4   package org.apache.hadoop.hbase.tmpl.regionserver;
5   
6   // 24, 9
7   import java.util.*;
8   // 25, 9
9   import org.apache.commons.lang.time.FastDateFormat;
10  // 26, 9
11  import org.apache.hadoop.hbase.regionserver.HRegionServer;
12  // 27, 9
13  import org.apache.hadoop.hbase.util.Bytes;
14  // 28, 9
15  import org.apache.hadoop.hbase.HRegionInfo;
16  // 29, 9
17  import org.apache.hadoop.hbase.regionserver.Region;
18  // 30, 9
19  import org.apache.hadoop.hbase.ServerName;
20  // 31, 9
21  import org.apache.hadoop.hbase.HBaseConfiguration;
22  // 32, 9
23  import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
24  // 33, 9
25  import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.ServerInfo;
26  // 34, 9
27  import org.apache.hadoop.hbase.protobuf.generated.ClusterStatusProtos.RegionLoad;
28  // 35, 9
29  import org.apache.hadoop.hbase.client.RegionReplicaUtil;
30  // 36, 9
31  import org.apache.hadoop.hbase.regionserver.MetricsRegionWrapper;
32  // 37, 9
33  import org.apache.hadoop.util.StringUtils.TraditionalBinaryPrefix;
34  
35  public class RegionListTmplImpl
36    extends org.jamon.AbstractTemplateImpl
37    implements org.apache.hadoop.hbase.tmpl.regionserver.RegionListTmpl.Intf
38  
39  {
40    private final HRegionServer regionServer;
41    private final List<HRegionInfo> onlineRegions;
42    protected static org.apache.hadoop.hbase.tmpl.regionserver.RegionListTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.regionserver.RegionListTmpl.ImplData p_implData)
43    {
44      return p_implData;
45    }
46    public RegionListTmplImpl(org.jamon.TemplateManager p_templateManager, org.apache.hadoop.hbase.tmpl.regionserver.RegionListTmpl.ImplData p_implData)
47    {
48      super(p_templateManager, __jamon_setOptionalArguments(p_implData));
49      regionServer = p_implData.getRegionServer();
50      onlineRegions = p_implData.getOnlineRegions();
51    }
52    
53    @Override public void renderNoFlush(final java.io.Writer jamonWriter)
54      throws java.io.IOException
55    {
56      // 39, 1
57      if ((onlineRegions != null && onlineRegions.size() > 0) )
58      {
59        // 39, 60
60        jamonWriter.write("\n\n    ");
61        // 41, 5
62        
63          Collections.sort(onlineRegions);
64      
65        // 45, 5
66        jamonWriter.write("<div class=\"tabbable\">\n        <ul class=\"nav nav-pills\">\n            <li class=\"active\"><a href=\"#tab_regionBaseInfo\" data-toggle=\"tab\">Base Info</a> </li>\n            <li><a href=\"#tab_regionRequestStats\" data-toggle=\"tab\">Request metrics</a></li>\n            <li class=\"\"><a href=\"#tab_regionStoreStats\" data-toggle=\"tab\">Storefile Metrics</a></li>\n            <li class=\"\"><a href=\"#tab_regionMemstoreStats\" data-toggle=\"tab\">Memstore Metrics</a></li>\n            <li class=\"\"><a href=\"#tab_regionCompactStats\" data-toggle=\"tab\">Compaction Metrics</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_regionBaseInfo\">\n                ");
67        // 55, 17
68        {
69          // 55, 17
70          __jamon_innerUnit__baseInfo(jamonWriter, onlineRegions);
71        }
72        // 55, 63
73        jamonWriter.write("\n            </div>\n            <div class=\"tab-pane\" id=\"tab_regionRequestStats\">\n                ");
74        // 58, 17
75        {
76          // 58, 17
77          __jamon_innerUnit__requestStats(jamonWriter, onlineRegions);
78        }
79        // 58, 67
80        jamonWriter.write("\n            </div>\n            <div class=\"tab-pane\" id=\"tab_regionStoreStats\">\n                ");
81        // 61, 17
82        {
83          // 61, 17
84          __jamon_innerUnit__storeStats(jamonWriter, onlineRegions);
85        }
86        // 61, 65
87        jamonWriter.write("\n            </div>\n            <div class=\"tab-pane\" id=\"tab_regionMemstoreStats\">\n                ");
88        // 64, 17
89        {
90          // 64, 17
91          __jamon_innerUnit__memstoreStats(jamonWriter, onlineRegions);
92        }
93        // 64, 68
94        jamonWriter.write("\n            </div>\n            <div class=\"tab-pane\" id=\"tab_regionCompactStats\">\n                ");
95        // 67, 17
96        {
97          // 67, 17
98          __jamon_innerUnit__compactStats(jamonWriter, onlineRegions);
99        }
100       // 67, 67
101       jamonWriter.write("\n            </div>\n        </div>\n    </div>\n    <p>Region names are made of the containing table's name, a comma,\n    the start key, a comma, and a randomly generated region id.  To illustrate,\n    the region named\n    <em>domains,apache.org,5464829424211263407</em> is party to the table\n    <em>domains</em>, has an id of <em>5464829424211263407</em> and the first key\n    in the region is <em>apache.org</em>.  The <em>hbase:meta</em> 'table' is an internal\n    system table (or a 'catalog' table in db-speak).\n    The hbase:meta table keeps a list of all regions in the system. The empty key is used to denote\n    table start and table end.  A region with an empty start key is the first region in a table.\n    If a region has both an empty start key and an empty end key, it's the only region in the\n    table. See <a href=\"http://hbase.org\">HBase Home</a> for further explication.<p>\n");
102     }
103     // 82, 1
104     else
105     {
106       // 82, 8
107       jamonWriter.write("\n    <p>Not serving regions</p>\n");
108     }
109     // 84, 7
110     jamonWriter.write("\n\n");
111   }
112   
113   
114   // 86, 1
115   private void __jamon_innerUnit__baseInfo(final java.io.Writer jamonWriter, final List<HRegionInfo> onlineRegions)
116     throws java.io.IOException
117   {
118     // 90, 5
119     jamonWriter.write("<table class=\"table table-striped\">\n        <tr>\n            <th>Region Name</th>\n            <th>Start Key</th>\n            <th>End Key</th>\n            <th>ReplicaID</th>\n        </tr>\n\n        ");
120     // 98, 9
121     for (HRegionInfo r: onlineRegions )
122     {
123       // 98, 46
124       jamonWriter.write("\n        <tr>\n            <td><a href=\"region.jsp?name=");
125       // 100, 42
126       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getEncodedName()), jamonWriter);
127       // 100, 66
128       jamonWriter.write("\">\n              ");
129       // 101, 15
130       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getRegionNameAsString()), jamonWriter);
131       // 101, 46
132       jamonWriter.write("</a>\n            </td>\n            <td>");
133       // 103, 17
134       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(Bytes.toStringBinary(r.getStartKey())), jamonWriter);
135       // 103, 60
136       jamonWriter.write("</td>\n            <td>");
137       // 104, 17
138       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(Bytes.toStringBinary(r.getEndKey())), jamonWriter);
139       // 104, 58
140       jamonWriter.write("</td>\n            <td>");
141       // 105, 17
142       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getReplicaId()), jamonWriter);
143       // 105, 39
144       jamonWriter.write("</td>\n        </tr>\n        ");
145     }
146     // 107, 16
147     jamonWriter.write("\n    </table>\n");
148   }
149   
150   
151   // 141, 1
152   private void __jamon_innerUnit__storeStats(final java.io.Writer jamonWriter, final List<HRegionInfo> onlineRegions)
153     throws java.io.IOException
154   {
155     // 145, 5
156     jamonWriter.write("<table class=\"table table-striped\">\n        <tr>\n            <th>Region Name</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            <th>Data Locality</th>\n        </tr>\n\n        ");
157     // 157, 9
158     for (HRegionInfo r: onlineRegions )
159     {
160       // 157, 46
161       jamonWriter.write("\n\n        <tr>\n        ");
162       // 160, 9
163       
164             RegionLoad load = regionServer.createRegionLoad(r.getEncodedName());
165         
166       // 163, 13
167       jamonWriter.write("<td><a href=\"region.jsp?name=");
168       // 163, 42
169       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getEncodedName()), jamonWriter);
170       // 163, 66
171       jamonWriter.write("\">\n              ");
172       // 164, 15
173       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getRegionNameAsString()), jamonWriter);
174       // 164, 46
175       jamonWriter.write("</a>\n            </td>\n            ");
176       // 166, 13
177       if (load != null )
178       {
179         // 166, 33
180         jamonWriter.write("\n            <td>");
181         // 167, 17
182         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getStores()), jamonWriter);
183         // 167, 39
184         jamonWriter.write("</td>\n            <td>");
185         // 168, 17
186         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getStorefiles()), jamonWriter);
187         // 168, 43
188         jamonWriter.write("</td>\n            <td>");
189         // 169, 17
190         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(load.getStoreUncompressedSizeMB()
191                 * TraditionalBinaryPrefix.MEGA.value, "B", 1)), jamonWriter);
192         // 170, 64
193         jamonWriter.write("</td>\n            <td>");
194         // 171, 17
195         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(load.getStorefileSizeMB()
196                 * TraditionalBinaryPrefix.MEGA.value, "B", 1)), jamonWriter);
197         // 172, 65
198         jamonWriter.write("</td>\n            <td>");
199         // 173, 17
200         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(load.getTotalStaticIndexSizeKB()
201                 * TraditionalBinaryPrefix.KILO.value, "B", 1)), jamonWriter);
202         // 174, 65
203         jamonWriter.write("</td>\n            <td>");
204         // 175, 17
205         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(load.getTotalStaticBloomSizeKB()
206                 * TraditionalBinaryPrefix.KILO.value, "B", 1)), jamonWriter);
207         // 176, 65
208         jamonWriter.write("</td>\n            <td>");
209         // 177, 17
210         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getDataLocality()), jamonWriter);
211         // 177, 45
212         jamonWriter.write("</td>\n            ");
213       }
214       // 178, 19
215       jamonWriter.write("\n        </tr>\n        ");
216     }
217     // 180, 16
218     jamonWriter.write("\n    </table>\n");
219   }
220   
221   
222   // 111, 1
223   private void __jamon_innerUnit__requestStats(final java.io.Writer jamonWriter, final List<HRegionInfo> onlineRegions)
224     throws java.io.IOException
225   {
226     // 115, 5
227     jamonWriter.write("<table class=\"table table-striped\">\n        <tr>\n            <th>Region Name</th>\n            <th>Read Request Count</th>\n            <th>Write Request Count</th>\n        </tr>\n\n        ");
228     // 122, 9
229     for (HRegionInfo r: onlineRegions )
230     {
231       // 122, 46
232       jamonWriter.write("\n\n        <tr>\n        ");
233       // 125, 9
234       
235             RegionLoad load = regionServer.createRegionLoad(r.getEncodedName());
236         
237       // 128, 13
238       jamonWriter.write("<td><a href=\"region.jsp?name=");
239       // 128, 42
240       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getEncodedName()), jamonWriter);
241       // 128, 66
242       jamonWriter.write("\">\n              ");
243       // 129, 15
244       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getRegionNameAsString()), jamonWriter);
245       // 129, 46
246       jamonWriter.write("</a>\n            </td>\n            ");
247       // 131, 13
248       if (load != null )
249       {
250         // 131, 33
251         jamonWriter.write("\n            <td>");
252         // 132, 17
253         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getReadRequestsCount()), jamonWriter);
254         // 132, 50
255         jamonWriter.write("</td>\n            <td>");
256         // 133, 17
257         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getWriteRequestsCount()), jamonWriter);
258         // 133, 51
259         jamonWriter.write("</td>\n            ");
260       }
261       // 134, 19
262       jamonWriter.write("\n        </tr>\n        ");
263     }
264     // 136, 16
265     jamonWriter.write("\n    </table>\n");
266   }
267   
268   
269   // 230, 1
270   private void __jamon_innerUnit__memstoreStats(final java.io.Writer jamonWriter, final List<HRegionInfo> onlineRegions)
271     throws java.io.IOException
272   {
273     // 234, 5
274     jamonWriter.write("<table class=\"table table-striped\">\n        <tr>\n            <th>Region Name</th>\n            <th>Memstore Size</th>\n        </tr>\n\n        ");
275     // 240, 9
276     for (HRegionInfo r: onlineRegions )
277     {
278       // 240, 46
279       jamonWriter.write("\n\n        <tr>\n        ");
280       // 243, 9
281       
282             RegionLoad load = regionServer.createRegionLoad(r.getEncodedName());
283         
284       // 246, 13
285       jamonWriter.write("<td><a href=\"region.jsp?name=");
286       // 246, 42
287       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getEncodedName()), jamonWriter);
288       // 246, 66
289       jamonWriter.write("\">\n              ");
290       // 247, 15
291       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getRegionNameAsString()), jamonWriter);
292       // 247, 46
293       jamonWriter.write("</a>\n            </td>\n            ");
294       // 249, 13
295       if (load != null )
296       {
297         // 249, 33
298         jamonWriter.write("\n            <td>");
299         // 250, 17
300         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(
301                 load.getMemstoreSizeMB() * TraditionalBinaryPrefix.MEGA.value, "B", 1)), jamonWriter);
302         // 251, 90
303         jamonWriter.write("</td>\n            ");
304       }
305       // 252, 19
306       jamonWriter.write("\n        </tr>\n        ");
307     }
308     // 254, 16
309     jamonWriter.write("\n    </table>\n");
310   }
311   
312   
313   // 185, 1
314   private void __jamon_innerUnit__compactStats(final java.io.Writer jamonWriter, final List<HRegionInfo> onlineRegions)
315     throws java.io.IOException
316   {
317     // 189, 5
318     jamonWriter.write("<table class=\"table table-striped\">\n        <tr>\n            <th>Region Name</th>\n            <th>Num. Compacting KVs</th>\n            <th>Num. Compacted KVs</th>\n            <th>Compaction Progress</th>\n            <th>Last Major Compaction</th>\n        </tr>\n\n        ");
319     // 198, 9
320     for (HRegionInfo r: onlineRegions )
321     {
322       // 198, 46
323       jamonWriter.write("\n\n        <tr>\n        ");
324       // 201, 9
325       
326             RegionLoad load = regionServer.createRegionLoad(r.getEncodedName());
327             String percentDone = "";
328             String compactTime = "";
329             if  (load != null) {
330               if (load.getTotalCompactingKVs() > 0) {
331                 percentDone = String.format("%.2f", 100 *
332                     ((float) load.getCurrentCompactedKVs() / load.getTotalCompactingKVs())) + "%";
333               }
334               if (load.getLastMajorCompactionTs() > 0) {
335                 FastDateFormat fdf = FastDateFormat.getInstance("yyyy-MM-dd HH:mm ZZ");
336                 compactTime = fdf.format(load.getLastMajorCompactionTs());
337               }
338             }
339         
340       // 216, 13
341       jamonWriter.write("<td><a href=\"region.jsp?name=");
342       // 216, 42
343       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getEncodedName()), jamonWriter);
344       // 216, 66
345       jamonWriter.write("\">\n              ");
346       // 217, 15
347       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getRegionNameAsString()), jamonWriter);
348       // 217, 46
349       jamonWriter.write("</a>\n            </td>\n            ");
350       // 219, 13
351       if (load != null )
352       {
353         // 219, 33
354         jamonWriter.write("\n            <td>");
355         // 220, 17
356         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getTotalCompactingKVs()), jamonWriter);
357         // 220, 51
358         jamonWriter.write("</td>\n            <td>");
359         // 221, 17
360         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getCurrentCompactedKVs()), jamonWriter);
361         // 221, 52
362         jamonWriter.write("</td>\n            <td>");
363         // 222, 17
364         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(percentDone), jamonWriter);
365         // 222, 34
366         jamonWriter.write("</td>\n            <td>");
367         // 223, 17
368         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(compactTime), jamonWriter);
369         // 223, 34
370         jamonWriter.write("</td>\n            ");
371       }
372       // 224, 19
373       jamonWriter.write("\n        </tr>\n        ");
374     }
375     // 226, 16
376     jamonWriter.write("\n    </table>\n");
377   }
378   
379   
380 }