View Javadoc

1   // Autogenerated Jamon implementation
2   // /grid/0/jenkins/workspace/HDP-parallel-centos7/SOURCES/hbase/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.hadoop.hbase.regionserver.HRegionServer;
10  // 26, 9
11  import org.apache.hadoop.hbase.util.Bytes;
12  // 27, 9
13  import org.apache.hadoop.hbase.HRegionInfo;
14  // 28, 9
15  import org.apache.hadoop.hbase.regionserver.Region;
16  // 29, 9
17  import org.apache.hadoop.hbase.ServerName;
18  // 30, 9
19  import org.apache.hadoop.hbase.HBaseConfiguration;
20  // 31, 9
21  import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
22  // 32, 9
23  import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.ServerInfo;
24  // 33, 9
25  import org.apache.hadoop.hbase.protobuf.generated.ClusterStatusProtos.RegionLoad;
26  // 34, 9
27  import org.apache.hadoop.hbase.client.RegionReplicaUtil;
28  // 35, 9
29  import org.apache.hadoop.hbase.regionserver.MetricsRegionWrapper;
30  // 36, 9
31  import org.apache.hadoop.util.StringUtils.TraditionalBinaryPrefix;
32  
33  public class RegionListTmplImpl
34    extends org.jamon.AbstractTemplateImpl
35    implements org.apache.hadoop.hbase.tmpl.regionserver.RegionListTmpl.Intf
36  
37  {
38    private final HRegionServer regionServer;
39    private final List<HRegionInfo> onlineRegions;
40    protected static org.apache.hadoop.hbase.tmpl.regionserver.RegionListTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.regionserver.RegionListTmpl.ImplData p_implData)
41    {
42      return p_implData;
43    }
44    public RegionListTmplImpl(org.jamon.TemplateManager p_templateManager, org.apache.hadoop.hbase.tmpl.regionserver.RegionListTmpl.ImplData p_implData)
45    {
46      super(p_templateManager, __jamon_setOptionalArguments(p_implData));
47      regionServer = p_implData.getRegionServer();
48      onlineRegions = p_implData.getOnlineRegions();
49    }
50    
51    @Override public void renderNoFlush(final java.io.Writer jamonWriter)
52      throws java.io.IOException
53    {
54      // 38, 1
55      if ((onlineRegions != null && onlineRegions.size() > 0) )
56      {
57        // 38, 60
58        jamonWriter.write("\n\n    ");
59        // 40, 5
60        
61          Collections.sort(onlineRegions);
62      
63        // 44, 5
64        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                ");
65        // 54, 17
66        {
67          // 54, 17
68          __jamon_innerUnit__baseInfo(jamonWriter, onlineRegions);
69        }
70        // 54, 63
71        jamonWriter.write("\n            </div>\n            <div class=\"tab-pane\" id=\"tab_regionRequestStats\">\n                ");
72        // 57, 17
73        {
74          // 57, 17
75          __jamon_innerUnit__requestStats(jamonWriter, onlineRegions);
76        }
77        // 57, 67
78        jamonWriter.write("\n            </div>\n            <div class=\"tab-pane\" id=\"tab_regionStoreStats\">\n                ");
79        // 60, 17
80        {
81          // 60, 17
82          __jamon_innerUnit__storeStats(jamonWriter, onlineRegions);
83        }
84        // 60, 65
85        jamonWriter.write("\n            </div>\n            <div class=\"tab-pane\" id=\"tab_regionMemstoreStats\">\n                ");
86        // 63, 17
87        {
88          // 63, 17
89          __jamon_innerUnit__memstoreStats(jamonWriter, onlineRegions);
90        }
91        // 63, 68
92        jamonWriter.write("\n            </div>\n            <div class=\"tab-pane\" id=\"tab_regionCompactStats\">\n                ");
93        // 66, 17
94        {
95          // 66, 17
96          __jamon_innerUnit__compactStats(jamonWriter, onlineRegions);
97        }
98        // 66, 67
99        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");
100     }
101     // 81, 1
102     else
103     {
104       // 81, 8
105       jamonWriter.write("\n    <p>Not serving regions</p>\n");
106     }
107     // 83, 7
108     jamonWriter.write("\n\n");
109   }
110   
111   
112   // 85, 1
113   private void __jamon_innerUnit__baseInfo(final java.io.Writer jamonWriter, final List<HRegionInfo> onlineRegions)
114     throws java.io.IOException
115   {
116     // 89, 5
117     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        ");
118     // 97, 9
119     for (HRegionInfo r: onlineRegions )
120     {
121       // 97, 46
122       jamonWriter.write("\n        <tr>\n            <td><a href=\"region.jsp?name=");
123       // 99, 42
124       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getEncodedName()), jamonWriter);
125       // 99, 66
126       jamonWriter.write("\">\n              ");
127       // 100, 15
128       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getRegionNameAsString()), jamonWriter);
129       // 100, 46
130       jamonWriter.write("</a>\n            </td>\n            <td>");
131       // 102, 17
132       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(Bytes.toStringBinary(r.getStartKey())), jamonWriter);
133       // 102, 60
134       jamonWriter.write("</td>\n            <td>");
135       // 103, 17
136       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(Bytes.toStringBinary(r.getEndKey())), jamonWriter);
137       // 103, 58
138       jamonWriter.write("</td>\n            <td>");
139       // 104, 17
140       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getReplicaId()), jamonWriter);
141       // 104, 39
142       jamonWriter.write("</td>\n        </tr>\n        ");
143     }
144     // 106, 16
145     jamonWriter.write("\n    </table>\n");
146   }
147   
148   
149   // 140, 1
150   private void __jamon_innerUnit__storeStats(final java.io.Writer jamonWriter, final List<HRegionInfo> onlineRegions)
151     throws java.io.IOException
152   {
153     // 144, 5
154     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        ");
155     // 156, 9
156     for (HRegionInfo r: onlineRegions )
157     {
158       // 156, 46
159       jamonWriter.write("\n\n        <tr>\n        ");
160       // 159, 9
161       
162             RegionLoad load = regionServer.createRegionLoad(r.getEncodedName());
163         
164       // 162, 13
165       jamonWriter.write("<td><a href=\"region.jsp?name=");
166       // 162, 42
167       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getEncodedName()), jamonWriter);
168       // 162, 66
169       jamonWriter.write("\">\n              ");
170       // 163, 15
171       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getRegionNameAsString()), jamonWriter);
172       // 163, 46
173       jamonWriter.write("</a>\n            </td>\n            ");
174       // 165, 13
175       if (load != null )
176       {
177         // 165, 33
178         jamonWriter.write("\n            <td>");
179         // 166, 17
180         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getStores()), jamonWriter);
181         // 166, 39
182         jamonWriter.write("</td>\n            <td>");
183         // 167, 17
184         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getStorefiles()), jamonWriter);
185         // 167, 43
186         jamonWriter.write("</td>\n            <td>");
187         // 168, 17
188         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(load.getStoreUncompressedSizeMB()
189                 * TraditionalBinaryPrefix.MEGA.value, "B", 1)), jamonWriter);
190         // 169, 64
191         jamonWriter.write("</td>\n            <td>");
192         // 170, 17
193         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(load.getStorefileSizeMB()
194                 * TraditionalBinaryPrefix.MEGA.value, "B", 1)), jamonWriter);
195         // 171, 65
196         jamonWriter.write("</td>\n            <td>");
197         // 172, 17
198         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(load.getTotalStaticIndexSizeKB()
199                 * TraditionalBinaryPrefix.KILO.value, "B", 1)), jamonWriter);
200         // 173, 65
201         jamonWriter.write("</td>\n            <td>");
202         // 174, 17
203         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(load.getTotalStaticBloomSizeKB()
204                 * TraditionalBinaryPrefix.KILO.value, "B", 1)), jamonWriter);
205         // 175, 65
206         jamonWriter.write("</td>\n            <td>");
207         // 176, 17
208         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getDataLocality()), jamonWriter);
209         // 176, 45
210         jamonWriter.write("</td>\n            ");
211       }
212       // 177, 19
213       jamonWriter.write("\n        </tr>\n        ");
214     }
215     // 179, 16
216     jamonWriter.write("\n    </table>\n");
217   }
218   
219   
220   // 110, 1
221   private void __jamon_innerUnit__requestStats(final java.io.Writer jamonWriter, final List<HRegionInfo> onlineRegions)
222     throws java.io.IOException
223   {
224     // 114, 5
225     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        ");
226     // 121, 9
227     for (HRegionInfo r: onlineRegions )
228     {
229       // 121, 46
230       jamonWriter.write("\n\n        <tr>\n        ");
231       // 124, 9
232       
233             RegionLoad load = regionServer.createRegionLoad(r.getEncodedName());
234         
235       // 127, 13
236       jamonWriter.write("<td><a href=\"region.jsp?name=");
237       // 127, 42
238       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getEncodedName()), jamonWriter);
239       // 127, 66
240       jamonWriter.write("\">\n              ");
241       // 128, 15
242       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getRegionNameAsString()), jamonWriter);
243       // 128, 46
244       jamonWriter.write("</a>\n            </td>\n            ");
245       // 130, 13
246       if (load != null )
247       {
248         // 130, 33
249         jamonWriter.write("\n            <td>");
250         // 131, 17
251         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getReadRequestsCount()), jamonWriter);
252         // 131, 50
253         jamonWriter.write("</td>\n            <td>");
254         // 132, 17
255         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getWriteRequestsCount()), jamonWriter);
256         // 132, 51
257         jamonWriter.write("</td>\n            ");
258       }
259       // 133, 19
260       jamonWriter.write("\n        </tr>\n        ");
261     }
262     // 135, 16
263     jamonWriter.write("\n    </table>\n");
264   }
265   
266   
267   // 220, 1
268   private void __jamon_innerUnit__memstoreStats(final java.io.Writer jamonWriter, final List<HRegionInfo> onlineRegions)
269     throws java.io.IOException
270   {
271     // 224, 5
272     jamonWriter.write("<table class=\"table table-striped\">\n        <tr>\n            <th>Region Name</th>\n            <th>Memstore Size</th>\n        </tr>\n\n        ");
273     // 230, 9
274     for (HRegionInfo r: onlineRegions )
275     {
276       // 230, 46
277       jamonWriter.write("\n\n        <tr>\n        ");
278       // 233, 9
279       
280             RegionLoad load = regionServer.createRegionLoad(r.getEncodedName());
281         
282       // 236, 13
283       jamonWriter.write("<td><a href=\"region.jsp?name=");
284       // 236, 42
285       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getEncodedName()), jamonWriter);
286       // 236, 66
287       jamonWriter.write("\">\n              ");
288       // 237, 15
289       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getRegionNameAsString()), jamonWriter);
290       // 237, 46
291       jamonWriter.write("</a>\n            </td>\n            ");
292       // 239, 13
293       if (load != null )
294       {
295         // 239, 33
296         jamonWriter.write("\n            <td>");
297         // 240, 17
298         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(TraditionalBinaryPrefix.long2String(
299                 load.getMemstoreSizeMB() * TraditionalBinaryPrefix.MEGA.value, "B", 1)), jamonWriter);
300         // 241, 90
301         jamonWriter.write("</td>\n            ");
302       }
303       // 242, 19
304       jamonWriter.write("\n        </tr>\n        ");
305     }
306     // 244, 16
307     jamonWriter.write("\n    </table>\n");
308   }
309   
310   
311   // 184, 1
312   private void __jamon_innerUnit__compactStats(final java.io.Writer jamonWriter, final List<HRegionInfo> onlineRegions)
313     throws java.io.IOException
314   {
315     // 188, 5
316     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        </tr>\n\n        ");
317     // 196, 9
318     for (HRegionInfo r: onlineRegions )
319     {
320       // 196, 46
321       jamonWriter.write("\n\n        <tr>\n        ");
322       // 199, 9
323       
324             RegionLoad load = regionServer.createRegionLoad(r.getEncodedName());
325             String percentDone = "";
326             if  (load != null && load.getTotalCompactingKVs() > 0) {
327             percentDone = String.format("%.2f", 100 *
328             ((float) load.getCurrentCompactedKVs() / load.getTotalCompactingKVs())) + "%";
329             }
330         
331       // 207, 13
332       jamonWriter.write("<td><a href=\"region.jsp?name=");
333       // 207, 42
334       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getEncodedName()), jamonWriter);
335       // 207, 66
336       jamonWriter.write("\">\n              ");
337       // 208, 15
338       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getRegionNameAsString()), jamonWriter);
339       // 208, 46
340       jamonWriter.write("</a>\n            </td>\n            ");
341       // 210, 13
342       if (load != null )
343       {
344         // 210, 33
345         jamonWriter.write("\n            <td>");
346         // 211, 17
347         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getTotalCompactingKVs()), jamonWriter);
348         // 211, 51
349         jamonWriter.write("</td>\n            <td>");
350         // 212, 17
351         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getCurrentCompactedKVs()), jamonWriter);
352         // 212, 52
353         jamonWriter.write("</td>\n            <td>");
354         // 213, 17
355         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(percentDone), jamonWriter);
356         // 213, 34
357         jamonWriter.write("</td>\n            ");
358       }
359       // 214, 19
360       jamonWriter.write("\n        </tr>\n        ");
361     }
362     // 216, 16
363     jamonWriter.write("\n    </table>\n");
364   }
365   
366   
367 }