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.regionserver.MetricsRegionServerWrapper;
12
13 import org.apache.hadoop.hbase.util.Bytes;
14
15 import org.apache.hadoop.hbase.HRegionInfo;
16
17 import org.apache.hadoop.hbase.ServerName;
18
19 import org.apache.hadoop.hbase.HBaseConfiguration;
20
21 import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
22
23 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.ServerInfo;
24
25 import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.RegionLoad;
26
27 import org.apache.hadoop.hbase.metrics.histogram.MetricsHistogram;
28
29 import com.yammer.metrics.stats.Snapshot;
30
31 import java.lang.management.ManagementFactory;
32
33 public class ServerMetricsTmplImpl
34 extends org.jamon.AbstractTemplateImpl
35 implements org.apache.hadoop.hbase.tmpl.regionserver.ServerMetricsTmpl.Intf
36
37 {
38 private final MetricsRegionServerWrapper mWrap;
39 protected static org.apache.hadoop.hbase.tmpl.regionserver.ServerMetricsTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.regionserver.ServerMetricsTmpl.ImplData p_implData)
40 {
41 return p_implData;
42 }
43 public ServerMetricsTmplImpl(org.jamon.TemplateManager p_templateManager, org.apache.hadoop.hbase.tmpl.regionserver.ServerMetricsTmpl.ImplData p_implData)
44 {
45 super(p_templateManager, __jamon_setOptionalArguments(p_implData));
46 mWrap = p_implData.getMWrap();
47 }
48
49 public void renderNoFlush(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter)
50 throws java.io.IOException
51 {
52
53 jamonWriter.write("<div class=\"tabbable\">\n <ul class=\"nav nav-pills\">\n <li class=\"active\"><a href=\"#tab_baseStats\" data-toggle=\"tab\">Base Stats</a></li>\n <li class=\"\"><a href=\"#tab_memoryStats\" data-toggle=\"tab\">Memory</a></li>\n <li class=\"\"><a href=\"#tab_requestStats\" data-toggle=\"tab\">Requests</a></li>\n <li class=\"\"><a href=\"#tab_storeStats\" data-toggle=\"tab\">Storefiles</a></li>\n <li class=\"\"><a href=\"#tab_queueStats\" data-toggle=\"tab\">Queues</a></li>\n <li class=\"\"><a href=\"#tab_blockCacheStats\" data-toggle=\"tab\">Block Cache</a></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_baseStats\">\n ");
54
55 {
56
57 __jamon_innerUnit__baseStats(jamonWriter, mWrap );
58 }
59
60 jamonWriter.write("\n </div>\n <div class=\"tab-pane\" id=\"tab_memoryStats\">\n ");
61
62 {
63
64 __jamon_innerUnit__memoryStats(jamonWriter, mWrap );
65 }
66
67 jamonWriter.write("\n </div>\n <div class=\"tab-pane\" id=\"tab_requestStats\">\n ");
68
69 {
70
71 __jamon_innerUnit__requestStats(jamonWriter, mWrap );
72 }
73
74 jamonWriter.write("\n </div>\n <div class=\"tab-pane\" id=\"tab_storeStats\">\n ");
75
76 {
77
78 __jamon_innerUnit__storeStats(jamonWriter, mWrap );
79 }
80
81 jamonWriter.write("\n </div>\n <div class=\"tab-pane\" id=\"tab_queueStats\">\n ");
82
83 {
84
85 __jamon_innerUnit__queueStats(jamonWriter, mWrap );
86 }
87
88 jamonWriter.write("\n </div>\n <div class=\"tab-pane\" id=\"tab_blockCacheStats\">\n ");
89
90 {
91
92 __jamon_innerUnit__blockCacheStats(jamonWriter, mWrap );
93 }
94
95 jamonWriter.write("\n </div>\n </div>\n</div>\n\n");
96 }
97
98
99
100 private void __jamon_innerUnit__requestStats(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter, final MetricsRegionServerWrapper mWrap)
101 throws java.io.IOException
102 {
103
104 jamonWriter.write("<table class=\"table table-striped\">\n<tr>\n <th>Request Per Second</th>\n <th>Read Request Count</th>\n <th>Write Request Count</th>\n</tr>\n<tr>\n <td>");
105
106 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getRequestsPerSecond()), jamonWriter);
107
108 jamonWriter.write("</td>\n <td>");
109
110 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getReadRequestsCount()), jamonWriter);
111
112 jamonWriter.write("</td>\n <td>");
113
114 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getWriteRequestsCount()), jamonWriter);
115
116 jamonWriter.write("KB</td>\n</tr>\n</table>\n");
117 }
118
119
120
121 private void __jamon_innerUnit__queueStats(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter, final MetricsRegionServerWrapper mWrap)
122 throws java.io.IOException
123 {
124
125 jamonWriter.write("<table class=\"table table-striped\">\n<tr>\n <th>Compaction queue size</th>\n <th>Flush queue size</th>\n\n</tr>\n<tr>\n <td>");
126
127 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getCompactionQueueSize()), jamonWriter);
128
129 jamonWriter.write("</td>\n <td>");
130
131 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getFlushQueueSize()), jamonWriter);
132
133 jamonWriter.write("</td>\n</tr>\n</table>\n");
134 }
135
136
137
138 private void __jamon_innerUnit__blockCacheStats(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter, final MetricsRegionServerWrapper mWrap)
139 throws java.io.IOException
140 {
141
142 jamonWriter.write("<table class=\"table table-striped\">\n<tr>\n <th>Cache Size</th>\n <th>Cache Free</th>\n <th>Cache Count</th>\n <th>Cache Hits</th>\n <th>Cache Misses</th>\n <th>Cache Hit Ratio</th>\n <th>Cache Eviction Count</th>\n\n</tr>\n<tr>\n <td>");
143
144 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getBlockCacheSize()), jamonWriter);
145
146 jamonWriter.write("</td>\n <td>");
147
148 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getBlockCacheFreeSize()), jamonWriter);
149
150 jamonWriter.write("</td>\n <td>");
151
152 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getBlockCacheCount()), jamonWriter);
153
154 jamonWriter.write("</td>\n <td>");
155
156 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getBlockCacheHitCount()), jamonWriter);
157
158 jamonWriter.write("</td>\n <td>");
159
160 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getBlockCacheMissCount()), jamonWriter);
161
162 jamonWriter.write("</td>\n <td>");
163
164 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getBlockCacheHitPercent()), jamonWriter);
165
166 jamonWriter.write("%</td>\n <td>");
167
168 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getBlockCacheEvictedCount()), jamonWriter);
169
170 jamonWriter.write("</td>\n</tr>\n</table>\n");
171 }
172
173
174
175 private void __jamon_innerUnit__memoryStats(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter, final MetricsRegionServerWrapper mWrap)
176 throws java.io.IOException
177 {
178
179 jamonWriter.write("<table class=\"table table-striped\">\n<tr>\n <tr>\n <th>Used Heap</th>\n <th>Max Heap</th>\n <th>Memstore Size</th>\n </tr>\n</tr>\n<tr>\n <td>\n ");
180
181 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed()), jamonWriter);
182
183 jamonWriter.write("\n </td>\n <td>\n ");
184
185 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getMax()), jamonWriter);
186
187 jamonWriter.write("\n </td>\n <td>");
188
189 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getMemstoreSize()), jamonWriter);
190
191 jamonWriter.write("</td>\n</tr>\n</table>\n");
192 }
193
194
195
196 private void __jamon_innerUnit__baseStats(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter, final MetricsRegionServerWrapper mWrap)
197 throws java.io.IOException
198 {
199
200 jamonWriter.write("<table class=\"table table-striped\">\n <tr>\n\n <th>Requests Per Second</th>\n <th>Num. Regions</th>\n <th>Block locality</th>\n <th>Slow HLog Append Count</th>\n </tr>\n <tr>\n <td>");
201
202 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getRequestsPerSecond()), jamonWriter);
203
204 jamonWriter.write("</td>\n <td>");
205
206 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getNumOnlineRegions()), jamonWriter);
207
208 jamonWriter.write("</td>\n <td>");
209
210 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getPercentFileLocal()), jamonWriter);
211
212 jamonWriter.write("</td>\n <td>");
213
214 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(0), jamonWriter);
215
216 jamonWriter.write("</td>\n </tr>\n</table>\n");
217 }
218
219
220
221 private void __jamon_innerUnit__storeStats(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter, final MetricsRegionServerWrapper mWrap)
222 throws java.io.IOException
223 {
224
225 jamonWriter.write("<table class=\"table table-striped\">\n<tr>\n\n <th>Num. Stores</th>\n <th>Num. Storefiles</th>\n <th>Root Index Size</th>\n <th>Index Size</th>\n <th>Bloom Size</th>\n</tr>\n<tr>\n <td>");
226
227 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getNumStores()), jamonWriter);
228
229 jamonWriter.write("</td>\n <td>");
230
231 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getNumStoreFiles()), jamonWriter);
232
233 jamonWriter.write("</td>\n <td>");
234
235 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getStoreFileIndexSize()), jamonWriter);
236
237 jamonWriter.write("</td>\n <td>");
238
239 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getTotalStaticIndexSize()), jamonWriter);
240
241 jamonWriter.write("</td>\n <td>");
242
243 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(mWrap.getTotalStaticBloomSize()), jamonWriter);
244
245 jamonWriter.write("</td>\n</tr>\n</table>\n");
246 }
247
248
249 }