1
2
3
4 package org.apache.hadoop.hbase.tmpl.regionserver;
5
6
7 import java.util.*;
8
9 import org.apache.hadoop.conf.Configuration;
10
11 import org.apache.hadoop.hbase.io.hfile.BlockCacheUtil.CachedBlocksByFile;
12
13 import org.apache.hadoop.hbase.io.hfile.BlockCacheUtil;
14
15 import org.apache.hadoop.hbase.io.hfile.CachedBlock;
16
17 import org.apache.hadoop.hbase.io.hfile.CacheConfig;
18
19 import org.apache.hadoop.hbase.io.hfile.BlockCache;
20
21 import org.apache.hadoop.hbase.io.hfile.bucket.BucketCacheStats;
22
23 import org.apache.hadoop.hbase.io.hfile.bucket.BucketCache;
24
25 import org.apache.hadoop.hbase.io.hfile.bucket.BucketAllocator;
26
27 import org.apache.hadoop.hbase.io.hfile.bucket.BucketAllocator.Bucket;
28
29 import org.apache.hadoop.util.StringUtils;
30
31 import com.yammer.metrics.stats.Snapshot;
32
33 public class BlockCacheViewTmplImpl
34 extends org.jamon.AbstractTemplateImpl
35 implements org.apache.hadoop.hbase.tmpl.regionserver.BlockCacheViewTmpl.Intf
36
37 {
38 private final CacheConfig cacheConfig;
39 private final Configuration conf;
40 private final String bcn;
41 private final String bcv;
42 protected static org.apache.hadoop.hbase.tmpl.regionserver.BlockCacheViewTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.regionserver.BlockCacheViewTmpl.ImplData p_implData)
43 {
44 return p_implData;
45 }
46 public BlockCacheViewTmplImpl(org.jamon.TemplateManager p_templateManager, org.apache.hadoop.hbase.tmpl.regionserver.BlockCacheViewTmpl.ImplData p_implData)
47 {
48 super(p_templateManager, __jamon_setOptionalArguments(p_implData));
49 cacheConfig = p_implData.getCacheConfig();
50 conf = p_implData.getConf();
51 bcn = p_implData.getBcn();
52 bcv = p_implData.getBcv();
53 }
54
55 public void renderNoFlush(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter)
56 throws java.io.IOException
57 {
58
59
60 BlockCache bc = cacheConfig == null ? null : cacheConfig.getBlockCache();
61 BlockCache [] bcs = bc == null ? null : bc.getBlockCaches();
62 if (bcn.equals("L1")) {
63 bc = bcs == null || bcs.length == 0? bc: bcs[0];
64 } else {
65 if (bcs == null || bcs.length < 2) {
66 System.out.println("There is no L2 block cache");
67 return;
68 }
69 bc = bcs[1];
70 }
71 if (bc == null) {
72 System.out.println("There is no block cache");
73 return;
74 }
75 CachedBlocksByFile cbsbf = BlockCacheUtil.getLoadedCachedBlocksByFile(conf, bc);
76
77
78 if (bcv.equals("file") )
79 {
80
81 {
82
83 __jamon_innerUnit__bc_by_file(jamonWriter, cbsbf);
84 }
85 }
86
87 else
88 {
89
90 jamonWriter.write("[ ");
91
92 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(BlockCacheUtil.toJSON(bc)), jamonWriter);
93
94 jamonWriter.write(", ");
95
96 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(BlockCacheUtil.toJSON(cbsbf)), jamonWriter);
97
98 jamonWriter.write(" ]");
99 }
100
101 jamonWriter.write("\n");
102
103
104 cbsbf = null;
105
106 }
107
108
109
110 private void __jamon_innerUnit__bc_by_file(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter, final CachedBlocksByFile cbsbf)
111 throws java.io.IOException
112 {
113
114 jamonWriter.write("[");
115
116 for (Map.Entry<String, NavigableSet<CachedBlock>> e: cbsbf.getCachedBlockStatsByFile().entrySet() )
117 {
118
119 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(BlockCacheUtil.toJSON(e.getKey(), e.getValue())), jamonWriter);
120 }
121
122 jamonWriter.write("]\n");
123 }
124
125
126 }