View Javadoc

1   // Autogenerated Jamon implementation
2   // /grid/0/jenkins/workspace/HDP-parallel-centos7/SOURCES/hbase/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/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 ServerManager serverManager;
76    private final ServerName metaLocation;
77    private final boolean catalogJanitorEnabled;
78    private final AssignmentManager assignmentManager;
79    private final Set<ServerName> deadServers;
80    private final String filter;
81    private final List<ServerName> servers;
82    private final String format;
83    private final Map<String,Integer> frags;
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.getServerManager__IsNotDefault())
114     {
115       p_implData.setServerManager(null);
116     }
117     if(! p_implData.getMetaLocation__IsNotDefault())
118     {
119       p_implData.setMetaLocation(null);
120     }
121     if(! p_implData.getCatalogJanitorEnabled__IsNotDefault())
122     {
123       p_implData.setCatalogJanitorEnabled(true);
124     }
125     if(! p_implData.getAssignmentManager__IsNotDefault())
126     {
127       p_implData.setAssignmentManager(null);
128     }
129     if(! p_implData.getDeadServers__IsNotDefault())
130     {
131       p_implData.setDeadServers(null);
132     }
133     if(! p_implData.getFilter__IsNotDefault())
134     {
135       p_implData.setFilter("general");
136     }
137     if(! p_implData.getServers__IsNotDefault())
138     {
139       p_implData.setServers(null);
140     }
141     if(! p_implData.getFormat__IsNotDefault())
142     {
143       p_implData.setFormat("html");
144     }
145     if(! p_implData.getFrags__IsNotDefault())
146     {
147       p_implData.setFrags(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     serverManager = p_implData.getServerManager();
156     metaLocation = p_implData.getMetaLocation();
157     catalogJanitorEnabled = p_implData.getCatalogJanitorEnabled();
158     assignmentManager = p_implData.getAssignmentManager();
159     deadServers = p_implData.getDeadServers();
160     filter = p_implData.getFilter();
161     servers = p_implData.getServers();
162     format = p_implData.getFormat();
163     frags = p_implData.getFrags();
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.setFormat("json" );
178         __jamon__var_0.setFilter(filter);
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   // 487, 1
464   private void __jamon_innerUnit__deadRegionServers(final java.io.Writer jamonWriter)
465     throws java.io.IOException
466   {
467     // 489, 1
468     if ((deadServers != null && deadServers.size() > 0))
469     {
470       // 489, 55
471       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    ");
472       // 497, 5
473       
474        DeadServer deadServerUtil = master.getServerManager().getDeadServers();
475        ServerName [] deadServerNames = deadServers.toArray(new ServerName[deadServers.size()]);
476          Arrays.sort(deadServerNames);
477          for (ServerName deadServerName: deadServerNames) {
478     
479       // 503, 5
480       jamonWriter.write("<tr>\n    \t<th></th>\n        <td>");
481       // 505, 13
482       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServerName), jamonWriter);
483       // 505, 33
484       jamonWriter.write("</td>\n        <td>");
485       // 506, 13
486       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServerUtil.getTimeOfDeath(deadServerName)), jamonWriter);
487       // 506, 64
488       jamonWriter.write("</td>\n    </tr>\n    ");
489       // 508, 5
490       
491         }
492     
493       // 511, 5
494       jamonWriter.write("<tr>\n        <th>Total: </th>\n        <td>servers: ");
495       // 513, 22
496       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServers.size()), jamonWriter);
497       // 513, 46
498       jamonWriter.write("</td>\n        <th></th>\n    </tr>\n</table>\n");
499     }
500     // 517, 7
501     jamonWriter.write("\n");
502   }
503   
504   
505   // 348, 1
506   private void __jamon_innerUnit__catalogTables(final java.io.Writer jamonWriter)
507     throws java.io.IOException
508   {
509     // 349, 1
510     
511  HTableDescriptor[] sysTables = null;
512  try (Admin admin = master.getConnection().getAdmin()) {
513    sysTables = master.isInitialized() ? admin.listTableDescriptorsByNamespace(
514      NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR) : null;
515  }
516 
517     // 356, 1
518     if ((sysTables != null && sysTables.length > 0))
519     {
520       // 356, 51
521       jamonWriter.write("\n<table class=\"table table-striped\">\n<tr>\n    <th>Table Name</th>\n    ");
522       // 360, 5
523       if ((frags != null) )
524       {
525         // 360, 28
526         jamonWriter.write("\n        <th title=\"Fragmentation - Will be 0% after a major compaction and fluctuate during normal usage.\">Frag.</th>\n    ");
527       }
528       // 362, 11
529       jamonWriter.write("\n    <th>Description</th>\n</tr>\n");
530       // 365, 1
531       for (HTableDescriptor systemTable : sysTables)
532       {
533         // 365, 49
534         jamonWriter.write("\n<tr>\n");
535         // 367, 1
536         TableName tableName = systemTable.getTableName();
537         // 368, 5
538         jamonWriter.write("<td><a href=\"table.jsp?name=");
539         // 368, 33
540         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName), jamonWriter);
541         // 368, 48
542         jamonWriter.write("\">");
543         // 368, 50
544         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName), jamonWriter);
545         // 368, 65
546         jamonWriter.write("</a></td>\n    ");
547         // 369, 5
548         if ((frags != null))
549         {
550           // 369, 27
551           jamonWriter.write("\n        <td align=\"center\">");
552           // 370, 28
553           org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(frags.get(tableName.getNameAsString()) != null ? frags.get(tableName.getNameAsString())
554         .intValue() + "%" : "n/a"), jamonWriter);
555           // 371, 37
556           jamonWriter.write("</td>\n    ");
557         }
558         // 372, 11
559         jamonWriter.write("\n    ");
560         // 373, 5
561         String description = null;
562         if (tableName.equals(TableName.META_TABLE_NAME)){
563             description = "The hbase:meta table holds references to all User Table regions";
564         } else if (tableName.equals(AccessControlLists.ACL_TABLE_NAME)){
565             description = "The hbase:acl table holds information about acl";
566 	 } else if (tableName.equals(VisibilityConstants.LABELS_TABLE_NAME)){
567 	     description = "The hbase:labels table holds information about visibility labels";
568         } else if (tableName.equals(TableName.NAMESPACE_TABLE_NAME)){
569             description = "The hbase:namespace table holds information about namespaces.";
570         } else if (tableName.equals(QuotaUtil.QUOTA_TABLE_NAME)){
571             description = "The hbase:quota table holds quota information about number" +
572             " or size of requests in a given time frame.";
573         } else if (tableName.equals(TableName.valueOf("hbase:rsgroup"))){
574             description = "The hbase:rsgroup table holds information about regionserver groups";
575         }
576     
577         // 389, 5
578         jamonWriter.write("<td>");
579         // 389, 9
580         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(description), jamonWriter);
581         // 389, 26
582         jamonWriter.write("</td>\n</tr>\n");
583       }
584       // 391, 8
585       jamonWriter.write("\n</table>\n");
586     }
587     // 393, 7
588     jamonWriter.write("\n");
589   }
590   
591   
592   // 456, 1
593   private void __jamon_innerUnit__userSnapshots(final java.io.Writer jamonWriter)
594     throws java.io.IOException
595   {
596     // 457, 1
597     
598    List<SnapshotDescription> snapshots = null;
599    try (Admin admin = master.getConnection().getAdmin()) {
600      snapshots = master.isInitialized() ? admin.listSnapshots() : null;
601    }
602 
603     // 463, 1
604     if ((snapshots != null && snapshots.size() > 0))
605     {
606       // 463, 51
607       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    ");
608       // 470, 5
609       for (SnapshotDescription snapshotDesc : snapshots)
610       {
611         // 470, 57
612         jamonWriter.write("\n    ");
613         // 471, 5
614         
615         TableName snapshotTable = TableName.valueOf(snapshotDesc.getTable());
616     
617         // 474, 5
618         jamonWriter.write("<tr>\n        <td><a href=\"snapshot.jsp?name=");
619         // 475, 40
620         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotDesc.getName()), jamonWriter);
621         // 475, 68
622         jamonWriter.write("\">");
623         // 475, 70
624         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotDesc.getName()), jamonWriter);
625         // 475, 98
626         jamonWriter.write("</a> </td>\n        <td><a href=\"table.jsp?name=");
627         // 476, 37
628         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotTable.getNameAsString()), jamonWriter);
629         // 476, 74
630         jamonWriter.write("\">");
631         // 476, 76
632         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotTable.getNameAsString()), jamonWriter);
633         // 476, 113
634         jamonWriter.write("</a>\n        </td>\n        <td>");
635         // 478, 13
636         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(new Date(snapshotDesc.getCreationTime())), jamonWriter);
637         // 478, 59
638         jamonWriter.write("</td>\n    </tr>\n    ");
639       }
640       // 480, 12
641       jamonWriter.write("\n    <p>");
642       // 481, 8
643       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshots.size()), jamonWriter);
644       // 481, 30
645       jamonWriter.write(" snapshot(s) in set.</p>\n</table>\n");
646     }
647     // 483, 7
648     jamonWriter.write("\n");
649   }
650   
651   
652   // 396, 1
653   private void __jamon_innerUnit__userTables(final java.io.Writer jamonWriter)
654     throws java.io.IOException
655   {
656     // 397, 1
657     
658    HTableDescriptor[] tables = null;
659    try (Admin admin = master.getConnection().getAdmin()) {
660      tables = master.isInitialized() ? admin.listTables() : null;
661    }
662 
663     // 403, 1
664     if ((tables != null && tables.length > 0))
665     {
666       // 403, 45
667       jamonWriter.write("\n<table class=\"table table-striped\">\n    <tr>\n        <th>Namespace</th>\n        <th>Table Name</th>\n        ");
668       // 408, 9
669       if ((frags != null) )
670       {
671         // 408, 32
672         jamonWriter.write("\n            <th title=\"Fragmentation - Will be 0% after a major compaction and fluctuate during normal usage.\">Frag.</th>\n        ");
673       }
674       // 410, 15
675       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    ");
676       // 418, 5
677       for (HTableDescriptor htDesc : tables)
678       {
679         // 418, 45
680         jamonWriter.write("\n    ");
681         // 419, 5
682         
683       Map<RegionState.State, List<HRegionInfo>> tableRegions =
684           master.getAssignmentManager().getRegionStates()
685             .getRegionByStateOfTable(htDesc.getTableName());
686       int openRegionsCount = tableRegions.get(RegionState.State.OPEN).size();
687       int offlineRegionsCount = tableRegions.get(RegionState.State.OFFLINE).size();
688       int splitRegionsCount = tableRegions.get(RegionState.State.SPLIT).size();
689       int failedRegionsCount = tableRegions.get(RegionState.State.FAILED_OPEN).size()
690              + tableRegions.get(RegionState.State.FAILED_CLOSE).size();
691       int otherRegionsCount = 0;
692       for (List<HRegionInfo> list: tableRegions.values()) {
693          otherRegionsCount += list.size();
694       }
695       // now subtract known states
696       otherRegionsCount = otherRegionsCount - openRegionsCount
697                      - failedRegionsCount - offlineRegionsCount
698                      - splitRegionsCount;
699     
700         // 437, 5
701         jamonWriter.write("<tr>\n        <td>");
702         // 438, 13
703         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(htDesc.getTableName().getNamespaceAsString()), jamonWriter);
704         // 438, 63
705         jamonWriter.write("</td>\n        <td><a href=table.jsp?name=");
706         // 439, 36
707         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(htDesc.getTableName().getNameAsString()), jamonWriter);
708         // 439, 81
709         jamonWriter.write(">");
710         // 439, 82
711         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(htDesc.getTableName().getQualifierAsString()), jamonWriter);
712         // 439, 132
713         jamonWriter.write("</a> </td>\n        ");
714         // 440, 9
715         if ((frags != null) )
716         {
717           // 440, 32
718           jamonWriter.write("\n            <td align=\"center\">");
719           // 441, 32
720           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);
721           // 441, 179
722           jamonWriter.write("</td>\n        ");
723         }
724         // 442, 15
725         jamonWriter.write("\n        <td>");
726         // 443, 13
727         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(openRegionsCount), jamonWriter);
728         // 443, 35
729         jamonWriter.write("</td>\n        <td>");
730         // 444, 13
731         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(offlineRegionsCount), jamonWriter);
732         // 444, 38
733         jamonWriter.write("</td>\n        <td>");
734         // 445, 13
735         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(failedRegionsCount), jamonWriter);
736         // 445, 37
737         jamonWriter.write("</td>\n        <td>");
738         // 446, 13
739         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(splitRegionsCount), jamonWriter);
740         // 446, 36
741         jamonWriter.write("</td>\n        <td>");
742         // 447, 13
743         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(otherRegionsCount), jamonWriter);
744         // 447, 36
745         jamonWriter.write("</td>\n        <td>");
746         // 448, 13
747         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(htDesc.toStringCustomizedValues()), jamonWriter);
748         // 448, 52
749         jamonWriter.write("</td>\n    </tr>\n    ");
750       }
751       // 450, 12
752       jamonWriter.write("\n    <p>");
753       // 451, 8
754       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tables.length), jamonWriter);
755       // 451, 27
756       jamonWriter.write(" table(s) in set. [<a href=tablesDetailed.jsp>Details</a>]</p>\n</table>\n");
757     }
758     // 453, 7
759     jamonWriter.write("\n");
760   }
761   
762   
763 }