View Javadoc

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