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.util.Bytes;
12
13 import org.apache.hadoop.hbase.HRegionInfo;
14
15 import org.apache.hadoop.hbase.ServerName;
16
17 import org.apache.hadoop.hbase.HBaseConfiguration;
18
19 import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
20
21 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.ServerInfo;
22
23 import org.apache.hadoop.hbase.protobuf.generated.ClusterStatusProtos.RegionLoad;
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 format;
32 private final String filter;
33 protected static org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData p_implData)
34 {
35 if(! p_implData.getFormat__IsNotDefault())
36 {
37 p_implData.setFormat("html");
38 }
39 if(! p_implData.getFilter__IsNotDefault())
40 {
41 p_implData.setFilter("general");
42 }
43 return p_implData;
44 }
45 public RSStatusTmplImpl(org.jamon.TemplateManager p_templateManager, org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData p_implData)
46 {
47 super(p_templateManager, __jamon_setOptionalArguments(p_implData));
48 regionServer = p_implData.getRegionServer();
49 format = p_implData.getFormat();
50 filter = p_implData.getFilter();
51 }
52
53 public void renderNoFlush(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter)
54 throws java.io.IOException
55 {
56
57 if (format.equals("json") )
58 {
59
60 jamonWriter.write("\n ");
61
62 {
63 org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_0 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());
64 __jamon__var_0.setFilter(filter);
65 __jamon__var_0.setFormat("json" );
66 __jamon__var_0.renderNoFlush(jamonWriter);
67 }
68
69 jamonWriter.write("\n ");
70
71 return;
72 }
73
74 jamonWriter.write("\n");
75
76
77 ServerInfo serverInfo = ProtobufUtil.getServerInfo(regionServer);
78 ServerName serverName = ProtobufUtil.toServerName(serverInfo.getServerName());
79 List<HRegionInfo> onlineRegions = ProtobufUtil.getOnlineRegions(regionServer);
80 int masterInfoPort = regionServer.getConfiguration().getInt("hbase.master.info.port", 60010);
81
82
83 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: ");
84
85 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(serverName.getHostname()), jamonWriter);
86
87 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\">\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 ");
88
89 if (HBaseConfiguration.isShowConfInServlet())
90 {
91
92 jamonWriter.write("\n <li><a href=\"/conf\">HBase Configuration</a></li>\n ");
93 }
94
95 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>RegionServer <small>");
96
97 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(serverName.getHostname()), jamonWriter);
98
99 jamonWriter.write("</small></h1>\n </div>\n </div>\n <div class=\"row\">\n\n <section>\n <h2>Server Metrics</h2>\n ");
100
101 {
102 org.apache.hadoop.hbase.tmpl.regionserver.ServerMetricsTmpl __jamon__var_1 = new org.apache.hadoop.hbase.tmpl.regionserver.ServerMetricsTmpl(this.getTemplateManager());
103 __jamon__var_1.renderNoFlush(jamonWriter, regionServer.getMetrics().getRegionServerWrapper());
104 }
105
106 jamonWriter.write("\n </section>\n\n <section>\n ");
107
108 {
109 org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_2 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());
110 __jamon__var_2.setFilter(filter );
111 __jamon__var_2.renderNoFlush(jamonWriter);
112 }
113
114 jamonWriter.write("\n </section>\n\n <section>\n <h2>Regions</h2>\n ");
115
116 {
117 org.apache.hadoop.hbase.tmpl.regionserver.RegionListTmpl __jamon__var_3 = new org.apache.hadoop.hbase.tmpl.regionserver.RegionListTmpl(this.getTemplateManager());
118 __jamon__var_3.renderNoFlush(jamonWriter, regionServer, onlineRegions);
119 }
120
121 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>");
122
123 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getVersion()), jamonWriter);
124
125 jamonWriter.write(", r");
126
127 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getRevision()), jamonWriter);
128
129 jamonWriter.write("</td>\n <td>HBase version and revision</td>\n </tr>\n <tr>\n <td>HBase Compiled</td>\n <td>");
130
131 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getDate()), jamonWriter);
132
133 jamonWriter.write(", ");
134
135 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getUser()), jamonWriter);
136
137 jamonWriter.write("</td>\n <td>When HBase version was compiled and by whom</td>\n </tr>\n <tr>\n <td>Zookeeper Quorum</td>\n <td>");
138
139 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(regionServer.getZooKeeper().getQuorum()), jamonWriter);
140
141 jamonWriter.write("</td>\n <td>Addresses of all registered ZK servers</td>\n </tr>\n <tr>\n <td>Coprocessors</td>\n <td>");
142
143 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(java.util.Arrays.toString(regionServer.getCoprocessors())), jamonWriter);
144
145 jamonWriter.write("</td>\n <td>Coprocessors currently loaded by this regionserver</td>\n </tr>\n <tr>\n <td>RS Start Time</td>\n <td>");
146
147 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(new Date(regionServer.getStartcode())), jamonWriter);
148
149 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 ");
150
151 if ((masterInfoPort < 0) )
152 {
153
154 jamonWriter.write("\n No hbase.master.info.port found\n ");
155 }
156
157 else
158 {
159
160 jamonWriter.write("\n ");
161
162
163 String host = regionServer.getMasterAddressManager().getMasterAddress().getHostname() + ":" + masterInfoPort;
164 String url = "//" + host + "/";
165
166
167 jamonWriter.write("<a href=\"");
168
169 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(url), jamonWriter);
170
171 jamonWriter.write("\">");
172
173 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(host), jamonWriter);
174
175 jamonWriter.write("</a>\n ");
176 }
177
178 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");
179 }
180
181
182 }