View Javadoc

1   // Autogenerated Jamon implementation
2   // /Users/enis/projects/git-repos/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.commons.math.stat.descriptive.DescriptiveStatistics;
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.HRegion;
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  
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    public void renderNoFlush(@SuppressWarnings({"unused","hiding"}) 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            <li class=\"\"><a href=\"#tab_coprocessorStats\" data-toggle=\"tab\">Coprocessor 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        // 55, 17
66        {
67          // 55, 17
68          __jamon_innerUnit__baseInfo(jamonWriter, onlineRegions);
69        }
70        // 55, 63
71        jamonWriter.write("\n            </div>\n            <div class=\"tab-pane\" id=\"tab_regionRequestStats\">\n                ");
72        // 58, 17
73        {
74          // 58, 17
75          __jamon_innerUnit__requestStats(jamonWriter, onlineRegions);
76        }
77        // 58, 67
78        jamonWriter.write("\n            </div>\n            <div class=\"tab-pane\" id=\"tab_regionStoreStats\">\n                ");
79        // 61, 17
80        {
81          // 61, 17
82          __jamon_innerUnit__storeStats(jamonWriter, onlineRegions);
83        }
84        // 61, 65
85        jamonWriter.write("\n            </div>\n            <div class=\"tab-pane\" id=\"tab_regionMemstoreStats\">\n                ");
86        // 64, 17
87        {
88          // 64, 17
89          __jamon_innerUnit__memstoreStats(jamonWriter, onlineRegions);
90        }
91        // 64, 68
92        jamonWriter.write("\n            </div>\n            <div class=\"tab-pane\" id=\"tab_regionCompactStats\">\n                ");
93        // 67, 17
94        {
95          // 67, 17
96          __jamon_innerUnit__compactStats(jamonWriter, onlineRegions);
97        }
98        // 67, 67
99        jamonWriter.write("\n            </div>\n            <div class=\"tab-pane\" id=\"tab_coprocessorStats\">\n                ");
100       // 70, 17
101       {
102         // 70, 17
103         __jamon_innerUnit__coprocessorStats(jamonWriter, onlineRegions);
104       }
105       // 70, 71
106       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 'catalog' tables 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 region has both an empty start and an empty end key, its the only region in the table.  See\n    <a href=\"http://hbase.org\">HBase Home</a> for further explication.<p>\n");
107     }
108     // 85, 1
109     else
110     {
111       // 85, 8
112       jamonWriter.write("\n    <p>Not serving regions</p>\n");
113     }
114     // 87, 7
115     jamonWriter.write("\n\n");
116   }
117   
118   
119   // 112, 1
120   private void __jamon_innerUnit__requestStats(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter, final List<HRegionInfo> onlineRegions)
121     throws java.io.IOException
122   {
123     // 116, 5
124     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        ");
125     // 123, 9
126     for (HRegionInfo r: onlineRegions )
127     {
128       // 123, 46
129       jamonWriter.write("\n\n        <tr>\n        ");
130       // 126, 9
131       
132             RegionLoad load = regionServer.createRegionLoad(r.getEncodedName());
133         
134       // 129, 13
135       jamonWriter.write("<td>");
136       // 129, 17
137       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getRegionNameAsString()), jamonWriter);
138       // 129, 48
139       jamonWriter.write("</td>\n            ");
140       // 130, 13
141       if (load != null )
142       {
143         // 130, 33
144         jamonWriter.write("\n            <td>");
145         // 131, 17
146         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getReadRequestsCount()), jamonWriter);
147         // 131, 50
148         jamonWriter.write("</td>\n            <td>");
149         // 132, 17
150         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getWriteRequestsCount()), jamonWriter);
151         // 132, 51
152         jamonWriter.write("</td>\n            ");
153       }
154       // 133, 19
155       jamonWriter.write("\n        </tr>\n        ");
156     }
157     // 135, 16
158     jamonWriter.write("\n    </table>\n");
159   }
160   
161   
162   // 212, 1
163   private void __jamon_innerUnit__memstoreStats(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter, final List<HRegionInfo> onlineRegions)
164     throws java.io.IOException
165   {
166     // 216, 5
167     jamonWriter.write("<table class=\"table table-striped\">\n        <tr>\n            <th>Region Name</th>\n            <th>Memstore Size</th>\n        </tr>\n\n        ");
168     // 222, 9
169     for (HRegionInfo r: onlineRegions )
170     {
171       // 222, 46
172       jamonWriter.write("\n\n        <tr>\n        ");
173       // 225, 9
174       
175             RegionLoad load = regionServer.createRegionLoad(r.getEncodedName());
176         
177       // 228, 13
178       jamonWriter.write("<td>");
179       // 228, 17
180       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getRegionNameAsString()), jamonWriter);
181       // 228, 48
182       jamonWriter.write("</td>\n            ");
183       // 229, 13
184       if (load != null )
185       {
186         // 229, 33
187         jamonWriter.write("\n            <td>");
188         // 230, 17
189         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getMemstoreSizeMB()), jamonWriter);
190         // 230, 47
191         jamonWriter.write("m</td>\n            ");
192       }
193       // 231, 19
194       jamonWriter.write("\n        </tr>\n        ");
195     }
196     // 233, 16
197     jamonWriter.write("\n    </table>\n");
198   }
199   
200   
201   // 178, 1
202   private void __jamon_innerUnit__compactStats(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter, final List<HRegionInfo> onlineRegions)
203     throws java.io.IOException
204   {
205     // 182, 5
206     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        ");
207     // 190, 9
208     for (HRegionInfo r: onlineRegions )
209     {
210       // 190, 46
211       jamonWriter.write("\n\n        <tr>\n        ");
212       // 193, 9
213       
214             RegionLoad load = regionServer.createRegionLoad(r.getEncodedName());
215             String percentDone = "";
216             if  (load != null && load.getTotalCompactingKVs() > 0) {
217             percentDone = String.format("%.2f", 100 *
218             ((float) load.getCurrentCompactedKVs() / load.getTotalCompactingKVs())) + "%";
219             }
220         
221       // 201, 13
222       jamonWriter.write("<td>");
223       // 201, 17
224       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getRegionNameAsString()), jamonWriter);
225       // 201, 48
226       jamonWriter.write("</td>\n            ");
227       // 202, 13
228       if (load != null )
229       {
230         // 202, 33
231         jamonWriter.write("\n            <td>");
232         // 203, 17
233         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getTotalCompactingKVs()), jamonWriter);
234         // 203, 51
235         jamonWriter.write("</td>\n            <td>");
236         // 204, 17
237         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getCurrentCompactedKVs()), jamonWriter);
238         // 204, 52
239         jamonWriter.write("</td>\n            <td>");
240         // 205, 17
241         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(percentDone), jamonWriter);
242         // 205, 34
243         jamonWriter.write("</td>\n            ");
244       }
245       // 206, 19
246       jamonWriter.write("\n        </tr>\n        ");
247     }
248     // 208, 16
249     jamonWriter.write("\n    </table>\n");
250   }
251   
252   
253   // 89, 1
254   private void __jamon_innerUnit__baseInfo(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter, final List<HRegionInfo> onlineRegions)
255     throws java.io.IOException
256   {
257     // 93, 5
258     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        ");
259     // 101, 9
260     for (HRegionInfo r: onlineRegions )
261     {
262       // 101, 46
263       jamonWriter.write("\n        <tr>\n            <td>");
264       // 103, 17
265       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getRegionNameAsString()), jamonWriter);
266       // 103, 48
267       jamonWriter.write("</td>\n            <td>");
268       // 104, 17
269       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(Bytes.toStringBinary(r.getStartKey())), jamonWriter);
270       // 104, 60
271       jamonWriter.write("</td>\n            <td>");
272       // 105, 17
273       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(Bytes.toStringBinary(r.getEndKey())), jamonWriter);
274       // 105, 58
275       jamonWriter.write("</td>\n            <td>");
276       // 106, 17
277       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getReplicaId()), jamonWriter);
278       // 106, 39
279       jamonWriter.write("</td>\n        </tr>\n        ");
280     }
281     // 108, 16
282     jamonWriter.write("\n    </table>\n");
283   }
284   
285   
286   // 140, 1
287   private void __jamon_innerUnit__storeStats(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter, final List<HRegionInfo> onlineRegions)
288     throws java.io.IOException
289   {
290     // 144, 5
291     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        ");
292     // 156, 9
293     for (HRegionInfo r: onlineRegions )
294     {
295       // 156, 46
296       jamonWriter.write("\n\n        <tr>\n        ");
297       // 159, 9
298       
299             RegionLoad load = regionServer.createRegionLoad(r.getEncodedName());
300         
301       // 162, 13
302       jamonWriter.write("<td>");
303       // 162, 17
304       org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getRegionNameAsString()), jamonWriter);
305       // 162, 48
306       jamonWriter.write("</td>\n            ");
307       // 163, 13
308       if (load != null )
309       {
310         // 163, 33
311         jamonWriter.write("\n            <td>");
312         // 164, 17
313         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getStores()), jamonWriter);
314         // 164, 39
315         jamonWriter.write("</td>\n            <td>");
316         // 165, 17
317         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getStorefiles()), jamonWriter);
318         // 165, 43
319         jamonWriter.write("</td>\n            <td>");
320         // 166, 17
321         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getStoreUncompressedSizeMB()), jamonWriter);
322         // 166, 56
323         jamonWriter.write("m</td>\n            <td>");
324         // 167, 17
325         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getStorefileSizeMB()), jamonWriter);
326         // 167, 48
327         jamonWriter.write("m</td>\n            <td>");
328         // 168, 17
329         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getTotalStaticIndexSizeKB()), jamonWriter);
330         // 168, 55
331         jamonWriter.write("k</td>\n            <td>");
332         // 169, 17
333         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getTotalStaticBloomSizeKB()), jamonWriter);
334         // 169, 55
335         jamonWriter.write("k</td>\n            <td>");
336         // 170, 17
337         org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(load.getDataLocality()), jamonWriter);
338         // 170, 45
339         jamonWriter.write("</td>\n            ");
340       }
341       // 171, 19
342       jamonWriter.write("\n        </tr>\n        ");
343     }
344     // 173, 16
345     jamonWriter.write("\n    </table>\n");
346   }
347   
348   
349   // 237, 1
350   private void __jamon_innerUnit__coprocessorStats(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter, final List<HRegionInfo> onlineRegions)
351     throws java.io.IOException
352   {
353     // 241, 5
354     jamonWriter.write("<table class=\"table table-striped\">\n        <tr>\n            <th>Region Name</th>\n            <th>Coprocessor</th>\n            <th>Execution Time Statistics</th>\n        </tr>\n\n        ");
355     // 248, 9
356     for (HRegionInfo r: onlineRegions )
357     {
358       // 248, 46
359       jamonWriter.write("\n        ");
360       // 249, 9
361           
362             HRegion region = regionServer.getFromOnlineRegions(r.getEncodedName());
363             MetricsRegionWrapper mWrap = region == null ? null: region.getMetrics().getRegionWrapper();
364         
365       // 254, 9
366       if (mWrap != null )
367       {
368         // 254, 30
369         jamonWriter.write("\n\n            ");
370         // 256, 13
371         for (Map.Entry<String, DescriptiveStatistics> entry: mWrap.getCoprocessorExecutionStatistics().entrySet() )
372         {
373           // 256, 122
374           jamonWriter.write("\n            <tr>\n                ");
375           // 258, 17
376           
377                     String coprocessorName = entry.getKey();
378                     DescriptiveStatistics ds = entry.getValue();
379                 
380           // 262, 17
381           jamonWriter.write("<td>");
382           // 262, 21
383           org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(r.getRegionNameAsString()), jamonWriter);
384           // 262, 52
385           jamonWriter.write("</td>\n                <td>");
386           // 263, 21
387           org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(coprocessorName), jamonWriter);
388           // 263, 42
389           jamonWriter.write("</td>\n                <td>\n                <table class=\"table-condensed\">\n                <tr>\n                    <td>Min Time </td>\n                    <td>");
390           // 268, 25
391           org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(String.format("%.3f%n", ds.getMin()/1000/1000)), jamonWriter);
392           // 268, 77
393           jamonWriter.write("ms</td>\n                </tr>\n                <tr>\n                    <td>Avg Time </td>\n                    <td>");
394           // 272, 25
395           org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(String.format("%.3f%n", ds.getMean()/1000/1000)), jamonWriter);
396           // 272, 78
397           jamonWriter.write("ms</td>\n                </tr>\n                <tr>\n                    <td>Max Time </td>\n                    <td>");
398           // 276, 25
399           org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(String.format("%.3f%n", ds.getMax()/1000/1000)), jamonWriter);
400           // 276, 77
401           jamonWriter.write("ms</td>\n                </tr>\n                <tr>\n                    <td>90th percentile </td>\n                    <td>");
402           // 280, 25
403           org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(String.format("%.3f%n", ds.getPercentile(90d)/1000/1000)), jamonWriter);
404           // 280, 87
405           jamonWriter.write("ms</td>\n                </tr>\n                <tr>\n                    <td>95th percentile </td>\n                    <td>");
406           // 284, 25
407           org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(String.format("%.3f%n", ds.getPercentile(95d)/1000/1000)), jamonWriter);
408           // 284, 87
409           jamonWriter.write("ms</td>\n                </tr>\n                <tr>\n                    <td>99th percentile </td>\n                    <td>");
410           // 288, 25
411           org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(String.format("%.3f%n", ds.getPercentile(99d)/1000/1000)), jamonWriter);
412           // 288, 87
413           jamonWriter.write("ms</td>\n                </tr>\n                </table>\n                </td>\n            </tr>\n            ");
414         }
415         // 293, 20
416         jamonWriter.write("\n        ");
417       }
418       // 294, 15
419       jamonWriter.write("\n        ");
420     }
421     // 295, 16
422     jamonWriter.write("\n    </table>\n");
423   }
424   
425   
426 }