View Javadoc

1   // Autogenerated Jamon implementation
2   // /home/zhangduo/hbase/code/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 boolean catalogJanitorEnabled;
74    private final AssignmentManager assignmentManager;
75    private final Set<ServerName> deadServers;
76    private final ServerManager serverManager;
77    private final String filter;
78    private final Map<String,Integer> frags;
79    private final List<ServerName> servers;
80    private final ServerName metaLocation;
81    private final String format;
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.getCatalogJanitorEnabled__IsNotDefault())
112     {
113       p_implData.setCatalogJanitorEnabled(true);
114     }
115     if(! p_implData.getAssignmentManager__IsNotDefault())
116     {
117       p_implData.setAssignmentManager(null);
118     }
119     if(! p_implData.getDeadServers__IsNotDefault())
120     {
121       p_implData.setDeadServers(null);
122     }
123     if(! p_implData.getServerManager__IsNotDefault())
124     {
125       p_implData.setServerManager(null);
126     }
127     if(! p_implData.getFilter__IsNotDefault())
128     {
129       p_implData.setFilter("general");
130     }
131     if(! p_implData.getFrags__IsNotDefault())
132     {
133       p_implData.setFrags(null);
134     }
135     if(! p_implData.getServers__IsNotDefault())
136     {
137       p_implData.setServers(null);
138     }
139     if(! p_implData.getMetaLocation__IsNotDefault())
140     {
141       p_implData.setMetaLocation(null);
142     }
143     if(! p_implData.getFormat__IsNotDefault())
144     {
145       p_implData.setFormat("html");
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     catalogJanitorEnabled = p_implData.getCatalogJanitorEnabled();
154     assignmentManager = p_implData.getAssignmentManager();
155     deadServers = p_implData.getDeadServers();
156     serverManager = p_implData.getServerManager();
157     filter = p_implData.getFilter();
158     frags = p_implData.getFrags();
159     servers = p_implData.getServers();
160     metaLocation = p_implData.getMetaLocation();
161     format = p_implData.getFormat();
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_7 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());
175         __jamon__var_7.setFormat("json" );
176         __jamon__var_7.setFilter(filter);
177         __jamon__var_7.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        ");
280       // 198, 9
281       if (master.getAssignmentManager() != null )
282       {
283         // 198, 54
284         jamonWriter.write("\n        ");
285         // 199, 9
286         {
287           org.apache.hadoop.hbase.tmpl.master.AssignmentManagerStatusTmpl __jamon__var_8 = new org.apache.hadoop.hbase.tmpl.master.AssignmentManagerStatusTmpl(this.getTemplateManager());
288           __jamon__var_8.renderNoFlush(jamonWriter, master.getAssignmentManager());
289         }
290         // 199, 90
291         jamonWriter.write("\n        ");
292       }
293       // 200, 15
294       jamonWriter.write("\n\n        <section>\n            <h2>Region Servers</h2>\n            ");
295       // 204, 13
296       {
297         org.apache.hadoop.hbase.tmpl.master.RegionServerListTmpl __jamon__var_9 = new org.apache.hadoop.hbase.tmpl.master.RegionServerListTmpl(this.getTemplateManager());
298         __jamon__var_9.setServers(servers );
299         __jamon__var_9.renderNoFlush(jamonWriter, master);
300       }
301       // 204, 74
302       jamonWriter.write("\n\n            ");
303       // 206, 13
304       if ((deadServers != null) )
305       {
306         // 206, 42
307         jamonWriter.write("\n                ");
308         // 207, 17
309         {
310           // 207, 17
311           __jamon_innerUnit__deadRegionServers(jamonWriter);
312         }
313         // 207, 40
314         jamonWriter.write("\n            ");
315       }
316       // 208, 19
317       jamonWriter.write("\n        </section>\n        <section>\n            ");
318       // 211, 13
319       {
320         org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl __jamon__var_10 = new org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl(this.getTemplateManager());
321         __jamon__var_10.renderNoFlush(jamonWriter, master );
322       }
323       // 211, 58
324       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                        ");
325       // 229, 25
326       if ((metaLocation != null) )
327       {
328         // 229, 55
329         jamonWriter.write("\n                            ");
330         // 230, 29
331         {
332           // 230, 29
333           __jamon_innerUnit__userTables(jamonWriter);
334         }
335         // 230, 45
336         jamonWriter.write("\n                        ");
337       }
338       // 231, 31
339       jamonWriter.write("\n                    </div>\n                    <div class=\"tab-pane\" id=\"tab_catalogTables\">\n                        ");
340       // 234, 25
341       if ((metaLocation != null) )
342       {
343         // 234, 55
344         jamonWriter.write("\n                            ");
345         // 235, 29
346         {
347           // 235, 29
348           __jamon_innerUnit__catalogTables(jamonWriter);
349         }
350         // 235, 48
351         jamonWriter.write("\n                        ");
352       }
353       // 236, 31
354       jamonWriter.write("\n                    </div>\n                    <div class=\"tab-pane\" id=\"tab_userSnapshots\">\n                        ");
355       // 239, 25
356       {
357         // 239, 25
358         __jamon_innerUnit__userSnapshots(jamonWriter);
359       }
360       // 239, 44
361       jamonWriter.write("\n                    </div>\n                </div>\n            </div>\n        </section>\n        <section>\n            <h2>Peers</h2>\n            ");
362       // 246, 13
363       {
364         // 246, 13
365         __jamon_innerUnit__peerConfigs(jamonWriter);
366       }
367       // 246, 30
368       jamonWriter.write("\n        </section>\n\t");
369     }
370     // 248, 2
371     else
372     {
373       // 248, 9
374       jamonWriter.write("\n        <section>\n            ");
375       // 250, 13
376       {
377         org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl __jamon__var_11 = new org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl(this.getTemplateManager());
378         __jamon__var_11.renderNoFlush(jamonWriter, master );
379       }
380       // 250, 58
381       jamonWriter.write("\n        </section>\n\t");
382     }
383     // 252, 8
384     jamonWriter.write("\n\n\n        <section>\n            ");
385     // 256, 13
386     {
387       org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_12 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());
388       __jamon__var_12.setFilter(filter );
389       __jamon__var_12.renderNoFlush(jamonWriter);
390     }
391     // 256, 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     // 269, 25
394     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(JvmVersion.getVersion()), jamonWriter);
395     // 269, 54
396     jamonWriter.write("</td>\n                    <td>JVM vendor and version</td>\n                </tr>\n                <tr>\n                    <td>HBase Version</td>\n                    <td>");
397     // 274, 25
398     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getVersion()), jamonWriter);
399     // 274, 84
400     jamonWriter.write(", revision=");
401     // 274, 95
402     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getRevision()), jamonWriter);
403     // 274, 155
404     jamonWriter.write("</td><td>HBase version and revision</td>\n                </tr>\n                <tr>\n                    <td>HBase Compiled</td>\n                    <td>");
405     // 278, 25
406     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getDate()), jamonWriter);
407     // 278, 81
408     jamonWriter.write(", ");
409     // 278, 83
410     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getUser()), jamonWriter);
411     // 278, 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     // 283, 25
414     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getSrcChecksum()), jamonWriter);
415     // 283, 88
416     jamonWriter.write("</td>\n                    <td>HBase source MD5 checksum</td>\n                </tr>\n                <tr>\n                    <td>Hadoop Version</td>\n                    <td>");
417     // 288, 25
418     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getVersion()), jamonWriter);
419     // 288, 78
420     jamonWriter.write(", revision=");
421     // 288, 89
422     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getRevision()), jamonWriter);
423     // 288, 143
424     jamonWriter.write("</td>\n                    <td>Hadoop version and revision</td>\n                </tr>\n                <tr>\n                    <td>Hadoop Compiled</td>\n                    <td>");
425     // 293, 25
426     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getDate()), jamonWriter);
427     // 293, 75
428     jamonWriter.write(", ");
429     // 293, 77
430     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getUser()), jamonWriter);
431     // 293, 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     // 298, 25
434     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getSrcChecksum()), jamonWriter);
435     // 298, 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     // 303, 25
438     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.zookeeper.Version.getVersion()), jamonWriter);
439     // 303, 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     // 308, 25
442     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.zookeeper.Version.getBuildDate()), jamonWriter);
443     // 308, 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     // 314, 26
446     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(formatZKString()), jamonWriter);
447     // 314, 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     // 319, 26
450     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getZooKeeper().getBaseZNode()), jamonWriter);
451     // 319, 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     // 324, 25
454     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(FSUtils.getRootDir(master.getConfiguration()).toString()), jamonWriter);
455     // 324, 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     // 329, 25
458     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(new Date(master.getMasterStartTime())), jamonWriter);
459     // 329, 68
460     jamonWriter.write("</td>\n                    <td>Date stamp of when this HMaster was started</td>\n                </tr>\n                ");
461     // 332, 17
462     if (master.isActiveMaster() )
463     {
464       // 332, 48
465       jamonWriter.write("\n\t                <tr>\n\t                    <td>HMaster Active Time</td>\n\t                    <td>");
466       // 335, 26
467       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(new Date(master.getMasterActiveTime())), jamonWriter);
468       // 335, 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       // 340, 26
471       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getClusterId() != null ? master.getClusterId() : "Not set"), jamonWriter);
472       // 340, 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       // 345, 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       // 346, 98
478       jamonWriter.write("</td>\n\t                    <td>Average number of regions per regionserver. Naive computation.</td>\n\t                </tr>\n\t                ");
479       // 349, 18
480       if (frags != null )
481       {
482         // 349, 39
483         jamonWriter.write("\n\t                <tr>\n\t                    <td>Fragmentation</td>\n\t                    <td>");
484         // 352, 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         // 352, 108
487         jamonWriter.write("</td>\n\t                    <td>Overall fragmentation of all tables, including hbase:meta</td>\n\t                </tr>\n\t                ");
488       }
489       // 355, 24
490       jamonWriter.write("\n\t                <tr>\n\t                    <td>Coprocessors</td>\n\t                    <td>");
491       // 358, 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       // 359, 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       // 364, 26
497       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getLoadBalancerClassName()), jamonWriter);
498       // 364, 65
499       jamonWriter.write("</td>\n\t                    <td>LoadBalancer to be used in the Master</td>\n\t                </tr>\n                ");
500     }
501     // 367, 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   // 515, 1
507   private void __jamon_innerUnit__userSnapshots(final java.io.Writer jamonWriter)
508     throws java.io.IOException
509   {
510     // 516, 1
511     
512    List<SnapshotDescription> snapshots = null;
513    try (Admin admin = master.getConnection().getAdmin()) {
514      snapshots = master.isInitialized() ? admin.listSnapshots() : null;
515    }
516 
517     // 522, 1
518     if ((snapshots != null && snapshots.size() > 0))
519     {
520       // 522, 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       // 529, 5
523       for (SnapshotDescription snapshotDesc : snapshots)
524       {
525         // 529, 57
526         jamonWriter.write("\n    ");
527         // 530, 5
528         
529         TableName snapshotTable = TableName.valueOf(snapshotDesc.getTable());
530     
531         // 533, 5
532         jamonWriter.write("<tr>\n        <td><a href=\"snapshot.jsp?name=");
533         // 534, 40
534         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotDesc.getName()), jamonWriter);
535         // 534, 68
536         jamonWriter.write("\">");
537         // 534, 70
538         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotDesc.getName()), jamonWriter);
539         // 534, 98
540         jamonWriter.write("</a> </td>\n        <td><a href=\"table.jsp?name=");
541         // 535, 37
542         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotTable.getNameAsString()), jamonWriter);
543         // 535, 74
544         jamonWriter.write("\">");
545         // 535, 76
546         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotTable.getNameAsString()), jamonWriter);
547         // 535, 113
548         jamonWriter.write("</a>\n        </td>\n        <td>");
549         // 537, 13
550         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(new Date(snapshotDesc.getCreationTime())), jamonWriter);
551         // 537, 59
552         jamonWriter.write("</td>\n    </tr>\n    ");
553       }
554       // 539, 12
555       jamonWriter.write("\n    <p>");
556       // 540, 8
557       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshots.size()), jamonWriter);
558       // 540, 30
559       jamonWriter.write(" snapshot(s) in set. [<a href=\"/snapshotsStats.jsp\">Snapshot Storefile stats</a>]</p>\n</table>\n");
560     }
561     // 542, 7
562     jamonWriter.write("\n");
563   }
564   
565   
566   // 393, 1
567   private void __jamon_innerUnit__catalogTables(final java.io.Writer jamonWriter)
568     throws java.io.IOException
569   {
570     // 394, 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     // 401, 1
579     if ((sysTables != null && sysTables.length > 0))
580     {
581       // 401, 51
582       jamonWriter.write("\n<table class=\"table table-striped\">\n<tr>\n    <th>Table Name</th>\n    ");
583       // 405, 5
584       if ((frags != null) )
585       {
586         // 405, 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       // 407, 11
590       jamonWriter.write("\n    <th>Description</th>\n</tr>\n");
591       // 410, 1
592       for (HTableDescriptor systemTable : sysTables)
593       {
594         // 410, 49
595         jamonWriter.write("\n<tr>\n");
596         // 412, 1
597         TableName tableName = systemTable.getTableName();
598         // 413, 5
599         jamonWriter.write("<td><a href=\"table.jsp?name=");
600         // 413, 33
601         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName), jamonWriter);
602         // 413, 48
603         jamonWriter.write("\">");
604         // 413, 50
605         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName), jamonWriter);
606         // 413, 65
607         jamonWriter.write("</a></td>\n    ");
608         // 414, 5
609         if ((frags != null))
610         {
611           // 414, 27
612           jamonWriter.write("\n        <td align=\"center\">");
613           // 415, 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           // 416, 37
617           jamonWriter.write("</td>\n    ");
618         }
619         // 417, 11
620         jamonWriter.write("\n    ");
621         // 418, 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         // 437, 5
642         jamonWriter.write("<td>");
643         // 437, 9
644         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(description), jamonWriter);
645         // 437, 26
646         jamonWriter.write("</td>\n</tr>\n");
647       }
648       // 439, 8
649       jamonWriter.write("\n</table>\n");
650     }
651     // 441, 7
652     jamonWriter.write("\n");
653   }
654   
655   
656   // 444, 1
657   private void __jamon_innerUnit__userTables(final java.io.Writer jamonWriter)
658     throws java.io.IOException
659   {
660     // 445, 1
661     
662    HTableDescriptor[] tables = null;
663    try (Admin admin = master.getConnection().getAdmin()) {
664      tables = master.isInitialized() ? admin.listTables() : null;
665    }
666 
667     // 451, 1
668     if ((tables != null && tables.length > 0))
669     {
670       // 451, 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       // 457, 9
673       if ((frags != null) )
674       {
675         // 457, 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       // 459, 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       // 469, 5
681       for (HTableDescriptor htDesc : tables)
682       {
683         // 469, 45
684         jamonWriter.write("\n    ");
685         // 470, 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 openingRegionsCount = tableRegions.get(RegionState.State.OPENING).size();
693       int closedRegionsCount = tableRegions.get(RegionState.State.CLOSED).size();
694       int closingRegionsCount = tableRegions.get(RegionState.State.CLOSING).size();
695       int offlineRegionsCount = tableRegions.get(RegionState.State.OFFLINE).size();
696       int splitRegionsCount = tableRegions.get(RegionState.State.SPLIT).size();
697       int failedRegionsCount = tableRegions.get(RegionState.State.FAILED_OPEN).size()
698              + tableRegions.get(RegionState.State.FAILED_CLOSE).size();
699       int otherRegionsCount = 0;
700       for (List<HRegionInfo> list: tableRegions.values()) {
701          otherRegionsCount += list.size();
702       }
703       // now subtract known states
704       otherRegionsCount = otherRegionsCount - openRegionsCount
705                      - failedRegionsCount - offlineRegionsCount
706                      - splitRegionsCount;
707     
708         // 492, 5
709         jamonWriter.write("<tr>\n        <td>");
710         // 493, 13
711         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getNamespaceAsString()), jamonWriter);
712         // 493, 51
713         jamonWriter.write("</td>\n        <td><a href=table.jsp?name=");
714         // 494, 36
715         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getNameAsString()), jamonWriter);
716         // 494, 69
717         jamonWriter.write(">");
718         // 494, 70
719         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getQualifierAsString()), jamonWriter);
720         // 494, 108
721         jamonWriter.write("</a> </td>\n        ");
722         // 495, 9
723         if ((frags != null) )
724         {
725           // 495, 32
726           jamonWriter.write("\n            <td align=\"center\">");
727           // 496, 32
728           org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(frags.get(tableName.getNameAsString()) != null ? frags.get(tableName.getNameAsString()).intValue() + "%" : "n/a"), jamonWriter);
729           // 496, 150
730           jamonWriter.write("</td>\n        ");
731         }
732         // 497, 15
733         jamonWriter.write("\n        <td>");
734         // 498, 13
735         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(openRegionsCount), jamonWriter);
736         // 498, 35
737         jamonWriter.write("</td>\n        ");
738         // 499, 9
739         if ((openingRegionsCount > 0) )
740         {
741           // 499, 42
742           jamonWriter.write(" <td><a href=\"/rits.jsp?table=");
743           // 499, 72
744           org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getNameAsString()), jamonWriter);
745           // 499, 105
746           jamonWriter.write("&state=OPENING\">");
747           // 499, 121
748           org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(openingRegionsCount), jamonWriter);
749           // 499, 146
750           jamonWriter.write("</td> ");
751         }
752         // 499, 152
753         else
754         {
755           // 499, 159
756           jamonWriter.write("<td>");
757           // 499, 163
758           org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(openingRegionsCount), jamonWriter);
759           // 499, 188
760           jamonWriter.write("</td> ");
761         }
762         // 499, 200
763         jamonWriter.write("\n        <td>");
764         // 500, 13
765         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(closedRegionsCount), jamonWriter);
766         // 500, 37
767         jamonWriter.write("</td>\n        ");
768         // 501, 9
769         if ((closingRegionsCount > 0) )
770         {
771           // 501, 42
772           jamonWriter.write(" <td><a href=\"/rits.jsp?table=");
773           // 501, 72
774           org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getNameAsString()), jamonWriter);
775           // 501, 105
776           jamonWriter.write("&state=CLOSING\">");
777           // 501, 121
778           org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(closingRegionsCount), jamonWriter);
779           // 501, 146
780           jamonWriter.write("</td> ");
781         }
782         // 501, 152
783         else
784         {
785           // 501, 159
786           jamonWriter.write("<td>");
787           // 501, 163
788           org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(closingRegionsCount), jamonWriter);
789           // 501, 188
790           jamonWriter.write("</td> ");
791         }
792         // 501, 200
793         jamonWriter.write("\n        <td>");
794         // 502, 13
795         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(offlineRegionsCount), jamonWriter);
796         // 502, 38
797         jamonWriter.write("</td>\n        <td>");
798         // 503, 13
799         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(failedRegionsCount), jamonWriter);
800         // 503, 37
801         jamonWriter.write("</td>\n        <td>");
802         // 504, 13
803         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(splitRegionsCount), jamonWriter);
804         // 504, 36
805         jamonWriter.write("</td>\n        <td>");
806         // 505, 13
807         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(otherRegionsCount), jamonWriter);
808         // 505, 36
809         jamonWriter.write("</td>\n        <td>");
810         // 506, 13
811         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(htDesc.toStringCustomizedValues()), jamonWriter);
812         // 506, 52
813         jamonWriter.write("</td>\n    </tr>\n    ");
814       }
815       // 508, 12
816       jamonWriter.write("\n    <p>");
817       // 509, 8
818       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tables.length), jamonWriter);
819       // 509, 27
820       jamonWriter.write(" table(s) in set. [<a href=tablesDetailed.jsp>Details</a>]</p>\n</tbody>\n</table>\n");
821     }
822     // 512, 7
823     jamonWriter.write("\n");
824   }
825   
826   
827   // 579, 1
828   private void __jamon_innerUnit__peerConfigs(final java.io.Writer jamonWriter)
829     throws java.io.IOException
830   {
831     // 580, 1
832     
833     Map<String, ReplicationPeerConfig> peers = null;
834     try (ReplicationAdmin admin = new ReplicationAdmin(master.getConfiguration())) {
835         peers = admin.listPeerConfigs();
836     }
837 
838     // 586, 1
839     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");
840     // 593, 1
841     if ((peers != null && peers.size() > 0))
842     {
843       // 593, 43
844       jamonWriter.write("\n    ");
845       // 594, 5
846       for (Map.Entry<String, ReplicationPeerConfig> peer : peers.entrySet() )
847       {
848         // 594, 78
849         jamonWriter.write("\n    ");
850         // 595, 5
851         
852         String peerId = peer.getKey();
853         ReplicationPeerConfig peerConfig = peer.getValue();
854     
855         // 599, 5
856         jamonWriter.write("<tr>\n        <td>");
857         // 600, 13
858         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerId), jamonWriter);
859         // 600, 25
860         jamonWriter.write("</td>\n        <td>");
861         // 601, 13
862         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getClusterKey()), jamonWriter);
863         // 601, 45
864         jamonWriter.write("</td>\n        <td>");
865         // 602, 13
866         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getBandwidth() == 0? "UNLIMITED" : StringUtils.humanReadableInt(peerConfig.getBandwidth())), jamonWriter);
867         // 602, 120
868         jamonWriter.write("</td>\n        <td>\n           ");
869         // 604, 12
870         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getTableCFsMap() == null ? "" : ReplicationSerDeHelper.convertToString(peerConfig.getTableCFsMap()).replaceAll(";", "; ")), jamonWriter);
871         // 604, 150
872         jamonWriter.write("\n        </td>\n    </tr>\n    ");
873       }
874       // 607, 12
875       jamonWriter.write("\n");
876     }
877     // 608, 7
878     jamonWriter.write("\n<tr><td>Total: ");
879     // 609, 16
880     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf((peers != null) ? peers.size() : 0), jamonWriter);
881     // 609, 56
882     jamonWriter.write("</td></tr>\n</table>\n");
883   }
884   
885   
886   // 546, 1
887   private void __jamon_innerUnit__deadRegionServers(final java.io.Writer jamonWriter)
888     throws java.io.IOException
889   {
890     // 548, 1
891     if ((deadServers != null && deadServers.size() > 0))
892     {
893       // 548, 55
894       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    ");
895       // 556, 5
896       
897        DeadServer deadServerUtil = master.getServerManager().getDeadServers();
898        ServerName [] deadServerNames = deadServers.toArray(new ServerName[deadServers.size()]);
899          Arrays.sort(deadServerNames);
900          for (ServerName deadServerName: deadServerNames) {
901     
902       // 562, 5
903       jamonWriter.write("<tr>\n    \t<th></th>\n        <td>");
904       // 564, 13
905       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServerName), jamonWriter);
906       // 564, 33
907       jamonWriter.write("</td>\n        <td>");
908       // 565, 13
909       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServerUtil.getTimeOfDeath(deadServerName)), jamonWriter);
910       // 565, 64
911       jamonWriter.write("</td>\n    </tr>\n    ");
912       // 567, 5
913       
914         }
915     
916       // 570, 5
917       jamonWriter.write("<tr>\n        <th>Total: </th>\n        <td>servers: ");
918       // 572, 22
919       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServers.size()), jamonWriter);
920       // 572, 46
921       jamonWriter.write("</td>\n        <th></th>\n    </tr>\n</table>\n");
922     }
923     // 576, 7
924     jamonWriter.write("\n");
925   }
926   
927   
928 }