1
2
3
4 package org.apache.hadoop.hbase.tmpl.regionserver;
5
6
7 import java.util.*;
8
9 import org.apache.hadoop.hbase.regionserver.HRegionServer;
10
11 import org.apache.hadoop.hbase.HRegionInfo;
12
13 import org.apache.hadoop.hbase.ServerName;
14
15 import org.apache.hadoop.hbase.HBaseConfiguration;
16
17 import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
18
19 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.ServerInfo;
20
21 import org.apache.hadoop.hbase.util.JvmVersion;
22
23 import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;
24
25 public class RSStatusTmplImpl
26 extends org.jamon.AbstractTemplateImpl
27 implements org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.Intf
28
29 {
30 private final HRegionServer regionServer;
31 private final String filter;
32 private final String format;
33 private final String bcn;
34 private final String bcv;
35 protected static org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData p_implData)
36 {
37 if(! p_implData.getFilter__IsNotDefault())
38 {
39 p_implData.setFilter("general");
40 }
41 if(! p_implData.getFormat__IsNotDefault())
42 {
43 p_implData.setFormat("html");
44 }
45 if(! p_implData.getBcn__IsNotDefault())
46 {
47 p_implData.setBcn("");
48 }
49 if(! p_implData.getBcv__IsNotDefault())
50 {
51 p_implData.setBcv("");
52 }
53 return p_implData;
54 }
55 public RSStatusTmplImpl(org.jamon.TemplateManager p_templateManager, org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData p_implData)
56 {
57 super(p_templateManager, __jamon_setOptionalArguments(p_implData));
58 regionServer = p_implData.getRegionServer();
59 filter = p_implData.getFilter();
60 format = p_implData.getFormat();
61 bcn = p_implData.getBcn();
62 bcv = p_implData.getBcv();
63 }
64
65 @Override public void renderNoFlush(final java.io.Writer jamonWriter)
66 throws java.io.IOException
67 {
68
69 if (format.equals("json") && bcn != null && bcn.length() > 0 )
70 {
71
72 jamonWriter.write("\n ");
73
74 {
75 org.apache.hadoop.hbase.tmpl.regionserver.BlockCacheViewTmpl __jamon__var_0 = new org.apache.hadoop.hbase.tmpl.regionserver.BlockCacheViewTmpl(this.getTemplateManager());
76 __jamon__var_0.renderNoFlush(jamonWriter, regionServer.getCacheConfig(), regionServer.getConfiguration(), bcn, bcv);
77 }
78
79 jamonWriter.write("\n ");
80
81 return;
82 }
83
84 else if (format.equals("json") )
85 {
86
87 jamonWriter.write("\n ");
88
89 {
90 org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_1 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());
91 __jamon__var_1.setFormat("json" );
92 __jamon__var_1.setFilter(filter);
93 __jamon__var_1.renderNoFlush(jamonWriter);
94 }
95
96 jamonWriter.write("\n ");
97
98 return;
99 }
100
101 jamonWriter.write("\n");
102
103
104 ServerInfo serverInfo = ProtobufUtil.getServerInfo(null, regionServer.getRSRpcServices());
105 ServerName serverName = ProtobufUtil.toServerName(serverInfo.getServerName());
106 List<HRegionInfo> onlineRegions = ProtobufUtil.getOnlineRegions(regionServer.getRSRpcServices());
107 MasterAddressTracker masterAddressTracker = regionServer.getMasterAddressTracker();
108 ServerName masterServerName = masterAddressTracker == null ? null
109 : masterAddressTracker.getMasterAddress();
110 int infoPort = masterAddressTracker == null ? 0 : masterAddressTracker.getMasterInfoPort();
111
112
113 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>HBase Region Server: ");
114
115 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(serverName.getHostname()), jamonWriter);
116
117 jamonWriter.write("</title>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <meta name=\"description\" content=\"\">\n\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=\"/rs-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=\"/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 ");
118
119 if (HBaseConfiguration.isShowConfInServlet())
120 {
121
122 jamonWriter.write("\n <li><a href=\"/conf\">HBase Configuration</a></li>\n ");
123 }
124
125 jamonWriter.write("\n </ul>\n </div><!--/.nav-collapse -->\n </div>\n </div>\n </div>\n\n <div class=\"container-fluid content\">\n <div class=\"row inner_header\">\n <div class=\"page-header\">\n <h1>RegionServer <small>");
126
127 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(serverName), jamonWriter);
128
129 jamonWriter.write("</small></h1>\n </div>\n </div>\n <div class=\"row\">\n\n <section>\n <h2>Server Metrics</h2>\n ");
130
131 {
132 org.apache.hadoop.hbase.tmpl.regionserver.ServerMetricsTmpl __jamon__var_2 = new org.apache.hadoop.hbase.tmpl.regionserver.ServerMetricsTmpl(this.getTemplateManager());
133 __jamon__var_2.renderNoFlush(jamonWriter, regionServer.getRegionServerMetrics().getRegionServerWrapper(), regionServer.getRpcServer().getMetrics().getHBaseServerWrapper());
134 }
135
136 jamonWriter.write("\n </section>\n\n <section>\n <h2>Block Cache</h2>\n ");
137
138 {
139 org.apache.hadoop.hbase.tmpl.regionserver.BlockCacheTmpl __jamon__var_3 = new org.apache.hadoop.hbase.tmpl.regionserver.BlockCacheTmpl(this.getTemplateManager());
140 __jamon__var_3.renderNoFlush(jamonWriter, regionServer.getCacheConfig(), regionServer.getConfiguration() );
141 }
142
143 jamonWriter.write("\n </section>\n\n <section>\n ");
144
145 {
146 org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_4 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());
147 __jamon__var_4.setFilter(filter );
148 __jamon__var_4.renderNoFlush(jamonWriter);
149 }
150
151 jamonWriter.write("\n </section>\n\n <section>\n <h2>Regions</h2>\n ");
152
153 {
154 org.apache.hadoop.hbase.tmpl.regionserver.RegionListTmpl __jamon__var_5 = new org.apache.hadoop.hbase.tmpl.regionserver.RegionListTmpl(this.getTemplateManager());
155 __jamon__var_5.renderNoFlush(jamonWriter, regionServer, onlineRegions);
156 }
157
158 jamonWriter.write("\n </section>\n\n <section>\n <h2>Replication Status</h1>\n ");
159
160 {
161 org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl __jamon__var_6 = new org.apache.hadoop.hbase.tmpl.regionserver.ReplicationStatusTmpl(this.getTemplateManager());
162 __jamon__var_6.renderNoFlush(jamonWriter, regionServer);
163 }
164
165 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>");
166
167 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(JvmVersion.getVersion()), jamonWriter);
168
169 jamonWriter.write("</td>\n <td>JVM vendor and version</td>\n </tr>\n <tr>\n <td>HBase Version</td>\n <td>");
170
171 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getVersion()), jamonWriter);
172
173 jamonWriter.write(", revision=");
174
175 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getRevision()), jamonWriter);
176
177 jamonWriter.write("</td>\n <td>HBase version and revision</td>\n </tr>\n <tr>\n <td>HBase Compiled</td>\n <td>");
178
179 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getDate()), jamonWriter);
180
181 jamonWriter.write(", ");
182
183 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getUser()), jamonWriter);
184
185 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>");
186
187 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getSrcChecksum()), jamonWriter);
188
189 jamonWriter.write("</td>\n <td>HBase source MD5 checksum</td>\n </tr>\n <tr>\n <td>Hadoop Version</td>\n <td>");
190
191 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getVersion()), jamonWriter);
192
193 jamonWriter.write(", revision=");
194
195 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getRevision()), jamonWriter);
196
197 jamonWriter.write("</td>\n <td>Hadoop version and revision</td>\n </tr>\n <tr>\n <td>Hadoop Compiled</td>\n <td>");
198
199 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getDate()), jamonWriter);
200
201 jamonWriter.write(", ");
202
203 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getUser()), jamonWriter);
204
205 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>");
206
207 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getSrcChecksum()), jamonWriter);
208
209 jamonWriter.write("</td>\n <td>Hadoop source MD5 checksum</td>\n </tr>\n <tr>\n <td>ZooKeeper Client Version</td>\n <td>");
210
211 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.zookeeper.Version.getVersion()), jamonWriter);
212
213 jamonWriter.write("</td>\n <td>ZooKeeper client version and revision</td>\n </tr>\n <tr>\n <td>ZooKeeper Client Compiled</td>\n <td>");
214
215 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.zookeeper.Version.getBuildDate()), jamonWriter);
216
217 jamonWriter.write("</td>\n <td>When ZooKeeper client version was compiled</td>\n </tr>\n <tr>\n <td>Zookeeper Quorum</td>\n <td>");
218
219 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(regionServer.getZooKeeper().getQuorum()), jamonWriter);
220
221 jamonWriter.write("</td>\n <td>Addresses of all registered ZK servers</td>\n </tr>\n <tr>\n <td>Coprocessors</td>\n <td>");
222
223 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(java.util.Arrays.toString(regionServer.getRegionServerCoprocessors())), jamonWriter);
224
225 jamonWriter.write("</td>\n <td>Coprocessors currently loaded by this regionserver</td>\n </tr>\n <tr>\n <td>RS Start Time</td>\n <td>");
226
227 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(new Date(regionServer.getStartcode())), jamonWriter);
228
229 jamonWriter.write("</td>\n <td>Date stamp of when this region server was started</td>\n </tr>\n <tr>\n <td>HBase Master</td>\n <td>\n ");
230
231 if (masterServerName == null )
232 {
233
234 jamonWriter.write("\n No master found\n ");
235 }
236
237 else
238 {
239
240 jamonWriter.write("\n ");
241
242
243 String host = masterServerName.getHostname() + ":" + infoPort;
244 String url = "//" + host + "/master-status";
245
246
247 jamonWriter.write("<a href=\"");
248
249 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(url), jamonWriter);
250
251 jamonWriter.write("\">");
252
253 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(host), jamonWriter);
254
255 jamonWriter.write("</a>\n ");
256 }
257
258 jamonWriter.write("\n </td>\n <td>Address of HBase Master</td>\n </tr>\n </table>\n </section>\n </div>\n</div>\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");
259 }
260
261
262 }