View Javadoc

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