View Javadoc

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