1
2
3
4 package org.apache.hadoop.hbase.tmpl.master;
5
6
7 import java.util.*;
8
9 import org.apache.hadoop.util.StringUtils;
10
11 import org.apache.hadoop.hbase.util.Bytes;
12
13 import org.apache.hadoop.hbase.util.JvmVersion;
14
15 import org.apache.hadoop.hbase.util.FSUtils;
16
17 import org.apache.hadoop.hbase.master.HMaster;
18
19 import org.apache.hadoop.hbase.HConstants;
20
21 import org.apache.hadoop.hbase.ServerLoad;
22
23 import org.apache.hadoop.hbase.ServerName;
24
25 import org.apache.hadoop.hbase.client.HBaseAdmin;
26
27 import org.apache.hadoop.hbase.client.HConnectionManager;
28
29 import org.apache.hadoop.hbase.HTableDescriptor;
30
31 import org.apache.hadoop.hbase.HBaseConfiguration;
32
33 import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription;
34
35 public class MasterStatusTmplImpl
36 extends org.jamon.AbstractTemplateImpl
37 implements org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.Intf
38
39 {
40 private final HMaster master;
41 private final HBaseAdmin admin;
42 private final List<ServerName> servers;
43 private final boolean showAppendWarning;
44 private final String filter;
45 private final Set<ServerName> deadServers;
46 private final ServerName metaLocation;
47 private final String format;
48 private final Map<String,Integer> frags;
49 private final boolean catalogJanitorEnabled;
50 protected static org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData p_implData)
51 {
52 if(! p_implData.getServers__IsNotDefault())
53 {
54 p_implData.setServers(null);
55 }
56 if(! p_implData.getShowAppendWarning__IsNotDefault())
57 {
58 p_implData.setShowAppendWarning(false);
59 }
60 if(! p_implData.getFilter__IsNotDefault())
61 {
62 p_implData.setFilter("general");
63 }
64 if(! p_implData.getDeadServers__IsNotDefault())
65 {
66 p_implData.setDeadServers(null);
67 }
68 if(! p_implData.getMetaLocation__IsNotDefault())
69 {
70 p_implData.setMetaLocation(null);
71 }
72 if(! p_implData.getFormat__IsNotDefault())
73 {
74 p_implData.setFormat("html");
75 }
76 if(! p_implData.getFrags__IsNotDefault())
77 {
78 p_implData.setFrags(null);
79 }
80 if(! p_implData.getCatalogJanitorEnabled__IsNotDefault())
81 {
82 p_implData.setCatalogJanitorEnabled(true);
83 }
84 return p_implData;
85 }
86 public MasterStatusTmplImpl(org.jamon.TemplateManager p_templateManager, org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData p_implData)
87 {
88 super(p_templateManager, __jamon_setOptionalArguments(p_implData));
89 master = p_implData.getMaster();
90 admin = p_implData.getAdmin();
91 servers = p_implData.getServers();
92 showAppendWarning = p_implData.getShowAppendWarning();
93 filter = p_implData.getFilter();
94 deadServers = p_implData.getDeadServers();
95 metaLocation = p_implData.getMetaLocation();
96 format = p_implData.getFormat();
97 frags = p_implData.getFrags();
98 catalogJanitorEnabled = p_implData.getCatalogJanitorEnabled();
99 }
100
101 public void renderNoFlush(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter)
102 throws java.io.IOException
103 {
104
105 if (format.equals("json") )
106 {
107
108 jamonWriter.write("\n ");
109
110 {
111 org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_4 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());
112 __jamon__var_4.setFilter(filter);
113 __jamon__var_4.setFormat("json" );
114 __jamon__var_4.renderNoFlush(jamonWriter);
115 }
116
117 jamonWriter.write("\n ");
118
119 return;
120 }
121
122 jamonWriter.write("\n<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <title>Master: ");
123
124 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(master.getServerName().getHostname()), jamonWriter);
125
126 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.css\" rel=\"stylesheet\">\n <link href=\"/static/css/bootstrap-responsive.css\" rel=\"stylesheet\">\n <link href=\"/static/css/hbase.css\" rel=\"stylesheet\">\n <!--[if lt IE 9]>\n <script src=\"/static/js/html5shiv.js\"></script>\n <![endif]-->\n </head>\n\n <body>\n\n <div class=\"navbar navbar-fixed-top\">\n <div class=\"navbar-inner\">\n <div class=\"container\">\n <a class=\"btn btn-navbar\" data-toggle=\"collapse\" data-target=\".nav-collapse\">\n <span class=\"icon-bar\"></span>\n <span class=\"icon-bar\"></span>\n <span class=\"icon-bar\"></span>\n </a>\n <a class=\"brand\" href=\"/master-status\"><img src=\"/static/hbase_logo_small.png\" alt=\"HBase Logo\"/></a>\n <div class=\"nav-collapse\">\n <ul class=\"nav\">\n <li class=\"active\"><a href=\"/\">Home</a></li>\n <li><a href=\"/tablesDetailed.jsp\">Table Details</a></li>\n <li><a href=\"/logs/\">Local logs</a></li>\n <li><a href=\"/logLevel\">Log Level</a></li>\n <li><a href=\"/dump\">Debug dump</a></li>\n <li><a href=\"/jmx\">Metrics Dump</a></li>\n ");
127
128 if (HBaseConfiguration.isShowConfInServlet())
129 {
130
131 jamonWriter.write("\n <li><a href=\"/conf\">HBase Configuration</a></li>\n ");
132 }
133
134 jamonWriter.write("\n </ul>\n </div><!--/.nav-collapse -->\n </div>\n </div>\n </div>\n\n <div class=\"container\">\n <div class=\"row inner_header\">\n <div class=\"page-header\">\n <h1>Master <small>");
135
136 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(master.getServerName().getHostname()), jamonWriter);
137
138 jamonWriter.write(" </small></h1>\n </div>\n </div>\n\n <div class=\"row\">\n <!-- Various warnings that cluster admins should be aware of -->\n ");
139
140 if (JvmVersion.isBadJvmVersion() )
141 {
142
143 jamonWriter.write("\n <div class=\"alert alert-error\">\n Your current JVM version ");
144
145 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(System.getProperty("java.version")), jamonWriter);
146
147 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 ");
148 }
149
150 jamonWriter.write("\n ");
151
152 if (showAppendWarning )
153 {
154
155 jamonWriter.write("\n <div class=\"alert alert-error\">\n You are currently running the HMaster without HDFS append support enabled.\n This may result in data loss.\n Please see the <a href=\"http://wiki.apache.org/hadoop/Hbase/HdfsSyncSupport\">HBase wiki</a>\n for details.\n </div>\n ");
156 }
157
158 jamonWriter.write("\n ");
159
160 if (master.isInitialized() && !catalogJanitorEnabled )
161 {
162
163 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 ");
164 }
165
166 jamonWriter.write("\n\n <section>\n <h2>Region Servers</h2>\n ");
167
168 {
169 org.apache.hadoop.hbase.tmpl.master.RegionServerListTmpl __jamon__var_5 = new org.apache.hadoop.hbase.tmpl.master.RegionServerListTmpl(this.getTemplateManager());
170 __jamon__var_5.setServers(servers );
171 __jamon__var_5.renderNoFlush(jamonWriter, master);
172 }
173
174 jamonWriter.write("\n\n ");
175
176 if ((deadServers != null) )
177 {
178
179 jamonWriter.write("\n ");
180
181 {
182
183 __jamon_innerUnit__deadRegionServers(jamonWriter);
184 }
185
186 jamonWriter.write("\n ");
187 }
188
189 jamonWriter.write("\n </section>\n\n <section>\n <h2>Backup Masters</h2>\n ");
190
191 {
192 org.apache.hadoop.hbase.tmpl.master.BackupMasterListTmpl __jamon__var_6 = new org.apache.hadoop.hbase.tmpl.master.BackupMasterListTmpl(this.getTemplateManager());
193 __jamon__var_6.renderNoFlush(jamonWriter, master );
194 }
195
196 jamonWriter.write("\n </section>\n\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\">Catalog 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 ");
197
198 if ((metaLocation != null) )
199 {
200
201 jamonWriter.write("\n ");
202
203 {
204
205 __jamon_innerUnit__userTables(jamonWriter);
206 }
207
208 jamonWriter.write("\n ");
209 }
210
211 jamonWriter.write("\n </div>\n <div class=\"tab-pane\" id=\"tab_catalogTables\">\n ");
212
213 if ((metaLocation != null) )
214 {
215
216 jamonWriter.write("\n ");
217
218 {
219
220 __jamon_innerUnit__catalogTables(jamonWriter);
221 }
222
223 jamonWriter.write("\n ");
224 }
225
226 jamonWriter.write("\n </div>\n <div class=\"tab-pane\" id=\"tab_userSnapshots\">\n ");
227
228 {
229
230 __jamon_innerUnit__userSnapshots(jamonWriter);
231 }
232
233 jamonWriter.write("\n </div>\n </div>\n </div>\n </section>\n\n ");
234
235 {
236 org.apache.hadoop.hbase.tmpl.master.AssignmentManagerStatusTmpl __jamon__var_7 = new org.apache.hadoop.hbase.tmpl.master.AssignmentManagerStatusTmpl(this.getTemplateManager());
237 __jamon__var_7.renderNoFlush(jamonWriter, master.getAssignmentManager());
238 }
239
240 jamonWriter.write("\n\n <section>\n ");
241
242 {
243 org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_8 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());
244 __jamon__var_8.setFilter(filter );
245 __jamon__var_8.renderNoFlush(jamonWriter);
246 }
247
248 jamonWriter.write("\n </section>\n\n <section>\n <h2>Software Attributes</h2>\n <table id=\"attributes_table\" class=\"table table-striped\">\n <tr>\n <th>Attribute Name</th>\n <th>Value</th>\n <th>Description</th>\n </tr>\n <tr>\n <td>HBase Version</td>\n <td>");
249
250 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getVersion()), jamonWriter);
251
252 jamonWriter.write(", r");
253
254 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getRevision()), jamonWriter);
255
256 jamonWriter.write("</td><td>HBase version and revision</td>\n </tr>\n <tr>\n <td>HBase Compiled</td>\n <td>");
257
258 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getDate()), jamonWriter);
259
260 jamonWriter.write(", ");
261
262 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getUser()), jamonWriter);
263
264 jamonWriter.write("</td>\n <td>When HBase version was compiled and by whom</td>\n </tr>\n <tr>\n <td>Hadoop Version</td>\n <td>");
265
266 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getVersion()), jamonWriter);
267
268 jamonWriter.write(", r");
269
270 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getRevision()), jamonWriter);
271
272 jamonWriter.write("</td>\n <td>Hadoop version and revision</td>\n </tr>\n <tr>\n <td>Hadoop Compiled</td>\n <td>");
273
274 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getDate()), jamonWriter);
275
276 jamonWriter.write(", ");
277
278 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getUser()), jamonWriter);
279
280 jamonWriter.write("</td>\n <td>When Hadoop version was compiled and by whom</td>\n </tr>\n <tr>\n <td>HBase Root Directory</td>\n <td>");
281
282 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(FSUtils.getRootDir(master.getConfiguration()).toString()), jamonWriter);
283
284 jamonWriter.write("</td>\n <td>Location of HBase home directory</td>\n </tr>\n <tr>\n <td>HBase Cluster ID</td>\n <td>");
285
286 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(master.getClusterId() != null ? master.getClusterId() : "Not set"), jamonWriter);
287
288 jamonWriter.write("</td>\n <td>Unique identifier generated for each HBase cluster</td>\n </tr>\n <tr>\n <td>Load average</td>\n <td>");
289
290 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(StringUtils.limitDecimalTo2(master.getServerManager().getAverageLoad())), jamonWriter);
291
292 jamonWriter.write("</td>\n <td>Average number of regions per regionserver. Naive computation.</td>\n </tr>\n ");
293
294 if (frags != null )
295 {
296
297 jamonWriter.write("\n <tr>\n <td>Fragmentation</td>\n <td>");
298
299 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(frags.get("-TOTAL-") != null ? frags.get("-TOTAL-").intValue() + "%" : "n/a"), jamonWriter);
300
301 jamonWriter.write("</td>\n <td>Overall fragmentation of all tables, including .META.</td>\n </tr>\n ");
302 }
303
304 jamonWriter.write("\n <tr>\n <td>Zookeeper Quorum</td>\n <td>");
305
306 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(master.getZooKeeperWatcher().getQuorum()), jamonWriter);
307
308 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>Coprocessors</td>\n <td>");
309
310 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(java.util.Arrays.toString(master.getCoprocessors())), jamonWriter);
311
312 jamonWriter.write("</td>\n <td>Coprocessors currently loaded by the master</td>\n </tr>\n <tr>\n <td>HMaster Start Time</td>\n <td>");
313
314 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(new Date(master.getMasterStartTime())), jamonWriter);
315
316 jamonWriter.write("</td>\n <td>Date stamp of when this HMaster was started</td>\n </tr>\n <tr>\n <td>HMaster Active Time</td>\n <td>");
317
318 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(new Date(master.getMasterActiveTime())), jamonWriter);
319
320 jamonWriter.write("</td>\n <td>Date stamp of when this HMaster became active</td>\n </tr>\n </table>\n </section>\n </div>\n </div> <!-- /container -->\n\n <script src=\"/static/js/jquery.min.js\" type=\"text/javascript\"></script>\n <script src=\"/static/js/bootstrap.min.js\" type=\"text/javascript\"></script>\n <script src=\"/static/js/tab.js\" type=\"text/javascript\"></script>\n </body>\n</html>\n\n\n");
321 }
322
323
324
325 private void __jamon_innerUnit__userSnapshots(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter)
326 throws java.io.IOException
327 {
328
329
330 List<SnapshotDescription> snapshots = admin.listSnapshots();
331
332
333 if ((snapshots != null && snapshots.size() > 0))
334 {
335
336 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 ");
337
338 for (SnapshotDescription snapshotDesc : snapshots)
339 {
340
341 jamonWriter.write("\n <tr>\n <td><a href=\"snapshot.jsp?name=");
342
343 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(snapshotDesc.getName()), jamonWriter);
344
345 jamonWriter.write("\">");
346
347 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(snapshotDesc.getName()), jamonWriter);
348
349 jamonWriter.write("</a> </td>\n <td><a href=\"table.jsp?name=");
350
351 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(snapshotDesc.getTable()), jamonWriter);
352
353 jamonWriter.write("\">");
354
355 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(snapshotDesc.getTable()), jamonWriter);
356
357 jamonWriter.write("</a></td>\n <td>");
358
359 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(new Date(snapshotDesc.getCreationTime())), jamonWriter);
360
361 jamonWriter.write("</td>\n </tr>\n ");
362 }
363
364 jamonWriter.write("\n <p>");
365
366 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(snapshots.size()), jamonWriter);
367
368 jamonWriter.write(" snapshot(s) in set.</p>\n</table>\n");
369 }
370
371 jamonWriter.write("\n");
372 }
373
374
375
376 private void __jamon_innerUnit__catalogTables(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter)
377 throws java.io.IOException
378 {
379
380 jamonWriter.write("<table class=\"table table-striped\">\n<tr>\n <th>Table Name</th>\n ");
381
382 if ((frags != null) )
383 {
384
385 jamonWriter.write("\n <th title=\"Fragmentation - Will be 0% after a major compaction and fluctuate during normal usage.\">Frag.</th>\n ");
386 }
387
388 jamonWriter.write("\n <th>Description</th>\n</tr>\n ");
389
390 if ((metaLocation != null) )
391 {
392
393 jamonWriter.write("\n<tr>\n <td><a href=\"table.jsp?name=");
394
395 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(Bytes.toString(HConstants.META_TABLE_NAME)), jamonWriter);
396
397 jamonWriter.write("\">");
398
399 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(Bytes.toString(HConstants.META_TABLE_NAME)), jamonWriter);
400
401 jamonWriter.write("</a></td>\n ");
402
403 if ((frags != null))
404 {
405
406 jamonWriter.write("\n <td align=\"center\">");
407
408 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(frags.get(".META.") != null ? frags.get(".META.").intValue() + "%" : "n/a"), jamonWriter);
409
410 jamonWriter.write("</td>\n ");
411 }
412
413 jamonWriter.write("\n <td>The .META. table holds references to all User Table regions</td>\n</tr>\n\n ");
414 }
415
416 jamonWriter.write("\n</table>\n");
417 }
418
419
420
421 private void __jamon_innerUnit__userTables(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter)
422 throws java.io.IOException
423 {
424
425
426 HTableDescriptor[] tables = admin.listTables();
427
428
429 if ((tables != null && tables.length > 0))
430 {
431
432 jamonWriter.write("\n<table class=\"table table-striped\">\n <tr>\n <th>Table Name</th>\n ");
433
434 if ((frags != null) )
435 {
436
437 jamonWriter.write("\n <th title=\"Fragmentation - Will be 0% after a major compaction and fluctuate during normal usage.\">Frag.</th>\n ");
438 }
439
440 jamonWriter.write("\n <th>Online Regions</th>\n <th>Description</th>\n </tr>\n ");
441
442 for (HTableDescriptor htDesc : tables)
443 {
444
445 jamonWriter.write("\n <tr>\n <td><a href=table.jsp?name=");
446
447 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(htDesc.getNameAsString()), jamonWriter);
448
449 jamonWriter.write(">");
450
451 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(htDesc.getNameAsString()), jamonWriter);
452
453 jamonWriter.write("</a> </td>\n ");
454
455 if ((frags != null) )
456 {
457
458 jamonWriter.write("\n <td align=\"center\">");
459
460 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(frags.get(htDesc.getNameAsString()) != null ? frags.get(htDesc.getNameAsString()).intValue() + "%" : "n/a"), jamonWriter);
461
462 jamonWriter.write("</td>\n ");
463 }
464
465 jamonWriter.write("\n <td>");
466
467 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(master.getAssignmentManager().getRegionStates().getRegionsOfTable(htDesc.getName()).size()), jamonWriter);
468
469 jamonWriter.write("\n <td>");
470
471 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(htDesc.toStringCustomizedValues()), jamonWriter);
472
473 jamonWriter.write("</td>\n </tr>\n ");
474 }
475
476 jamonWriter.write("\n <p>");
477
478 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(tables.length), jamonWriter);
479
480 jamonWriter.write(" table(s) in set. [<a href=tablesDetailed.jsp>Details</a>]</p>\n</table>\n");
481 }
482
483 jamonWriter.write("\n");
484 }
485
486
487
488 private void __jamon_innerUnit__deadRegionServers(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter)
489 throws java.io.IOException
490 {
491
492 if ((deadServers != null && deadServers.size() > 0))
493 {
494
495 jamonWriter.write("\n<h2>Dead Region Servers</h2>\n<table class=\"table table-striped\">\n <tr>\n <th rowspan=\"");
496
497 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(deadServers.size() + 1), jamonWriter);
498
499 jamonWriter.write("\"></th>\n <th>ServerName</th>\n </tr>\n ");
500
501
502 ServerName [] deadServerNames = deadServers.toArray(new ServerName[deadServers.size()]);
503 Arrays.sort(deadServerNames);
504 for (ServerName deadServerName: deadServerNames) {
505 int infoPort = master.getConfiguration().getInt("hbase.regionserver.info.port", 60030);
506
507
508 jamonWriter.write("<tr>\n <td>");
509
510 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(deadServerName), jamonWriter);
511
512 jamonWriter.write("</td>\n </tr>\n ");
513
514
515 }
516
517
518 jamonWriter.write("<tr>\n <th>Total: </th>\n <td>servers: ");
519
520 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(deadServers.size()), jamonWriter);
521
522 jamonWriter.write("</td>\n </tr>\n</table>\n");
523 }
524
525 jamonWriter.write("\n");
526
527
528 HConnectionManager.deleteConnection(admin.getConfiguration());
529
530 }
531
532
533 }