View Javadoc

1   // Autogenerated Jamon implementation
2   // /home/apurtell/src/hbase/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
3   
4   package org.apache.hadoop.hbase.tmpl.master;
5   
6   // 33, 1
7   import java.util.*;
8   // 34, 1
9   import org.apache.hadoop.util.StringUtils;
10  // 35, 1
11  import org.apache.hadoop.hbase.util.Bytes;
12  // 36, 1
13  import org.apache.hadoop.hbase.util.JvmVersion;
14  // 37, 1
15  import org.apache.hadoop.hbase.util.FSUtils;
16  // 38, 1
17  import org.apache.hadoop.hbase.master.HMaster;
18  // 39, 1
19  import org.apache.hadoop.hbase.master.AssignmentManager;
20  // 40, 1
21  import org.apache.hadoop.hbase.master.ServerManager;
22  // 41, 1
23  import org.apache.hadoop.hbase.HConstants;
24  // 42, 1
25  import org.apache.hadoop.hbase.NamespaceDescriptor;
26  // 43, 1
27  import org.apache.hadoop.hbase.ServerLoad;
28  // 44, 1
29  import org.apache.hadoop.hbase.ServerName;
30  // 45, 1
31  import org.apache.hadoop.hbase.client.HBaseAdmin;
32  // 46, 1
33  import org.apache.hadoop.hbase.client.HConnectionManager;
34  // 47, 1
35  import org.apache.hadoop.hbase.HRegionInfo;
36  // 48, 1
37  import org.apache.hadoop.hbase.master.RegionState;
38  // 49, 1
39  import org.apache.hadoop.hbase.HTableDescriptor;
40  // 50, 1
41  import org.apache.hadoop.hbase.HBaseConfiguration;
42  // 51, 1
43  import org.apache.hadoop.hbase.TableName;
44  // 52, 1
45  import org.apache.hadoop.hbase.tool.Canary;
46  // 53, 1
47  import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription;
48  // 54, 1
49  import org.apache.hadoop.hbase.master.DeadServer;
50  // 55, 1
51  import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
52  // 56, 1
53  import org.apache.hadoop.hbase.security.visibility.VisibilityConstants;
54  // 57, 1
55  import org.apache.hadoop.hbase.security.access.AccessControlLists;
56  
57  public class MasterStatusTmplImpl
58    extends org.jamon.AbstractTemplateImpl
59    implements org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.Intf
60  
61  {
62    private final HMaster master;
63    private final HBaseAdmin admin;
64    private final Set<ServerName> deadServers;
65    private final boolean catalogJanitorEnabled;
66    private final ServerName metaLocation;
67    private final String format;
68    private final List<ServerName> servers;
69    private final Map<String,Integer> frags;
70    private final String filter;
71    private final ServerManager serverManager;
72    private final AssignmentManager assignmentManager;
73    // 69, 1
74    
75    public String formatZKString() {
76      StringBuilder quorums = new StringBuilder();
77      String zkQuorum = master.getZooKeeperWatcher().getQuorum();
78  
79      if (null == zkQuorum) {
80        return quorums.toString();
81      }
82  
83      String[] zks = zkQuorum.split(",");
84  
85      if (zks.length == 0) {
86        return quorums.toString();
87      }
88  
89      for(int i = 0; i < zks.length; ++i) {
90        quorums.append(zks[i].trim());
91  
92        if (i != (zks.length - 1)) {
93          quorums.append("<br/>");
94        }
95      }
96  
97      return quorums.toString();
98    }
99  
100   protected static org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData p_implData)
101   {
102     if(! p_implData.getDeadServers__IsNotDefault())
103     {
104       p_implData.setDeadServers(null);
105     }
106     if(! p_implData.getCatalogJanitorEnabled__IsNotDefault())
107     {
108       p_implData.setCatalogJanitorEnabled(true);
109     }
110     if(! p_implData.getMetaLocation__IsNotDefault())
111     {
112       p_implData.setMetaLocation(null);
113     }
114     if(! p_implData.getFormat__IsNotDefault())
115     {
116       p_implData.setFormat("html");
117     }
118     if(! p_implData.getServers__IsNotDefault())
119     {
120       p_implData.setServers(null);
121     }
122     if(! p_implData.getFrags__IsNotDefault())
123     {
124       p_implData.setFrags(null);
125     }
126     if(! p_implData.getFilter__IsNotDefault())
127     {
128       p_implData.setFilter("general");
129     }
130     if(! p_implData.getServerManager__IsNotDefault())
131     {
132       p_implData.setServerManager(null);
133     }
134     if(! p_implData.getAssignmentManager__IsNotDefault())
135     {
136       p_implData.setAssignmentManager(null);
137     }
138     return p_implData;
139   }
140   public MasterStatusTmplImpl(org.jamon.TemplateManager p_templateManager, org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData p_implData)
141   {
142     super(p_templateManager, __jamon_setOptionalArguments(p_implData));
143     master = p_implData.getMaster();
144     admin = p_implData.getAdmin();
145     deadServers = p_implData.getDeadServers();
146     catalogJanitorEnabled = p_implData.getCatalogJanitorEnabled();
147     metaLocation = p_implData.getMetaLocation();
148     format = p_implData.getFormat();
149     servers = p_implData.getServers();
150     frags = p_implData.getFrags();
151     filter = p_implData.getFilter();
152     serverManager = p_implData.getServerManager();
153     assignmentManager = p_implData.getAssignmentManager();
154   }
155   
156   @Override public void renderNoFlush(final java.io.Writer jamonWriter)
157     throws java.io.IOException
158   {
159     // 60, 1
160     if (format.equals("json") )
161     {
162       // 60, 30
163       jamonWriter.write("\n  ");
164       // 61, 3
165       {
166         org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_0 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());
167         __jamon__var_0.setFormat("json" );
168         __jamon__var_0.setFilter(filter);
169         __jamon__var_0.renderNoFlush(jamonWriter);
170       }
171       // 61, 68
172       jamonWriter.write("\n  ");
173       // 62, 3
174       return; 
175     }
176     // 63, 7
177     jamonWriter.write("\n");
178     // 64, 1
179     
180 ServerManager serverManager = master.getServerManager();
181 AssignmentManager assignmentManager = master.getAssignmentManager();
182 
183     // 96, 1
184     jamonWriter.write("<!--[if IE]>\n<!DOCTYPE html>\n<![endif]-->\n<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>");
185     // 103, 12
186     if (master.isActiveMaster() )
187     {
188       // 103, 43
189       jamonWriter.write("Master: ");
190     }
191     // 103, 51
192     else
193     {
194       // 103, 58
195       jamonWriter.write("Backup Master: ");
196     }
197     // 103, 79
198     jamonWriter.write("\n    ");
199     // 104, 5
200     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getServerName().getHostname()), jamonWriter);
201     // 104, 47
202     jamonWriter.write("</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"\">\n    <link href=\"/static/css/bootstrap.min.css\" rel=\"stylesheet\">\n    <link href=\"/static/css/bootstrap-theme.min.css\" rel=\"stylesheet\">\n    <link href=\"/static/css/hbase.css\" rel=\"stylesheet\">\n  </head>\n\n  <body>\n\n    <div class=\"navbar  navbar-fixed-top navbar-default\">\n        <div class=\"container\">\n            <div class=\"navbar-header\">\n                <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\".navbar-collapse\">\n                    <span class=\"icon-bar\"></span>\n                    <span class=\"icon-bar\"></span>\n                    <span class=\"icon-bar\"></span>\n                </button>\n                <a class=\"navbar-brand\" href=\"/master-status\"><img src=\"/static/hbase_logo_small.png\" alt=\"HBase Logo\"/></a>\n            </div>\n            <div class=\"collapse navbar-collapse\">\n                <ul class=\"nav navbar-nav\">\n                <li class=\"active\"><a href=\"/\">Home</a></li>\n                <li><a href=\"/tablesDetailed.jsp\">Table Details</a></li>\n                <li><a href=\"/logs/\">Local Logs</a></li>\n                <li><a href=\"/logLevel\">Log Level</a></li>\n                <li><a href=\"/dump\">Debug Dump</a></li>\n                <li><a href=\"/jmx\">Metrics Dump</a></li>\n                ");
203     // 132, 17
204     if (HBaseConfiguration.isShowConfInServlet())
205     {
206       // 132, 64
207       jamonWriter.write("\n                <li><a href=\"/conf\">HBase Configuration</a></li>\n                ");
208     }
209     // 134, 23
210     jamonWriter.write("\n               </ul>\n            </div><!--/.nav-collapse -->\n        </div>\n    </div>\n\n    <div class=\"container\">\n\t");
211     // 141, 2
212     if (master.isActiveMaster() )
213     {
214       // 141, 33
215       jamonWriter.write("\n        <div class=\"row inner_header\">\n            <div class=\"page-header\">\n                <h1>Master <small>");
216       // 144, 35
217       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getServerName().getHostname()), jamonWriter);
218       // 144, 77
219       jamonWriter.write("</small></h1>\n            </div>\n        </div>\n\n        <div class=\"row\">\n        <!-- Various warnings that cluster admins should be aware of -->\n        ");
220       // 150, 9
221       if (JvmVersion.isBadJvmVersion() )
222       {
223         // 150, 45
224         jamonWriter.write("\n          <div class=\"alert alert-error\">\n          Your current JVM version ");
225         // 152, 36
226         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(System.getProperty("java.version")), jamonWriter);
227         // 152, 76
228         jamonWriter.write(" is known to be\n          unstable with HBase. Please see the\n          <a href=\"http://wiki.apache.org/hadoop/Hbase/Troubleshooting#A18\">HBase wiki</a>\n          for details.\n          </div>\n        ");
229       }
230       // 157, 15
231       jamonWriter.write("\n        ");
232       // 158, 9
233       if (master.isInitialized() && !catalogJanitorEnabled )
234       {
235         // 158, 65
236         jamonWriter.write("\n          <div class=\"alert alert-error\">\n          Please note that your cluster is running with the CatalogJanitor disabled. It can be\n          re-enabled from the hbase shell by running the command 'catalogjanitor_switch true'\n          </div>\n        ");
237       }
238       // 163, 15
239       jamonWriter.write("\n        ");
240       // 164, 9
241       if (!master.isBalancerOn() )
242       {
243         // 164, 39
244         jamonWriter.write("\n          <div class=\"alert alert-warning\">\n            The Load Balancer is not enabled which will eventually cause performance degradation\n            in HBase as Regions will not be distributed across all RegionServers. The balancer\n            is only expected to be disabled during rolling upgrade scenarios.\n          </div>\n        ");
245       }
246       // 170, 15
247       jamonWriter.write("\n\n        <section>\n            <h2>Region Servers</h2>\n            ");
248       // 174, 13
249       {
250         org.apache.hadoop.hbase.tmpl.master.RegionServerListTmpl __jamon__var_1 = new org.apache.hadoop.hbase.tmpl.master.RegionServerListTmpl(this.getTemplateManager());
251         __jamon__var_1.setServers(servers );
252         __jamon__var_1.renderNoFlush(jamonWriter, master);
253       }
254       // 174, 74
255       jamonWriter.write("\n\n            ");
256       // 176, 13
257       if ((deadServers != null) )
258       {
259         // 176, 42
260         jamonWriter.write("\n                ");
261         // 177, 17
262         {
263           // 177, 17
264           __jamon_innerUnit__deadRegionServers(jamonWriter);
265         }
266         // 177, 40
267         jamonWriter.write("\n            ");
268       }
269       // 178, 19
270       jamonWriter.write("\n        </section>\n        <section>\n            ");
271       // 181, 13
272       {
273         org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl __jamon__var_2 = new org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl(this.getTemplateManager());
274         __jamon__var_2.renderNoFlush(jamonWriter, master );
275       }
276       // 181, 58
277       jamonWriter.write("\n        </section>\n        <section>\n            <h2>Tables</h2>\n            <div class=\"tabbable\">\n                <ul class=\"nav nav-pills\">\n                    <li class=\"active\">\n                        <a href=\"#tab_userTables\" data-toggle=\"tab\">User Tables</a>\n                    </li>\n                    <li class=\"\">\n                        <a href=\"#tab_catalogTables\" data-toggle=\"tab\">System Tables</a>\n                    </li>\n                    <li class=\"\">\n                        <a href=\"#tab_userSnapshots\" data-toggle=\"tab\">Snapshots</a>\n                    </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_userTables\">\n                        ");
278       // 199, 25
279       if ((metaLocation != null) )
280       {
281         // 199, 55
282         jamonWriter.write("\n                            ");
283         // 200, 29
284         {
285           // 200, 29
286           __jamon_innerUnit__userTables(jamonWriter);
287         }
288         // 200, 45
289         jamonWriter.write("\n                        ");
290       }
291       // 201, 31
292       jamonWriter.write("\n                    </div>\n                    <div class=\"tab-pane\" id=\"tab_catalogTables\">\n                        ");
293       // 204, 25
294       if ((metaLocation != null) )
295       {
296         // 204, 55
297         jamonWriter.write("\n                            ");
298         // 205, 29
299         {
300           // 205, 29
301           __jamon_innerUnit__catalogTables(jamonWriter);
302         }
303         // 205, 48
304         jamonWriter.write("\n                        ");
305       }
306       // 206, 31
307       jamonWriter.write("\n                    </div>\n                    <div class=\"tab-pane\" id=\"tab_userSnapshots\">\n                        ");
308       // 209, 25
309       {
310         // 209, 25
311         __jamon_innerUnit__userSnapshots(jamonWriter);
312       }
313       // 209, 44
314       jamonWriter.write("\n                    </div>\n                </div>\n            </div>\n        </section>\n        ");
315       // 214, 9
316       {
317         org.apache.hadoop.hbase.tmpl.master.AssignmentManagerStatusTmpl __jamon__var_3 = new org.apache.hadoop.hbase.tmpl.master.AssignmentManagerStatusTmpl(this.getTemplateManager());
318         __jamon__var_3.renderNoFlush(jamonWriter, master.getAssignmentManager());
319       }
320       // 214, 90
321       jamonWriter.write("\n\t");
322     }
323     // 215, 2
324     else
325     {
326       // 215, 9
327       jamonWriter.write("\n        <section>\n            ");
328       // 217, 13
329       {
330         org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl __jamon__var_4 = new org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl(this.getTemplateManager());
331         __jamon__var_4.renderNoFlush(jamonWriter, master );
332       }
333       // 217, 58
334       jamonWriter.write("\n        </section>\n\t");
335     }
336     // 219, 8
337     jamonWriter.write("\n\n\n        <section>\n            ");
338     // 223, 13
339     {
340       org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_5 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());
341       __jamon__var_5.setFilter(filter );
342       __jamon__var_5.renderNoFlush(jamonWriter);
343     }
344     // 223, 61
345     jamonWriter.write("\n        </section>\n\n        <section>\n            <h2>Software Attributes</h2>\n            <table id=\"attributes_table\" class=\"table table-striped\">\n                <tr>\n                    <th>Attribute Name</th>\n                    <th>Value</th>\n                    <th>Description</th>\n                </tr>\n                <tr>\n                    <td>HBase Version</td>\n                    <td>");
346     // 236, 25
347     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getVersion()), jamonWriter);
348     // 236, 84
349     jamonWriter.write(", r");
350     // 236, 87
351     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getRevision()), jamonWriter);
352     // 236, 147
353     jamonWriter.write("</td><td>HBase version and revision</td>\n                </tr>\n                <tr>\n                    <td>HBase Compiled</td>\n                    <td>");
354     // 240, 25
355     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getDate()), jamonWriter);
356     // 240, 81
357     jamonWriter.write(", ");
358     // 240, 83
359     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getUser()), jamonWriter);
360     // 240, 139
361     jamonWriter.write("</td>\n                    <td>When HBase version was compiled and by whom</td>\n                </tr>\n                <tr>\n                    <td>HBase Source Checksum</td>\n                    <td>");
362     // 245, 25
363     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getSrcChecksum()), jamonWriter);
364     // 245, 88
365     jamonWriter.write("</td>\n                    <td>HBase source MD5 checksum</td>\n                </tr>\n                <tr>\n                    <td>Hadoop Version</td>\n                    <td>");
366     // 250, 25
367     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getVersion()), jamonWriter);
368     // 250, 78
369     jamonWriter.write(", r");
370     // 250, 81
371     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getRevision()), jamonWriter);
372     // 250, 135
373     jamonWriter.write("</td>\n                    <td>Hadoop version and revision</td>\n                </tr>\n                <tr>\n                    <td>Hadoop Compiled</td>\n                    <td>");
374     // 255, 25
375     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getDate()), jamonWriter);
376     // 255, 75
377     jamonWriter.write(", ");
378     // 255, 77
379     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getUser()), jamonWriter);
380     // 255, 127
381     jamonWriter.write("</td>\n                    <td>When Hadoop version was compiled and by whom</td>\n                </tr>\n                <tr>\n                    <td>Hadoop Source Checksum</td>\n                    <td>");
382     // 260, 25
383     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getSrcChecksum()), jamonWriter);
384     // 260, 82
385     jamonWriter.write("</td>\n                    <td>Hadoop source MD5 checksum</td>\n                </tr>\n                <tr>\n                    <td>ZooKeeper Client Version</td>\n                    <td>");
386     // 265, 25
387     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.zookeeper.Version.getVersion()), jamonWriter);
388     // 265, 72
389     jamonWriter.write(", revision=");
390     // 265, 83
391     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.zookeeper.Version.getRevision()), jamonWriter);
392     // 265, 131
393     jamonWriter.write("</td>\n                    <td>ZooKeeper client version and revision</td>\n                </tr>\n                <tr>\n                    <td>ZooKeeper Client Compiled</td>\n                    <td>");
394     // 270, 25
395     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.zookeeper.Version.getBuildDate()), jamonWriter);
396     // 270, 74
397     jamonWriter.write("</td>\n                    <td>When ZooKeeper client version was compiled</td>\n                </tr>\n                <tr>\n                    <td>Zookeeper Quorum</td>\n                    <td> ");
398     // 276, 26
399     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(formatZKString()), jamonWriter);
400     // 276, 48
401     jamonWriter.write(" </td>\n                    <td>Addresses of all registered ZK servers. For more, see <a href=\"/zk.jsp\">zk dump</a>.</td>\n                </tr>\n                <tr>\n                    <td>Zookeeper Base Path</td>\n                    <td> ");
402     // 281, 26
403     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getZooKeeper().getBaseZNode()), jamonWriter);
404     // 281, 68
405     jamonWriter.write("</td>\n                    <td>Root node of this cluster in ZK.</td>\n                </tr>\n                <tr>\n                    <td>HBase Root Directory</td>\n                    <td>");
406     // 286, 25
407     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(FSUtils.getRootDir(master.getConfiguration()).toString()), jamonWriter);
408     // 286, 87
409     jamonWriter.write("</td>\n                    <td>Location of HBase home directory</td>\n                </tr>\n                <tr>\n                    <td>HMaster Start Time</td>\n                    <td>");
410     // 291, 25
411     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(new Date(master.getMasterStartTime())), jamonWriter);
412     // 291, 68
413     jamonWriter.write("</td>\n                    <td>Date stamp of when this HMaster was started</td>\n                </tr>\n                ");
414     // 294, 17
415     if (master.isActiveMaster() )
416     {
417       // 294, 48
418       jamonWriter.write("\n\t                <tr>\n\t                    <td>HMaster Active Time</td>\n\t                    <td>");
419       // 297, 26
420       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(new Date(master.getMasterActiveTime())), jamonWriter);
421       // 297, 70
422       jamonWriter.write("</td>\n\t                    <td>Date stamp of when this HMaster became active</td>\n\t                </tr>\n\t                <tr>\n\t                    <td>HBase Cluster ID</td>\n\t                    <td>");
423       // 302, 26
424       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getClusterId() != null ? master.getClusterId() : "Not set"), jamonWriter);
425       // 302, 97
426       jamonWriter.write("</td>\n\t                    <td>Unique identifier generated for each HBase cluster</td>\n\t                </tr>\n\t                <tr>\n\t                    <td>Load average</td>\n\t                    <td>");
427       // 307, 26
428       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(StringUtils.limitDecimalTo2(master.getServerManager().getAverageLoad())), jamonWriter);
429       // 307, 103
430       jamonWriter.write("</td>\n\t                    <td>Average number of regions per regionserver. Naive computation.</td>\n\t                </tr>\n\t                ");
431       // 310, 18
432       if (frags != null )
433       {
434         // 310, 39
435         jamonWriter.write("\n\t                <tr>\n\t                    <td>Fragmentation</td>\n\t                    <td>");
436         // 313, 26
437         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(frags.get("-TOTAL-") != null ? frags.get("-TOTAL-").intValue() + "%" : "n/a"), jamonWriter);
438         // 313, 108
439         jamonWriter.write("</td>\n\t                    <td>Overall fragmentation of all tables, including hbase:meta</td>\n\t                </tr>\n\t                ");
440       }
441       // 316, 24
442       jamonWriter.write("\n\t                <tr>\n\t                    <td>Coprocessors</td>\n\t                    <td>");
443       // 319, 26
444       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(java.util.Arrays.toString(master.getCoprocessors())), jamonWriter);
445       // 319, 83
446       jamonWriter.write("</td>\n\t                    <td>Coprocessors currently loaded by the master</td>\n\t                </tr>\n\t                <tr>\n\t                    <td>LoadBalancer</td>\n\t                    <td>");
447       // 324, 26
448       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getLoadBalancerClassName()), jamonWriter);
449       // 324, 65
450       jamonWriter.write("</td>\n\t                    <td>LoadBalancer to be used in the Master</td>\n\t                </tr>\n                ");
451     }
452     // 327, 23
453     jamonWriter.write("\n            </table>\n        </section>\n        </div>\n    </div> <!-- /container -->\n\n    <script src=\"/static/js/jquery.min.js\" type=\"text/javascript\"></script>\n    <script src=\"/static/js/bootstrap.min.js\" type=\"text/javascript\"></script>\n    <script src=\"/static/js/tab.js\" type=\"text/javascript\"></script>\n  </body>\n</html>\n\n");
454   }
455   
456   
457   // 439, 1
458   private void __jamon_innerUnit__userSnapshots(final java.io.Writer jamonWriter)
459     throws java.io.IOException
460   {
461     // 440, 1
462     
463    List<SnapshotDescription> snapshots = admin.listSnapshots();
464 
465     // 443, 1
466     if ((snapshots != null && snapshots.size() > 0))
467     {
468       // 443, 51
469       jamonWriter.write("\n<table class=\"table table-striped\">\n    <tr>\n        <th>Snapshot Name</th>\n        <th>Table</th>\n        <th>Creation Time</th>\n    </tr>\n    ");
470       // 450, 5
471       for (SnapshotDescription snapshotDesc : snapshots)
472       {
473         // 450, 57
474         jamonWriter.write("\n    ");
475         // 451, 5
476         
477         TableName snapshotTable = TableName.valueOf(snapshotDesc.getTable());
478     
479         // 454, 5
480         jamonWriter.write("<tr>\n        <td><a href=\"snapshot.jsp?name=");
481         // 455, 40
482         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotDesc.getName()), jamonWriter);
483         // 455, 68
484         jamonWriter.write("\">");
485         // 455, 70
486         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotDesc.getName()), jamonWriter);
487         // 455, 98
488         jamonWriter.write("</a> </td>\n        <td><a href=\"table.jsp?name=");
489         // 456, 37
490         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotTable.getNameAsString()), jamonWriter);
491         // 456, 74
492         jamonWriter.write("\">");
493         // 456, 76
494         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotTable.getNameAsString()), jamonWriter);
495         // 456, 113
496         jamonWriter.write("</a>\n        </td>\n        <td>");
497         // 458, 13
498         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(new Date(snapshotDesc.getCreationTime())), jamonWriter);
499         // 458, 59
500         jamonWriter.write("</td>\n    </tr>\n    ");
501       }
502       // 460, 12
503       jamonWriter.write("\n    <p>");
504       // 461, 8
505       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshots.size()), jamonWriter);
506       // 461, 30
507       jamonWriter.write(" snapshot(s) in set.</p>\n</table>\n");
508     }
509     // 463, 7
510     jamonWriter.write("\n");
511   }
512   
513   
514   // 339, 1
515   private void __jamon_innerUnit__catalogTables(final java.io.Writer jamonWriter)
516     throws java.io.IOException
517   {
518     // 340, 1
519     
520  HTableDescriptor[] sysTables = admin.listTableDescriptorsByNamespace(NamespaceDescriptor
521  .SYSTEM_NAMESPACE_NAME_STR);
522 
523     // 345, 1
524     jamonWriter.write("<table class=\"table table-striped\">\n<tr>\n    <th>Table Name</th>\n    ");
525     // 348, 5
526     if ((frags != null) )
527     {
528       // 348, 28
529       jamonWriter.write("\n        <th title=\"Fragmentation - Will be 0% after a major compaction and fluctuate during normal usage.\">Frag.</th>\n    ");
530     }
531     // 350, 11
532     jamonWriter.write("\n    <th>Description</th>\n</tr>\n");
533     // 353, 1
534     for (HTableDescriptor systemTable : sysTables)
535     {
536       // 353, 49
537       jamonWriter.write("\n<tr>\n");
538       // 355, 1
539       TableName tableName = systemTable.getTableName();
540       // 356, 5
541       jamonWriter.write("<td><a href=\"table.jsp?name=");
542       // 356, 33
543       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName), jamonWriter);
544       // 356, 48
545       jamonWriter.write("\">");
546       // 356, 50
547       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName), jamonWriter);
548       // 356, 65
549       jamonWriter.write("</a></td>\n    ");
550       // 357, 5
551       if ((frags != null))
552       {
553         // 357, 27
554         jamonWriter.write("\n        <td align=\"center\">");
555         // 358, 28
556         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(frags.get(tableName.getNameAsString()) != null ? frags.get(tableName.getNameAsString())
557         .intValue() + "%" : "n/a"), jamonWriter);
558         // 359, 37
559         jamonWriter.write("</td>\n    ");
560       }
561       // 360, 11
562       jamonWriter.write("\n    ");
563       // 361, 5
564       String description = null;
565         if (tableName.equals(TableName.META_TABLE_NAME)){
566             description = "The hbase:meta table holds references to all User Table regions.";
567         } else if (tableName.equals(Canary.DEFAULT_WRITE_TABLE_NAME)){
568             description = "The hbase:canary table is used to sniff the write availbility of"
569               + " each regionserver.";
570         } else if (tableName.equals(AccessControlLists.ACL_TABLE_NAME)){
571             description = "The hbase:acl table holds information about acl";
572         } else if (tableName.equals(VisibilityConstants.LABELS_TABLE_NAME)){
573             description = "The hbase:labels table holds information about visibility labels.";
574         } else if (tableName.equals(TableName.NAMESPACE_TABLE_NAME)){
575             description = "The hbase:namespace table holds information about namespaces.";
576         }
577     
578       // 375, 5
579       jamonWriter.write("<td>");
580       // 375, 9
581       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(description), jamonWriter);
582       // 375, 26
583       jamonWriter.write("</td>\n</tr>\n");
584     }
585     // 377, 8
586     jamonWriter.write("\n</table>\n");
587   }
588   
589   
590   // 381, 1
591   private void __jamon_innerUnit__userTables(final java.io.Writer jamonWriter)
592     throws java.io.IOException
593   {
594     // 382, 1
595     
596    HTableDescriptor[] tables = admin.listTables();
597 
598     // 385, 1
599     if ((tables != null && tables.length > 0))
600     {
601       // 385, 45
602       jamonWriter.write("\n<table class=\"table table-striped\">\n    <tr>\n        <th>Namespace</th>\n        <th>Table Name</th>\n        ");
603       // 390, 9
604       if ((frags != null) )
605       {
606         // 390, 32
607         jamonWriter.write("\n            <th title=\"Fragmentation - Will be 0% after a major compaction and fluctuate during normal usage.\">Frag.</th>\n        ");
608       }
609       // 392, 15
610       jamonWriter.write("\n        <th>Online Regions</th>\n        <th>Offline Regions</th>\n        <th>Failed Regions</th>\n        <th>Split Regions</th>\n        <th>Other Regions</th>\n        <th>Description</th>\n    </tr>\n    ");
611       // 400, 5
612       for (HTableDescriptor htDesc : tables)
613       {
614         // 400, 45
615         jamonWriter.write("\n    ");
616         // 401, 5
617         
618       TableName tableName = htDesc.getTableName();
619       Map<RegionState.State, List<HRegionInfo>> tableRegions =
620           master.getAssignmentManager().getRegionStates()
621             .getRegionByStateOfTable(tableName);
622       int openRegionsCount = tableRegions.get(RegionState.State.OPEN).size();
623       int offlineRegionsCount = tableRegions.get(RegionState.State.OFFLINE).size();
624       int splitRegionsCount = tableRegions.get(RegionState.State.SPLIT).size();
625       int failedRegionsCount = tableRegions.get(RegionState.State.FAILED_OPEN).size()
626              + tableRegions.get(RegionState.State.FAILED_CLOSE).size();
627       int otherRegionsCount = 0;
628       for (List<HRegionInfo> list: tableRegions.values()) {
629          otherRegionsCount += list.size();
630       }
631       // now subtract known states
632       otherRegionsCount = otherRegionsCount - openRegionsCount
633                      - failedRegionsCount - offlineRegionsCount
634                      - splitRegionsCount;
635     
636         // 420, 5
637         jamonWriter.write("<tr>\n        <td>");
638         // 421, 13
639         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getNamespaceAsString()), jamonWriter);
640         // 421, 51
641         jamonWriter.write("</td>\n        <td><a href=table.jsp?name=");
642         // 422, 36
643         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getNameAsString()), jamonWriter);
644         // 422, 69
645         jamonWriter.write(">");
646         // 422, 70
647         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getQualifierAsString()), jamonWriter);
648         // 422, 108
649         jamonWriter.write("</a> </td>\n        ");
650         // 423, 9
651         if ((frags != null) )
652         {
653           // 423, 32
654           jamonWriter.write("\n            <td align=\"center\">");
655           // 424, 32
656           org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(frags.get(tableName.getNameAsString()) != null ? frags.get(tableName.getNameAsString()).intValue() + "%" : "n/a"), jamonWriter);
657           // 424, 150
658           jamonWriter.write("</td>\n        ");
659         }
660         // 425, 15
661         jamonWriter.write("\n        <td>");
662         // 426, 13
663         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(openRegionsCount), jamonWriter);
664         // 426, 35
665         jamonWriter.write("</td>\n        <td>");
666         // 427, 13
667         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(offlineRegionsCount), jamonWriter);
668         // 427, 38
669         jamonWriter.write("</td>\n        <td>");
670         // 428, 13
671         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(failedRegionsCount), jamonWriter);
672         // 428, 37
673         jamonWriter.write("</td>\n        <td>");
674         // 429, 13
675         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(splitRegionsCount), jamonWriter);
676         // 429, 36
677         jamonWriter.write("</td>\n        <td>");
678         // 430, 13
679         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(otherRegionsCount), jamonWriter);
680         // 430, 36
681         jamonWriter.write("</td>\n        <td>");
682         // 431, 13
683         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(htDesc.toStringCustomizedValues()), jamonWriter);
684         // 431, 52
685         jamonWriter.write("</td>\n    </tr>\n    ");
686       }
687       // 433, 12
688       jamonWriter.write("\n    <p>");
689       // 434, 8
690       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tables.length), jamonWriter);
691       // 434, 27
692       jamonWriter.write(" table(s) in set. [<a href=tablesDetailed.jsp>Details</a>]</p>\n</table>\n");
693     }
694     // 436, 7
695     jamonWriter.write("\n");
696   }
697   
698   
699   // 467, 1
700   private void __jamon_innerUnit__deadRegionServers(final java.io.Writer jamonWriter)
701     throws java.io.IOException
702   {
703     // 469, 1
704     if ((deadServers != null && deadServers.size() > 0))
705     {
706       // 469, 55
707       jamonWriter.write("\n<h2>Dead Region Servers</h2>\n<table class=\"table table-striped\">\n    <tr>\n        <th></th>\n        <th>ServerName</th>\n        <th>Stop time</th>\n    </tr>\n    ");
708       // 477, 5
709       
710        DeadServer deadServerUtil = master.getServerManager().getDeadServers();
711        ServerName [] deadServerNames = deadServers.toArray(new ServerName[deadServers.size()]);
712          Arrays.sort(deadServerNames);
713          for (ServerName deadServerName: deadServerNames) {
714     
715       // 483, 5
716       jamonWriter.write("<tr>\n    \t<th></th>\n        <td>");
717       // 485, 13
718       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServerName), jamonWriter);
719       // 485, 33
720       jamonWriter.write("</td>\n        <td>");
721       // 486, 13
722       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServerUtil.getTimeOfDeath(deadServerName)), jamonWriter);
723       // 486, 64
724       jamonWriter.write("</td>\n    </tr>\n    ");
725       // 488, 5
726       
727         }
728     
729       // 491, 5
730       jamonWriter.write("<tr>\n        <th>Total: </th>\n        <td>servers: ");
731       // 493, 22
732       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServers.size()), jamonWriter);
733       // 493, 46
734       jamonWriter.write("</td>\n        <th></th>\n    </tr>\n</table>\n");
735     }
736     // 497, 7
737     jamonWriter.write("\n");
738     // 498, 1
739     
740    HConnectionManager.deleteConnection(admin.getConfiguration());
741 
742   }
743   
744   
745 }